webForumDet fria alternativet

Felmeddelande i sessioner

PHP

4 svar · 392 visningar · startad av K-man

Medlem sedan nov. 200217 inlägg
Frågan#1

Hej!

Sitter å meckar med sessioner i php och får ett par felmeddelanden som jag inte vet hur jag ska ordna upp.

Warning: session_start() [function.session-start]: open(/tmp\sess_f16d1daa8649811f8a499d1c5b5a914d, O_RDWR) failed: No such file or directory (2) in c:\inetpub\wwwroot\Login\login.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\inetpub\wwwroot\Login\login.php:3) in c:\inetpub\wwwroot\Login\login.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\inetpub\wwwroot\Login\login.php:3) in c:\inetpub\wwwroot\Login\login.php on line 3

Jag kört min php kod hos en kompis med samma version av php (4.3.1) och där fick vi inga felmeddelande.

Min phpkod är:

<?php
session_name("inlog");
session_start();
include ("dbinfo.inc");
//Inloggning
if(isset($_POST['loggain'])){
$anv = $_POST['anv'];
$pwd = $_POST['pwd'];
$resultat = mysql_query("SELECT * FROM user WHERE Uname='".$anv."' AND Pword='".$pwd."'");
if (mysql_num_rows($resultat) == 0){ // användaren finns inte i databasen
$_SESSION['sess_mess'] = "Du har angett fel användarnamn eller lösenord";
header("Location: login.php");
exit;
}
else {
while ($kolumn = mysql_fetch_array($resultat)) {
$_SESSION['sess_id'] = $kolumn['UID'];
$_SESSION['sess_user'] = $anv;
$_SESSION['sess_pwd'] = $pwd;
$_SESSION['sess_fn'] = $kolumn['Firstname'];
header("Location: inloggad.php");
exit;
}
}
}
//Utloggning
else if(isset($_POST['loggaut'])){
session_unset();
session_destroy();
header("Location: login.php");
exit;
}
//Vid försök med direkt åtkomst
else {
$_SESSION['sess_mess'] = "För att få åtkomst till den aktuella sidan krävs att du loggar in";
// header("Location: login.php");
//exit;
}
?>

Tacksam för snabbt svar!

/K-man

Medlem sedan jan. 2000372 inlägg
#2

Det ser ut som att du har ett fel i din php.ini där det gäller att ställa in ditt temp-directory där sessionsfilerna lagras.

Medlem sedan aug. 20002 975 inlägg
#3

Det är alltså session.save_path du ska leta upp i din php.ini och ändra.
Ändra till en existerande katalog, eller skapa katalogen c:\tmp och ändra till den:

session.save_path = C:\tmp

Efter ändring i php.ini måste du starta om webservern.

Medlem sedan nov. 200217 inlägg
#4

Tackar för det tipset!

Det var livsavgörande. Allt funkar prima!

/K-man
"If you can't make it. Fake it."

Medlem sedan sep. 200310 inlägg
#5

du kan också använda dig av

session_save_path("sökväg");

innan session_start();

så behöver du inte meckla med php.ini...

443 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
306 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)