25. oktober 2001 - 09:22Der er
57 kommentarer og 1 løsning
problemer med sessions
jeg har øverst på index siden: <?php
session_start(); session_register(\"username\");
?> og så har jeg formen: <form action=\"login.php\" method=\"post\"> <font face=\"Garamond\">NICK</font>: <input type=\"text\" name=\"username\"><br> PASS: <input type=\"password\" name=\"password\"><br> <input type=\"submit\" value=\"login\"> </form> ----------------------------------------------------- Så på en anden side vil jeg gerne bruge den session og jeg har øverst: <?php session_start(); ?>
$insertSQL = \"insert into A(tid,ip,nick,roster) values (now(),\'$ip\',\'$username\',\'$b\')\"; mysql_query($insertSQL);
$result = mysql_query(\"SELECT * FROM A ORDER BY tid DESC \"); while ($row = mysql_fetch_array($result)) { echo \"<B>\".$row[\"nick\"].\"</B>\".\"-\".$row[\"roster\"].\" \".\"-\".\" \".$row[\"tid\"].\"<br>\"; } ?> Men den giver fejl den siger: Warning: Cannot send session cache limiter - headers already sent (output started at /www/docs/users/geisha/asignup.php:3) in /www/docs/users/geisha/asignup.php on line 4
i linie 3 blev der skrevet blot et space eller lign til browseren. Du må intet skrive til browseren før du opretter din session. Akkurat som med andre headers og cookies !!!
Det tyder på at \"<?\" ikke er helt oppe i toppen af dokumentet! det skal være det første den læser
dette giver fejl side.php ---------------------
<? session_start(); ?>
<b>asdasd</b> ---------------------
dette giver ikke fejl: ------------------------- <? session_start(); ?>
<b>asdasd</b>
-------------------
Kan du se hvad jeg mener? ligeså snart der kommer et mellemrum eller lign. så sender den noget til browseren, og når du er begyndt på det, så kan du ikke sætte en session eller cookie, eller sende andre headers afsted
--------------- Warning: Cannot send session cache limiter - headers already sent (output started at D:\\webs\\test\\test.php:2) in D:\\webs\\test\\test.php on line 3
prøv at hør den giver heller ikke fejl nu,problemet er når jeg skal bruge sessionen i en anden funktion hvordan gør jeg det: <?php session_start(); global $username; session_register(\"username\"); ?>
ok jeg er slet ikke med her !! den variabel jeg skaber som er username vil jeg gerne bruge i andre filer så bl.a brugere ikke behøver at skrive deres bruger navn ned hele tiden men kune en gang som er i index hvordan gør jeg det plz forklar så det er til at forstå??For som tingene er nu reagere siderne ikke på variablen username!
jeg har øverst på index siden: <?php session_start(); session_register(\"username\"); ?> <html> og så har jeg formen: <form action=\"login.php\" method=\"post\"> <font face=\"Garamond\">NICK</font>: <input type=\"text\" name=\"username\"><br> PASS: <input type=\"password\" name=\"password\"><br> <input type=\"submit\" value=\"login\"> </form> ----------------------------------------------------- Så på en anden side vil jeg gerne bruge den session og jeg har øverst: <?php session_start(); ?> <html> oxo en masse html hvorefter jeg har:
$insertSQL = \"insert into A(tid,ip,nick,roster) values (now(),\'$ip\',\'$username\',\'$b\')\"; mysql_query($insertSQL);
$result = mysql_query(\"SELECT * FROM A ORDER BY tid DESC \"); while ($row = mysql_fetch_array($result)) { echo \"<B>\".$row[\"nick\"].\"</B>\".\"-\".$row[\"roster\"].\" \".\"-\".\" \".$row[\"tid\"].\"<br>\"; } ?> når jeg afprøver de her sider får jeg ingen fejl men side 2 reagere ikke på sessionen dvs den udskriver ikke nick som jeg vil have den til men kun roster og tid??
først ryger man ind på en loginside hvor hvor username og password bliver tjekket: $result = mysql_query(\"SELECT * FROM members WHERE nick =\'$username\' AND password=\'$password\'\"); if (mysql_num_rows($result) == 1) { header(\"Location: scrimms.php\"); } else { echo \"WRONG NICK OR PASS\"; }
derefter ryger man ind på scrimms siden hvor man kan skrive sig selv op og det er her jeg vil have at det ikke skal være nødvendig: <form name=\"form1\" method=\"post\" action=\"asignup.php\"> <p><b>ROSTER</b> : <input type=\"text\" name=\"b\"> </p> <p> <input type=\"submit\" name=\"Submit\" value=\"Submit\"> </p> </form> hvorefter man så bliver ført til siden ovenover som jeg kalder side 2!!
$result = mysql_query(\"SELECT * FROM members WHERE nick =\'$username\' AND password=\'$password\'\"); if (mysql_num_rows($result) == 1) { header(\"Location: scrimmss.php\"); } else { echo \"WRONG NICK OR PASS\"; } ?> -----------------------------------------------
$result = mysql_query(\"SELECT * FROM members WHERE nick =\'$username\' AND password=\'$password\'\"); if (mysql_num_rows($result) == 1) { header(\"Location: scrimmss.php\"); } else { echo \"WRONG NICK OR PASS\"; } ?> -----------------------------------------------
$result = mysql_query(\"SELECT * FROM members WHERE nick =\'$username\' AND password=\'$password\'\"); if (mysql_num_rows($result) == 1) { header(\"Location: scrimmss.php\"); } else { echo \"WRONG NICK OR PASS\"; } ?> ----------------------------------
nej, alle andre steder du vil bruger \"$username\" skriver du bare session_start(); i toppen
Det er på login.php du sætter sessionen $username og det skal du jo kun gøre engang, så det er kun på denne side du skal bruge session_register(\"username\");
if (isset(brugernavn)) { $connection = mysql_connect(\"localhost\", \"xxxxx\", \"xxxxx\"); mysql_select_db(\"geisha\", $connection);
$result = mysql_query(\"SELECT * FROM members WHERE nick =\'$brugernavn\' AND password=\'$password\'\"); if (mysql_num_rows($result) == 1) { $username = $brugernavn; session_register(\"username\"); header(\"Location: scrimmss.php\"); } else { $message = \"WRONG NICK OR PASS\"; } }
Hvis du mener hvordan man opretter flere session variabler: session_register(\"username\"); session_register(\"tidForLogin\"); session_register(\"yndlingsfarve\"); session_register(\"by\");
Synes godt om
Ny brugerNybegynder
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.