Når jeg kører denne kode:
<?php
//Forbinder med MYSQL
require "connect.php";
//Starter session
session_start();
//Henter informationer fra form
$username=$_POST['username'];
$password=sha1($_POST['password']);
//Tjekker om informationer er rigtige
$result=mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'");
//Hvis den er rigtig:
if(mysql_num_rows($result)==1){
$_SESSION['username']=$username;
}else{
die('Your username or password is incorrect! Please try again!');
}
//Step 6
mysql_close();
//Tjekker om brugeren er logget på
if(isset($_SESSION['username'])){
echo "Successfully logged in as $username";
}else{
echo "Your username or password is incorrect! Please try again!";
}
?>
Får jeg denne fejl:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\\wamp\\www\\Fortunato\\MemberSystem\\process_login.php:10) in C:\\wamp\\www\\Fortunato\\MemberSystem\\process_login.php on line 13
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\\wamp\\www\\Fortunato\\MemberSystem\\process_login.php:10) in C:\\wamp\\www\\Fortunato\\MemberSystem\\process_login.php on line 13
Hvad skal jeg gøre for at løse problemmet?
Umiddelbart skal du prøve at rette din kode så session_start() kommer lige efter php startes.
ala:
<?php
session_start();
//do what ever
?>
Med andre ord: prøv at flytte session_start() til øverst i din kode.
Det lyder som om du laver noget output før du starter din session - og det er ikke godt.
Hvis du skal lave output før din session startes (og det er underligt hvis du _skal_ det) så kan du bruge ob_start()
Indlæg senest redigeret d. 02.08.2007 10:41 af Bruger #4683