Session Probleem help?
Ik heb een probleem met Session_register()
Ik heb een:
Username:
Password:
if ($username==$myrow[1] && $password ==$myrow[2])
{
session_register("username");
// user is logged in
echo "gaat naar de pagina";
}
else
{
echo "U moet eerst inloggen";
}
De session_registeren() werkt niet. Weet iemand hoe ik dit kan oplossen?
Ik heb ook dit gebruikt:
$_SESSION['username'] = "username";
maar dit werkt ook nie.
alvast, dank!
De syntact is
session_start();
$_SESSION["username"] = $username;
een syntact is niets :p
Maar op alle andere pagina's heb het volgende staan:
//pagina bewerken bijvoorbeeld
Om te checken of men ingelogged is.
In de sessie zelf is dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
session_start();
if (!isset($_SESSION["username"]))
{
$tekst = "U bent nog niet aangemeld.<br>";
$tekst .= "U kunt <a href=\"link.php\">hier inloggen</a>";
echo($tekst);
exit();
}
?>
session_start();
if (!isset($_SESSION["username"]))
{
$tekst = "U bent nog niet aangemeld.<br>";
$tekst .= "U kunt <a href=\"link.php\">hier inloggen</a>";
echo($tekst);
exit();
}
?>
Het inloggen gaat goed. Maar iedere keer als op een link klik wordt ik weer d'r uit gegooid om op nieuw in te loggen.
Dan check je waarschijnlijk toch niet op de goede plaats of je verandert ergens je session.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
$LinkID = mysql_connect("$hostname", "$username", "$password") or die("MySQL Connectie mislukt");
mysql_select_db("$dbname") or die("verkeerde database");
$sql = "SELECT * FROM user";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$username = $_POST['username'];
$password = $_POST['password'];
if ($username==$myrow[1] && $password ==$myrow[2])
{
session_start();
$_SESSION["username"] = $username;
echo "<html><head><title></title><meta HTTP-EQUIV=\"refresh\" CONTENT=\"1; URL=pagina.php\"></head><body>";
print("<br><br>Inloggen succesvol<BR>");
print("</body></html>");
}
else
{
echo "<br><br><font color = red>Verkeerde wachtwoord of gebruikersnaam!<br>probeert u nog eens.</font>";
}
?>
$LinkID = mysql_connect("$hostname", "$username", "$password") or die("MySQL Connectie mislukt");
mysql_select_db("$dbname") or die("verkeerde database");
$sql = "SELECT * FROM user";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$username = $_POST['username'];
$password = $_POST['password'];
if ($username==$myrow[1] && $password ==$myrow[2])
{
session_start();
$_SESSION["username"] = $username;
echo "<html><head><title></title><meta HTTP-EQUIV=\"refresh\" CONTENT=\"1; URL=pagina.php\"></head><body>";
print("<br><br>Inloggen succesvol<BR>");
print("</body></html>");
}
else
{
echo "<br><br><font color = red>Verkeerde wachtwoord of gebruikersnaam!<br>probeert u nog eens.</font>";
}
?>
session_start() zet je BOVENAAN je script.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
session_start();
$LinkID = mysql_connect($hostname, $username, $password) or die("MySQL Connectie mislukt");
mysql_select_db($dbname) or die("Verkeerde database");
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$sql = "SELECT id
FROM user
WHERE username = '" . mysql_real_escape_string($_POST['username'] . "'
AND password = 'MD5(" . $_POST['password'] . ")'
";
$result = mysql_query($sql);
if($result)
{
$_SESSION["username"] = $username;
echo 'Inloggen succesvol';
header('Location: pagina.php');
exit();
}
else
{
echo 'SQL Error';
}
}
else
{
echo 'Niks gepost';
}
?>
session_start();
$LinkID = mysql_connect($hostname, $username, $password) or die("MySQL Connectie mislukt");
mysql_select_db($dbname) or die("Verkeerde database");
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$sql = "SELECT id
FROM user
WHERE username = '" . mysql_real_escape_string($_POST['username'] . "'
AND password = 'MD5(" . $_POST['password'] . ")'
";
$result = mysql_query($sql);
if($result)
{
$_SESSION["username"] = $username;
echo 'Inloggen succesvol';
header('Location: pagina.php');
exit();
}
else
{
echo 'SQL Error';
}
}
else
{
echo 'Niks gepost';
}
?>
Vroeger gebruikte ik session_register(); dat werkte toen nog wel.
Maar nu werkt dat niet ...
Let wel even op het feit dat ik je password in de database verwacht als een MD5()-hash. Anders kan je niet inloggen.
Ik snap het niet.
Inloggen gaat prima, de pagina in header wordt opgeladen. Als ik vanaf daar op een andere link klik, wordt ik weer eruit gegooid. $_session['username'] wordt op een of andere manier niet geregistreerd.
Gewijzigd op 01/01/1970 01:00:00 door Plato Republic
test.php:
resultaat.php
Roep eerst test.php en vervolgens resultaat.php aan. Als het goed is, zou je nu de string op je scherm moeten zien. Als dat werkt, kun je verder gaan kijken waarom het in je loginscript niet werkt. Werkt dit al niet, dan weet je dat hier je probleem zit...
Bedankt zo ver voor alle moeite.
Het lag inderdaad aan de session zelf. Het is opgelost. Bedankt voor al je hulp en geduld.
Groet en alvast een gelukkig 2010
Wat was nu uiteindelijk de oplossing? Wellicht dat anderen er ook nog wat aan hebben...