05. januar 2004 - 23:53
Der er
6 kommentarer og 1 løsning
PHP: Gæt et nummer mellem 1 og 100
Nedenstående kode virker fint hvis globale variable er slået til. Men hvordan kan koden laves om så jeg kan benytte variable via $_POST arrayet, dvs. uden globale variable slået til? <html> <head><title>Gæt et tal</title></head> <body> <h2>Gæt et tal mellem 1 og 100</h2> <? function gaet($tal,$antal) { $antal = $antal+1; echo "<form method=post action=gaet_et_tal.php> <input type=hidden name=tal value=$tal> <input type=hidden name=antal value=$antal> Indtast dit gæt:<P> <input type=text name=gaet size=7> <input type=submit value=Gæt> </form>"; } if ( $tal == "" ) { $tal = rand(1,99); $antal = 0; gaet($tal,$antal); } elseif ( $tal > $gaet ) { gaet($tal,$antal); echo "$gaet er for lavt"; } elseif ( $tal < $gaet ) { gaet($tal,$antal); echo "$gaet er for højt"; } else { echo "Tillykke. $tal er det rigtige tal<br>"; echo "Du brugte $antal forsøg.<br>"; if($antal == 4) echo "Udmærket<br>"; elseif($antal < 4) echo "Flot<br>"; echo "<a href=\"gaet_et_tal.php\">Prøv igen</a>"; } ?> </body> <br><br><br> <a href="../index.htm" tager="_self">Tilbage til startside</a> </html>
Annonceindlæg fra Salesforce
05. januar 2004 - 23:59
#1
Hvis du mener, at du vil bruge $_POST-variabler uden at skrive $_POST over det hele, kan du jo fx importere dem (håber jeg har forstået dig rigtigt): <html> <head><title>Gæt et tal</title></head> <body> <h2>Gæt et tal mellem 1 og 100</h2> <? import_request_variables("p", ""); function gaet($tal,$antal) { $antal = $antal+1; echo "<form method=post action=gaet_et_tal.php> <input type=hidden name=tal value=$tal> <input type=hidden name=antal value=$antal> Indtast dit gæt:<P> <input type=text name=gaet size=7> <input type=submit value=Gæt> </form>"; } if ( $tal == "" ) { $tal = rand(1,99); $antal = 0; gaet($tal,$antal); } elseif ( $tal > $gaet ) { gaet($tal,$antal); echo "$gaet er for lavt"; } elseif ( $tal < $gaet ) { gaet($tal,$antal); echo "$gaet er for højt"; } else { echo "Tillykke. $tal er det rigtige tal<br>"; echo "Du brugte $antal forsøg.<br>"; if($antal == 4) echo "Udmærket<br>"; elseif($antal < 4) echo "Flot<br>"; echo "<a href=\"gaet_et_tal.php\">Prøv igen</a>"; } ?> </body> <br><br><br> <a href="../index.htm" tager="_self">Tilbage til startside</a> </html>
Slettet bruger
06. januar 2004 - 00:00
#2
En let løsning er at sætte dette øverst (eller bare efter din funktion) på din side: <? $gaet = isset($_POST['gaet']) ? $_POST['gaet'] : NULL; $antal = isset($_POST['antal']) ? $_POST['antal'] : NULL; $tal = isset($_POST['tal']) ? $_POST['tal'] : NULL; ?>
06. januar 2004 - 00:15
#3
Jeg kan forstå på din løsning nak-m at funktionen import_request_variables("p", "") "Imports GET/POST/Cookie variables into the global scope". Men jeg er mere ude efter den løsning mercur8 har fat i - tror jeg da - jeg forstår ikke lige det han har skrevet...kan du uddybe hvad det er du gør...
Slettet bruger
06. januar 2004 - 00:45
#4
$gaet = isset($_POST['gaet']) ? $_POST['gaet'] : NULL; Kan også skrives som: if (isset($_POST['gaet']) $gaet = $_POST['gaet']; else $gaet = NULL; Det andet er bare en "forkortet udgave". Dvs. er der noget i $_POST['gaet'], så sætter vi $gaet lig med denne værdi. Så du kan bruge $gaet som du plejer.
06. januar 2004 - 04:09
#5
Prøv denne kode i stedet: <html> <head><title>Gæt et tal</title></head> <body> <h2>Gæt et tal mellem 1 og 100</h2> <?php import_request_variables("p", ""); if(isset($gaet) && isset($tal) && isset($antal)) { if($tal > $gaet) { $antal++; echo "$gaet er for lavt<hr>"; } else if($tal < $gaet) { $antal++; echo "$gaet er for højt<hr>"; } else if($tal == $gaet) { echo "Tillykke. $tal er det rigtige tal<br>"; echo "Du brugte $antal forsøg.<br>"; if($antal == 4) echo "Udmærket<br>"; elseif($antal < 4) echo "Flot<br>"; echo "<a href=\"gaet_et_tal.php\">Prøv igen</a><hr>"; $antal = 0; } } else { $tal = rand(1,99); $antal = 0; } ?> <form method="post" action="gaet_et_tal.php"> <input type="hidden" name="tal" value="<?php echo $tal; ?>"> <input type="hidden" name="antal" value="<?php echo $antal; ?>"> Indtast dit gæt:<p /> <input type="text" name="gaet" size="7"> <input type="submit" value="Gæt"> </form> <br><br><br> <a href="../index.htm">Tilbage til startside</a> </body> </html>
06. januar 2004 - 13:06
#6
Her er et par rettelser: <html> <head><title>Gæt et tal</title></head> <body onLoad="java script:document.getElementById('gaet').focus()"> <h2>Gæt et tal mellem 1 og 100</h2> <? function gaet($tal,$antal) { $antal = $antal+1; echo "<form method='post' action='gaet_et_tal.php'> <input type='hidden' name='tal' value='$tal' /> <input type='hidden' name='antal' value='$antal' /> Indtast dit gæt: <p><input type='text' id='gaet' name='gaet' size='7' /> <input type='submit' value='Gæt' /></p> </form>"; } $gaet = isset($_POST['gaet']) ? $_POST['gaet'] : ''; $antal = isset($_POST['antal']) ? $_POST['antal'] : ''; $tal = isset($_POST['tal']) ? $_POST['tal'] : ''; if ( $tal == "" ) { $tal = rand(1,99); $antal = 0; gaet($tal,$antal); } elseif ( $tal > $gaet ) { gaet($tal,$antal); echo "$gaet er for lavt"; } elseif ( $tal < $gaet ) { gaet($tal,$antal); echo "$gaet er for højt"; } else { echo "Tillykke. $tal er det rigtige tal<br>"; echo "Du brugte $antal forsøg.<br />"; if($antal == 4) echo "Udmærket<br />"; elseif($antal < 4) echo "Flot<br />"; echo "<a href=\"gaet_et_tal.php\">Prøv igen</a>"; } ?> </body> <br /><br /><br /> <a href="../index.htm" tager="_self">Tilbage til startside</a> </html>
06. januar 2004 - 23:15
#7
Takker for svar!
Vi tilbyder markedets bedste kurser inden for webudvikling