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...
ik heb dit ook al eens gehad (lijkt er op) en toen bleek dat mijn host ook namen gebruikt voor een session op zijn server. oplossing ga eens bijzondere namen toekennen. zoiets als $_SESSION["naam_test_1234"].

naders zou ik ook ff niet weten.

ps bij mijn probleem las hij ze wel uit. maar misschien kun je session waardes ook inregelen dat ze niet uitgelezen mogen worden.
Zet ook eens
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
boven aan je script. Je gebruikt 2x session_start() na elkaar, dat levert sowieso een notice op.

Om te kijken of het setten van sessies wel goed gaat zou ik een nog eenvoudiger voorbeeld gebruiken:

setsessie.php
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();

$_SESSION['test'] = 'test';
?>

getsessie.php
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();

echo $_SESSION['test'];
?>
Voor get en setsessie.php
Notice: A session had already been started - ignoring session_start() in /usr/local/WWW/A/.2/n/ntsgawu/htdocs/setsessie.php on line 4

dat krijg ik dan...
En dat is nadat ik mijn mozilla heb gerestart en de cash enzo heb opgeschoond. EN de map sessies (waar die de sessies opslaat) heb leeg gemaakt

voor login en admin.php
Notice: A session had already been started - ignoring session_start() in /usr/local/WWW/A/.2/n/ntsgawu/htdocs/admin.php on line 10

Notice: Undefined index: naam in /usr/local/WWW/A/.2/n/ntsgawu/htdocs/admin.php on line 11
session naam is
Ehm je hebt deze 2 scriptjes in 2 nieuwe lege pagina's geplakt en dan krijg je nog die melding?

Staat session.auto_start soms aan bij jou? Dit kun je controleren met:
<?php
echo ini_get('session.auto_start');
?>
inderdaad stond aan. Die heb ik nu uitgezet.
Verder in admin.php de session_start(); gedelete.

error:

Notice: Undefined variable: _SESSION in /usr/local/WWW/A/.2/n/ntsgawu/htdocs/admin.php on line 11
session naam is
Ok, maar wat krijg je als je achter elkaar de scriptjes setsessie.php en getsessie.php uitvoert? Daar ben ik wel even benieuwd naar.

Notice: A session had already been started - ignoring session_start() in /usr/local/WWW/A/.2/n/ntsgawu/htdocs/setsessie.php on line 4
Ok dat krijg je als je setsessie.php uitvoert, maar ik neem aan dat dat wederom komt omdat session.auto_start() aan staat?

In principe heeft dit volgens mij geen invloed op het setten van sessievariabelen, dus in setsessie.php zou de sessievariabele 'test' de waarde 'test' moeten krijgen.

Wat krijg je te zien als je getsessie.php draait? Als het goed is moet op je scherm dan het woordje 'test' verschijnen.

autostart staat uit....
als ik getsessie.php uitvoer krijg ik

Notice: Undefined index: test in /usr/local/WWW/A/.2/n/ntsgawu/htdocs/getsessie.php on line 6
Jeroen Alewijns schreef op 30.10.2006 11:51

Notice: A session had already been started - ignoring session_start() in /usr/local/WWW/A/.2/n/ntsgawu/htdocs/setsessie.php on line 4
Deze melding krijg je wanneer je in 1 script meer dan 1x de functie session_start() aanroept.

De voorbeeldjes heb ik hier even getest, werken uitstekend!

Edit:
sessie.php
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();

$_SESSION['test'] = 'test';
?>
<a href="getsessie.php">Link</a>



getsessie.php:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();

echo $_SESSION['test'];
?>
<a href="sessie.php">Link</a>

Reageren