SmultronMedlem sedan juli 2002423 inlägg Jag har skapat en login osv till en sida, men när den ska skapa en Session fungerar det ej, blir inte något fel men det funkar inte att gå in på sidor där jag har lagt till en kontroll som kollar om session är skapad.
Detta är koden för att logga in:
<?
$open = mysql_connect("localhost", "user", "password");
$sql = mysql_db_query("data", "SELECT * FROM users WHERE username = '$username'", $open);
$rad = mysql_fetch_array($sql);
if($username = $rad["username"] & $password = $rad["password"])
{
$besok = $rad["antal"] + 1;
$senast = date("y-m-d");
$userlog = 1;
$usernfo = $rad[0];
session_start();
Session_register("userlog");
session_register("usernfo");
$sqlq = mysql_db_query("data", "UPDATE users SET senast = '$senast', antal = '$besok' WHERE username = '$username'", $open);
mysql_close($open);
print "INNE!";
$username = $username;
header("Location: index2.php?id");
}else
{
mysql_close($open);
header("Location: index.php");
}
?>
Detta är koden för att kolla om Session är registrerad:
<?
if(!session_is_registered("usernfo"))
{
header("Location: index.php");
}
if(!session_is_registred("userlog"))
{
header("Location: index.php");
}
?>
Hoppas någon kan hitta felet så att det fungerar för mig...
SmultronMedlem sedan juli 2002423 inlägg det fungerar ej. men det måste vara något med att Session inte skapas
UrMeMedlem sedan apr. 2001762 inlägg Jag hade ett liknande problem. Mitt problem var att jag körde en forward adress (.tk) .. och att i IE var det inställt på att inte acceptera sessioner/cookies mellan domäner typ.
Du kör ingen sådan slags adress?
SmultronMedlem sedan juli 2002423 inlägg jag kör på min egen webserver, alltså localhost när jag kör till den
MatteMedlem sedan aug. 20002 975 inlägg Har du register_globals=On ?
Vilken PHP-version kör du ?
SmultronMedlem sedan juli 2002423 inlägg register_globs är ON ja!
och jag kör PHP Version 4.3.1
MatteMedlem sedan aug. 20002 975 inlägg Ok, då får vi göra några tester.
I ditt inloggningsskript, ändra
header("Location: index2.php?id");
till
header("Location: index2.php?".SID);
Sedan överst i index2.php:
<?php
session_start();
echo "<pre>";
print_r($_SESSION);
echo "</pre>";
Vad får du för utskrift i index2.php ?
SmultronMedlem sedan juli 2002423 inlägg hmm, sessions funkar!
det är ju mongo??
det verkar som mitt script för att kolla om Sessions är registrerad eller inte, inte fungerar korrekt för att den skriver ut
Array
(
[userlog] => 1
[usernfo] => 1
)
vilket är rätt för den användaren, om jag ändrar anv'ndare ändras "usernfo", vilket beror på vad som står databasen
SmultronMedlem sedan juli 2002423 inlägg jag har fått det att funka nu,
ui min "security" kod så använde jag mig av !session_is_registred
istället ände jag denna koden
if($_SESSION["userlog"] <= 0)
{
header("Location: index.php");
}
thx
MatteMedlem sedan aug. 20002 975 inlägg Ligger dina sessionsvariabler kvar om du går på fler sidor?
Testa att ändra tillbaka
header("Location: index2.php?".SID);
till
header("Location: index2.php");
Anledningen att jag ville att du skulle lägga till SID var för att kolla om problemet låg i själva sessionen eller sessionscookien.
SID för med sig sessionsid med URL-en, så sessionen går att komma åt även då cookies spökar.
Men nu har du även gjort andra ändringar. Så kolla att din sessionscookie fungerar.