Hallo,

Ik heb een loginscript gemaakt dat op de server van mijn eigen website (vevida) super draait. Maar nu moet het op de server van XS4ALL komen te staan. En daar werkt het niet.

Wat is mijn probleem:
De sessies worden niet uitgelezen.

Wat werkt wel:
De sessie wegschrijven naar het juiste pad.
De sessie inhoud is ook correct.

<?php
session_start();

if (isset($_SESSION["id"]))
{
header("Location: admin.php");
}

include_once(":)tja");

if (isset($_POST["naam"]))
{
$naam = $_POST["naam"];
$wachtwoord = $_POST["wachtwoord"];

if ($naam == "" || $wachtwoord == "")
{
//een van de velden is leeg
$error = 1;
}
else
{
$query = "SELECT * FROM inloggegevens WHERE naam= '".$naam."' AND wachtwoord= '".$wachtwoord."'";
$result = mysql_query($query);

if (!$result)
{
echo("<br>geen result");
}

else

if ($result)
{

$aantal = mysql_num_rows($result);
if($aantal == 0)
{
$error = 2;
}
else
{
$row = mysql_fetch_assoc($result);
$id = $row["id"];
$print = $row["test"];


session_start();
echo $id." ";
echo $print." ";;
$_SESSION["id"] = $id;
$_SESSION["naam"] = $naam;
echo $_SESSION["id"];
echo $_SESSION["naam"];
header("Location: admin.php");
exit;
}
}

else
{
$error = 2;
}
}
}
?>
html deel van PAGINA LOGIN.php





dit werkt allemaal goed. De sessie wordt goed weggeschreven én met de juiste inhoud.

code admin.php:
<?php
include_once(":)tja");

session_start();
echo "session naam is ".$_SESSION["naam"];
exit();

if (isset($_SESSION["naam"])) {
$id = $_SESSION["id"];

$query = "SELECT * FROM inloggegevens WHERE id = '$id'";
$result = mysql_query($query);
echo $query;
exit();

if($result) {
$aantal = mysql_num_rows($result);
if ($aantal <= 1) {
$row = mysql_fetch_assoc($result);
$naam = $row["naam"];
$show = 1;

} else {
header("Location: login.php?error=3");
}
} else {
header("Location: login.php?error=4");
}
} else {
header("Location: login.php?error=5");
}
if (isset($show) && $show == "1") {
?>
html deel van PAGINA ADMIN.php

<?php

} else {
header("Location: login.php?error=6");
}
?>


Dit even voor te testen. Maar de $_SESSION["naam"] wordt niet uitgelezen:(!!!!!


Wie weet hoe dit in godsnaam kan?????
Ik ben hier al in het totaal 3 weken mee aan het knutselen maar ik krijg het niet aan de gang...
ja dat is dus mijn probleem op mijn eigen hosting (vevida) werkt het ook goed. Maar bij xs4all niet:S
http://www.nts-group.nl/getsessie.php
http://www.nts-group.nl/setsessie.php

getsessie:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();
echo "mijn autostart staat op ".ini_get('session.auto_start');

echo $_SESSION['test'];
?>

setsessie:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();
echo "mijn autostart staat op ".ini_get('session.auto_start');
$_SESSION['test'] = 'test';
?>
Welke versie van php draait er bij xs4all? Check dit door onderstaand scriptje te draaien:
<?php
phpinfo();
?>

Als deze versie < 4.1.0 is, kun je geen gebruik maken van de superglobal $_SESSION.
m met die link erin krijg ik wel test terug
PHP Version 4.4.4
ik heb het even getest met een linkje naar admin.php nadat ik op op de forum knop heb geklikt kom ik even terug op een witte pagina met een linkje naar admin.
<?php
if ($result)
{

$aantal = mysql_num_rows($result);
if($aantal == 0)
{
//de username en wachtwoord waren incorrect
$error = 2;
}
else
{
$row = mysql_fetch_assoc($result);
$id = $row["id"];

//naar doorgelinkte pagina sturen
$_SESSION["id"] = $id;
?><a href="admin.php"> admin </a>
<?php
//header("Location: admin.php");
exit;
} // aantal
} ?>
Dan werkt het wel... Maar hoe kan het dan dat de gegevens niet goed worden doorgestuurd door mozilla? (*k gebruik een mac, zal wel geen verschil zijn maar ik denk ik meld het even.)

Reageren