18. august 2004 - 21:06Der er
26 kommentarer og 1 løsning
Kan ikke sende session cookie
Jeps :) Hejsa folkens. Sidder her og prøver at få sessions til at virke. Fandt i første omgang ud af at "session.save_path = c:\tmp" ikke var sat op - men da jeg fik det rettet kom disse fejl i stedet:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\Programmer\Apache Group\Apache2\htdocs\dynamic_andersson\adminlogin.php:6) in C:\Programmer\Apache Group\Apache2\htdocs\dynamic_andersson\adminlogin.php on line 14
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Programmer\Apache Group\Apache2\htdocs\dynamic_andersson\adminlogin.php:6) in C:\Programmer\Apache Group\Apache2\htdocs\dynamic_andersson\adminlogin.php on line 14 error making query
//connect to the DB and select the "dictator" database $connection = mysql_connect('localhost', $db_user, $db_pass) or die(mysql_error()); mysql_select_db('andersson_db', $connection) or die(mysql_error());
//set up the query $query = "SELECT * FROM users WHERE user_name='$user_name' AND password='$password'";
//run the query and get the number of affected rows $result = mysql_query($query, $connection) or die('error making query'); $affected_rows = mysql_num_rows($result);
//if there's exactly one result, the user is validated. Otherwise, he's invalid if($affected_rows == 1) { print 'validated'; } else { print 'not valid'; } ?>
//connect to the DB and select the "dictator" database $connection = mysql_connect('localhost', $db_user, $db_pass) or die(mysql_error()); mysql_select_db('andersson_db', $connection) or die(mysql_error());
//set up the query $query = "SELECT * FROM users WHERE user_name='$user_name' AND password='$password'";
//run the query and get the number of affected rows $result = mysql_query($query, $connection) or die('error making query'); $affected_rows = mysql_num_rows($result);
//if there's exactly one result, the user is validated. Otherwise, he's invalid if($affected_rows == 1) { print 'validated'; } else { print 'not valid'; } ?>
Og sørg desuden for at du ikke har nogle mellemrum før "<?php"
Nå er $_SESSION['logged_in'] lig med 1 hvis brugeren er blevet logget ind og 0 hvis han ikke er. Dvs. at du, på dine admin sider kan kontrollere om $_SESSION['logged_in'] er lig med 1, f.eks.:
beskyttet.php: <?php session_start(); if($_SESSION['logged_in'] == 1){ echo "Du er logget korrekt ind, og kan derfor se denne side."; }else{ echo "Ingen adgang. Du skal være logget ind." } ?>
Husk, at når du bruger dine $_SESSION værdier skal der altid startes med session_start()
Hehe - jamen det er mig der takker. En lille sidste ting hvis du kan nå det. Kan jeg stadig hente det indtastede username når jeg er gået til det næste dokument? ( Altså administration.php )
Lidt som i "Velkommen til administration $user_name"
Det bli'r kort :) Ja, det kan du sagtens - på flere måder.
Du kan (dér hvor du sætter $_SESSION['logged_in'] = 1), lave en session variabel med enten brugernavnet eller et id på brugeren (hvis du har et sådan i db'en). Eks. på den første metode:
Det er bare super. Godnat til Dem unge herre. Og mange tak igen
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.