Avatar billede Thomasrn Seniormester
09. februar 2019 - 03:39 Der er 13 kommentarer

Unique url

hej jeg er i gang med at lave en kode hvor man kan oprette nogle fiktive person og den laver nogle random numre samt alder navn id osv. bliver lagt i en database og laver en side hvor den printer alle de forskellige informationer ud men vil gerne ha en unique url hvor hvis jeg eksempel skriver localhost/index.php/$spillerid og så finder den den fiktive person med det id og printer de samme data ud som ligger under denne spillers id
hvordan gør jeg det skal unique url gemmes i databasen eller hvordan ville i løse den opgave på forhånd tak
Avatar billede arne_v Ekspert
09. februar 2019 - 04:30 #1
Kan du ikke bar ebruge primaernoegle i tabellen?

Og den kan saa eventuelt saettes til autoincrement.
Avatar billede Thomasrn Seniormester
09. februar 2019 - 07:29 #2
man kan ikke bruge id til at finde den specifikke spiller med de forskellige værdier?
Avatar billede Slater Ekspert
09. februar 2019 - 09:42 #3
Du har jo allerede løst din egen opgave. Hver spiller har et id, du udskriver det id i url'en, og kan så bruge det id til at finde spilleren med. Ingen grund til at gemme url'en nogen steder, den kan genereres ud fra id'et.

Opgave løst. Med mindre du beder om specifikke kodeeksempler og ikke bare konceptuel hjælp?
Avatar billede Thomasrn Seniormester
09. februar 2019 - 10:02 #4
vil de sige hvis jeg skrive eks. localhost/index.php/spillerid=21 så vil den vide det er spiller med id nr 21 den skal ha fat i?
Avatar billede Slater Ekspert
09. februar 2019 - 10:48 #5
Altså, du skal jo også skrive koden til at hente spilleren fra databasen ud fra det id. Der er ikke noget der sker magisk, med mindre du bruger et eller andet CMS der gør det for dig.

Vi kan ikke hjælpe dig med nøjagtige kodeeksempler uden at vide hvad du benytter, hvordan din database ser ud osv, men det skulle gerne være noget der ligner en SQL query som "select * from players where id=?", og så putte spiller-id'et ind med $_GET['spillerid'] eller lignende. Det er noget af det simpleste du kan lave.
Avatar billede Thomasrn Seniormester
09. februar 2019 - 11:06 #6
lyder som en ide vil jeg kigge på mange tak for hjælpen.
Bukker mig i støvet ;)
Avatar billede Computernørderne Juniormester
09. februar 2019 - 18:47 #7
Husk at rense $_GET -input, f.eks. følgende:

$id=$_GET['id'];
if (!is_numeric($id))
{
  //exit script eller fejlkode
}
else
{
  //do something
}
Avatar billede Thomasrn Seniormester
16. februar 2019 - 15:23 #8
synes ikke rigtig jeg kan få det til at virke
Kodningen:

spillere.php:
<?php
include("app.php");
$app = new minAwesomeApp;
$app->ErDuLoggetPaa();
  $mysqli = NEW MySQLi ('localhost', 'starmanager', 'frm6Xy7X', 'starmanager');

if( $app->userData['brugerType'] != "admin") {

  header("Location: home.php");
  die;
}
?>

<?php if ($app->userData['brugerType'] == "admin") {
?>
<!DOCTYPE html>
<html lang="da">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Brugersystem fra v5.dk ApS - https://v5.dk/php/">
  <meta name="author" content="v5.dk">
  <title>Intranet</title>
  <link href="css/bootstrap.min.css" rel="stylesheet">
  <link href="css/v5.css" rel="stylesheet">
</head>
<body>

  <div class="container">


      <div class="col-md-6 col-md-offset-3">
        <div class="panel panel-default">
          <div class="panel-heading">
            <h3 class="panel-title" id="headline">Du er logget ind som: <?php echo $app->userData['userName']; ?></h3>
            <h3 class="panel-title" id="headline">Lav en ny spiller</h3>
          </div>

          <div class="panel-body" id="Opret en ny spiller">

            <form action="opretspiller.php"  method="post">
              <fielset>
                <div class ="form-group">
                  <input class="form-control" placeholder="Fulde navn"  name="fuldenavn" type="text">
                </div>
                <?php echo "Alder:" ?>
                <?php

                $resultSet = $mysqli->query("SELECT alder FROM alder");
                ?>

                <select name="alder">
                <?php
                while($rows = $resultSet->fetch_assoc())
                {
                  $alder = $rows['alder'];
                  echo "<option value='$alder'>$alder</option>";
                }
                ?>
                </select>
              </br>
                <?php echo "Position:" ?>
                <?php

                $resultSet = $mysqli->query("SELECT position FROM position");
                ?>

                <select name="position">
                <?php
                while($rows = $resultSet->fetch_assoc())
                {
                  $position= $rows['position'];
                  echo "<option value='$position'>$position</option>";
                }
                ?>
                </select>

              </br>
                <?php echo "Land:" ?>
                <?php

                $resultSet = $mysqli->query("SELECT land FROM lande");
                ?>

                <select name="land">
                <?php
                while($rows = $resultSet->fetch_assoc())
                {
                  $land = $rows['land'];
                  echo "<option value='$land'>$land</option>";
                }
                ?>
                </select>

</br>
</br>
<form>
<input class="btn btn-lg btn-success btn-block" type="submit" value="Opret ny spiller" />
</form>
              </fieldset>
            </form>

        </div>

</body>
</html>
<a href="admin.php">Tilbage</a>
<?php } ?>



opretspiller.php:
<?php
include("app.php");
$app = new minAwesomeApp;
?>
<?php


$fuldenavn = ($_POST ['fuldenavn']);
$position = ($_POST ['position']);
$alder = ($_POST ['alder']);
$land = ($_POST ['land']);
$vægt = rand(65, 105);
$højde = rand(160, 205);
$classes = array('Højre','Venstre', 'Begge');
$ben = $classes[array_rand($classes)];
$afslutning = rand(3, 13);
$dribling = rand(3, 13);
$aflevering = rand(3, 13);
$takling = rand(3, 13);
$markering = rand(3, 13);
$straffespark = rand(3, 13);
$mood = rand(3, 13);
$kreativitet = rand(3, 13);
$beslutsomhed = rand(3, 13);
$indflydelse= rand(3, 13);
$kampånd = rand(3, 13);
$udenbold= rand(3, 13);
$acceleration= rand(3, 13);
$balance= rand(3, 13);
$kondition= rand(3, 13);
$hop= rand(3, 13);
$styrke= rand(3, 13);
$udholdenhed= rand(3, 13);
$dato = date("Y/m/d") ;
$transfer = "fri transfer";
$pris= rand(1000, 3000);



$app->DatabaseInsert(
  'spillere',
  array('fuldenavn','position', 'land', 'alder', 'vægt', 'højde', 'ben', 'afslutning', 'dribling', 'aflevering', 'takling', 'markering', 'straffespark', 'mood', 'kreativitet', 'beslutsomhed', 'indflydelse', 'kampånd', 'udenbold', 'acceleration', 'balance', 'kondition', 'hop', 'styrke', 'udholdenhed', 'oprettelsedato', 'transfer', 'pris'),
  array($fuldenavn, $position, $land, $alder, $vægt, $højde, $ben, $afslutning, $dribling, $aflevering, $takling, $markering, $straffespark, $mood, $kreativitet, $beslutsomhed, $indflydelse, $kampånd, $udenbold, $acceleration, $balance, $kondition, $hop, $styrke, $udholdenhed, $dato, $transfer, $pris)
);

?>
<head>
        <title>Spillerinfo</title>
        <link href="css/opretspiller.css" rel="stylesheet" type="text/css">
        <meta charset="utf-8">
    </head>

<html>
<body>
  <div class="container">
    <div class="stats">  <img src="stats1.png"></div>
    <div class="fuldenavn"> <p><?php echo $fuldenavn; ?></p></div>
    <div class="position"> <p><?php echo $position ; ?></p></div>
    <div class="land"> <p><?php echo $land ; ?></p></div>
    <div class="højde"> <p><?php echo $højde; echo " cm"; ?></p></div>
    <div class="vægt"> <p><?php echo $vægt; echo " kg"; ?></p></div>
    <div class="ben"> <p><?php echo $ben; ?></p></div>
    <div class="alder"> <p><?php echo $alder; ?></p></div>
    <div class="afslutning"> <p><?php echo $afslutning; ?></p></div>
    <div class="dribling"> <p><?php echo $dribling; ?></p></div>
    <div class="aflevering"> <p><?php echo $aflevering; ?></p></div>
    <div class="takling"> <p><?php echo $takling; ?></p></div>
    <div class="markering"> <p><?php echo $markering; ?></p></div>
    <div class="straffespark"> <p><?php echo $straffespark; ?></p></div>
    <div class="mod"> <p><?php echo $mood; ?></p></div>
    <div class="kreativitet"> <p><?php echo $kreativitet; ?></p></div>
    <div class="beslutsomhed"> <p><?php echo $beslutsomhed; ?></p></div>
    <div class="indflydelse"> <p><?php echo $indflydelse; ?></p></div>
    <div class="kampånd"> <p><?php echo $kampånd; ?></p></div>
    <div class="udenbold"> <p><?php echo $udenbold; ?></p></div>
    <div class="acceleration"> <p><?php echo $acceleration; ?></p></div>
    <div class="balance"> <p><?php echo $balance; ?></p></div>
    <div class="kondition"> <p><?php echo $kondition; ?></p></div>
    <div class="hop"> <p><?php echo $hop; ?></p></div>
    <div class="styrke"> <p><?php echo $styrke; ?></p></div>
    <div class="udholdenhed"> <p><?php echo $udholdenhed; ?></p></div>
    <div class="transfer"> <p><?php echo $transfer; ?></p></div>
  </div>

</body>
</html>
Avatar billede Computernørderne Juniormester
16. februar 2019 - 17:19 #9
Hvad er det, du prøver at opnå med koden, Thomas?
Avatar billede Thomasrn Seniormester
17. februar 2019 - 11:29 #10
At den skal blive sendt over til en URL som er unik for den person jeg opretter så når personen er oprettet sender den over til en URL hvor personen stats er plus den URL man er inde på bruges kun til den spiller
Avatar billede Computernørderne Juniormester
17. februar 2019 - 12:56 #11
Jeg beklager at jeg ikke kan visualisere dit mål i mit hoved - det er nok mig der ikke kan se det. Har du et eksempel hvor jeg kan se hvad du er ved at lave?
Avatar billede Computernørderne Juniormester
17. februar 2019 - 14:13 #12
I øvrigt vil jeg anbefale, at du ikke putter (for meget) PHP-kode i din frontend. Det andet P i PHP står for "PREprocessor", altså FORbehandling. Prøv at holde PHP ind i din backend, og send data tilbage til din frontend, f.eks. vha. en ajax-call. Det vil gøre tingene meget mere overskuelige, og mindre kompliceret.
Avatar billede michael_stim Ekspert
18. februar 2019 - 12:12 #13
#12
Og specielt ikke password og lignende. Så, opretter, hvis det ikke er på en lokal PC, skal du nok overveje at få dig et nyt password.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester