creAtiive Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 (endret) Er ikke så god på det med sessions.. Prøver å lage en "antibot", men gikk ikke så bra: $q = $_SESSION['antibot']; $w = $_POST['anti']; if($q != $w) { echo "test"; } else { unset($_SESSION['antibot']); } Skriv inn tallet, "<strong><i><?php $m = rand(1, 999); echo $m; $m = $_SESSION['antibot'] = true; ?></i></strong>": <br><input type="text" name="anti" size="3"> Lurer på hva jeg har gjort feil? Kan dere hjelpe meg litt.. ? Endret 22. juli 2008 av creAtiive Lenke til kommentar
hallegyn Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 Lager du en captcha for moro skyld, eller kan du være interessert i et ferdig script? Lenke til kommentar
Jonas Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 $m = $_SESSION['antibot'] = true; Hva tenker du her? Lenke til kommentar
creAtiive Skrevet 22. juli 2008 Forfatter Del Skrevet 22. juli 2008 (endret) $m = $_SESSION['antibot'] = true; Hva tenker du her? At $_SESSION['antibot'] "kjøres". Eller "Starter". Jeg har også session_start i fila. Endret 22. juli 2008 av creAtiive Lenke til kommentar
Jonas Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 Jeg prøvde å hinte til at koden ikke helt henger på greip. Hva du faktisk tenker er jeg ikke egentlig interessert i.. En session er ikke noe som startes eller kjøres. Du skal tilegne den en verdi, som du bruker til å sammenligne det brukeren skriver. Lenke til kommentar
grimjoey Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 (endret) $m = $_SESSION['antibot'] = true; er det samme som: $m = true; $_SESSION['antibot'] = true; begge er variabler som blir definert. starte session gjøres med funksjonen session_start(); session_start(); $randomInt = mt_rand(1, 999); $_SESSION['antibot'] = $randomInt; print 'Skriv inn tallet ' . $randomInt . ' <input type="text" name="antibot" value="" /><br />' . "\n"; print '<input type="submit" name="submit_form" value="Send" /><br />' . "\n"; if (isset($_POST['submit_form'])) { if ((int)$_SESSION['antibot'] == (int)$_POST['antibot']) print 'Godkjennt!'; else print 'Feil!'; } Endret 22. juli 2008 av grimjoey Lenke til kommentar
creAtiive Skrevet 22. juli 2008 Forfatter Del Skrevet 22. juli 2008 Jeg prøvde å hinte til at koden ikke helt henger på greip. Hva du faktisk tenker er jeg ikke egentlig interessert i.. En session er ikke noe som startes eller kjøres. Du skal tilegne den en verdi, som du bruker til å sammenligne det brukeren skriver. Kan du gi meg et eksempel ? Lenke til kommentar
cyclo Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 http://www.tizag.com/phpT/phpsessions.php Lenke til kommentar
creAtiive Skrevet 22. juli 2008 Forfatter Del Skrevet 22. juli 2008 (endret) se oppdatert innlegg #6 Jeg prøvde koden du så i en ny fil: test.php Og den fungerte ikke <?php session_start(); $randomInt = mt_rand(1, 999); $_SESSION['antibot'] = $randomInt; print '<form action="" method="post">Skriv inn tallet ' . $randomInt . ' <input type="text" name="antibot" value="" /><br />' . "\n"; print '<input type="submit" name="submit_form" value="Send" /><br /></form>' . "\n"; if (isset($_POST['submit_form'])) { if ((int)$_SESSION['antibot'] == $_POST['antibot']) { echo 'Godkjennt!'; } else print 'Feil!'; } ?> Endret 22. juli 2008 av creAtiive Lenke til kommentar
grimjoey Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 (endret) det er ikke så rart. du skal vise en tilfeldig verdi til brukeren som brukeren skal sende tilbake via et html form for å bekrefte at brukeren ikke er en bot. i spoileren der finnes det ikke en eneste html tag. et form må se tilnærmet slik ut: <form method="post" action="someactionpage.php"> <input type="text" name="antibot" /> <input type="submit" name="submit" /> </form> når du trykker submit her sendes verdien fra input, med navn antibot, til siden som står spesifisert i form attributten "action" (altså someactionpage.php). dataen blir sendt i en post request som vil si at du kan lese verdien i php som $_POST['antibot']. 'antibot' refererer til navnet til input tagen som brukeren la inn informasjon i. someactionpage.php <?php session_start(); if (isset($_POST['submit_form'])) { if ((int)$_SESSION['antibot'] == (int)$_POST['antibot']) print 'Godkjent!'; else print 'Feil!'; } ?> thepage.php <?php session_start(); $randomInt = mt_rand(1, 999); $_SESSION['antibot'] = $randomInt; print '<form action="someactionpage.php" method="post">' . "\n"; print 'Skriv inn tallet ' . $randomInt . ' <input type="text" name="antibot" value="" /><br />' . "\n"; print '<input type="submit" name="submit_form" value="Send" /><br />' . "\n"; print '</form>' . "\n"; ?> alternativt alt på en side: <?php session_start(); if (isset($_POST['submit_form'])) { if ((int)$_SESSION['antibot'] == (int)$_POST['antibot']) print 'Godkjent!'; else print 'Feil!'; } else { $randomInt = mt_rand(1, 999); $_SESSION['antibot'] = $randomInt; print '<form method="post">' . "\n"; print 'Skriv inn tallet ' . $randomInt . ' <input type="text" name="antibot" value="" /><br />' . "\n"; print '<input type="submit" name="submit_form" value="Send" /><br />' . "\n"; print '</form>' . "\n"; } ?> Endret 22. juli 2008 av grimjoey Lenke til kommentar
creAtiive Skrevet 22. juli 2008 Forfatter Del Skrevet 22. juli 2008 det er ikke så rart. du skal vise en tilfeldig verdi til brukeren som brukeren skal sende tilbake via et html form for å bekrefte at brukeren ikke er en bot. i spoileren der finnes det ikke en eneste html tag. et form må se tilnærmet slik ut: <form method="post" action="someactionpage.php"> <input type="text" name="antibot" /> <input type="submit" name="submit" /> </form> når du trykker submit her sendes verdien fra input, med navn antibot, til siden som står spesifisert i form attributten "action" (altså someactionpage.php). dataen blir sendt i en post request som vil si at du kan lese verdien i php som $_POST['antibot']. 'antibot' refererer til navnet til input tagen som brukeren la inn informasjon i. someactionpage.php <?php session_start(); if (isset($_POST['submit_form'])) { if ((int)$_SESSION['antibot'] == (int)$_POST['antibot']) print 'Godkjent!'; else print 'Feil!'; } ?> thepage.php <?php session_start(); $randomInt = mt_rand(1, 999); $_SESSION['antibot'] = $randomInt; print '<form action="someactionpage.php" method="post">' . "\n"; print 'Skriv inn tallet ' . $randomInt . ' <input type="text" name="antibot" value="" /><br />' . "\n"; print '<input type="submit" name="submit_form" value="Send" /><br />' . "\n"; print '</form>' . "\n"; ?> alternativt alt på en side: <?php session_start(); if (isset($_POST['submit_form'])) { if ((int)$_SESSION['antibot'] == (int)$_POST['antibot']) print 'Godkjent!'; else print 'Feil!'; } else { $randomInt = mt_rand(1, 999); $_SESSION['antibot'] = $randomInt; print '<form method="post">' . "\n"; print 'Skriv inn tallet ' . $randomInt . ' <input type="text" name="antibot" value="" /><br />' . "\n"; print '<input type="submit" name="submit_form" value="Send" /><br />' . "\n"; print '</form>' . "\n"; } ?> Takk takk Er det nødvendig å slette sessionen ? Lenke til kommentar
grimjoey Skrevet 22. juli 2008 Del Skrevet 22. juli 2008 session har to komponenter. en cookie hos bruker med en identifikator. og et array på serveren hvor data lagres med relasjon til identifikatoren hos bruker. cookien slettes når brukeren lukker browseren sin. arrayet slettes når en viss timeout er nådd uten at php har gjenkjent den aktuelle cookien. med andre ord slettes session av seg selv. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå