Sessie doet heel raar.
Hoi allemaal,
Wat ik nu plots meemaak is echt heel gek... Ik heb in mijn config keurig een sessie gestart, die config include ik op iedere pagina. Nu maak ik na het inloggen een sessie aan met de gebruikersnaam er in. Echter wordt die sessie op een of andere manier vernietigd want PHP weet niet wat $_SESSION['username'] is. (Als ik sessie echo zie ik ook alleen maar een lege array)
Hier vraag is de sessie op, profiel.php:
Hier wordt een sessie meegegeven, login.php:
En hier start ik duidelijk mijn sessie, config.php:
Doe ik iets mis? Doet PHP zelf iets mis?
Wat ik nu plots meemaak is echt heel gek... Ik heb in mijn config keurig een sessie gestart, die config include ik op iedere pagina. Nu maak ik na het inloggen een sessie aan met de gebruikersnaam er in. Echter wordt die sessie op een of andere manier vernietigd want PHP weet niet wat $_SESSION['username'] is. (Als ik sessie echo zie ik ook alleen maar een lege array)
Hier vraag is de sessie op, profiel.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
include 'config.php';
if ($_GET['user'] == "me") {
$sql = mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'");
if ($_GET['user'] == "me" AND $sql === true) {
$row = mysql_fetch_array($sql);
echo "Gebruikersnaam:".$row['username']."\n";
}
}
?>
include 'config.php';
if ($_GET['user'] == "me") {
$sql = mysql_query("SELECT * FROM users WHERE username='".$_SESSION['username']."'");
if ($_GET['user'] == "me" AND $sql === true) {
$row = mysql_fetch_array($sql);
echo "Gebruikersnaam:".$row['username']."\n";
}
}
?>
Hier wordt een sessie meegegeven, login.php:
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
32
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
32
<?php
if (file_exists('config.php')) {
include 'config.php';
} else {
echo "De configuratie mist.";
}
?>
<html>
<body>
<form method='post'>
Gebruikersnaam: <input type="text" name="username"><br>
Wachtwoord: <input type="password" name="password"><br>
<input type="submit" value="Inloggen">
</form>
</body>
</html>
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST" AND $_POST['username'] != NULL AND $_POST['password'] != NULL) {
$username = $_POST['username'];
$password = sha1($_POST['password']);
$sql = mysql_query("SELECT * FROM users WHERE username='".mysql_real_escape_string($username)."' AND password='".mysql_real_escape_string($password)."'");
}
if ($_SERVER['REQUEST_METHOD'] == "POST" AND $_POST['username'] != NULL AND $_POST['password'] != NULL AND $sql == true) {
$_SESSION['username'] == $username;
$_SESSION['loggedin'] == true;
Header ("Location: profiel.php?user=me");
}
if ($_SERVER['REQUEST_METHOD'] == "POST" AND $_POST['username'] != NULL AND $_POST['password'] != NULL AND $sql != true) {
echo mysql_error();
}
?>
if (file_exists('config.php')) {
include 'config.php';
} else {
echo "De configuratie mist.";
}
?>
<html>
<body>
<form method='post'>
Gebruikersnaam: <input type="text" name="username"><br>
Wachtwoord: <input type="password" name="password"><br>
<input type="submit" value="Inloggen">
</form>
</body>
</html>
<?php
if ($_SERVER['REQUEST_METHOD'] == "POST" AND $_POST['username'] != NULL AND $_POST['password'] != NULL) {
$username = $_POST['username'];
$password = sha1($_POST['password']);
$sql = mysql_query("SELECT * FROM users WHERE username='".mysql_real_escape_string($username)."' AND password='".mysql_real_escape_string($password)."'");
}
if ($_SERVER['REQUEST_METHOD'] == "POST" AND $_POST['username'] != NULL AND $_POST['password'] != NULL AND $sql == true) {
$_SESSION['username'] == $username;
$_SESSION['loggedin'] == true;
Header ("Location: profiel.php?user=me");
}
if ($_SERVER['REQUEST_METHOD'] == "POST" AND $_POST['username'] != NULL AND $_POST['password'] != NULL AND $sql != true) {
echo mysql_error();
}
?>
En hier start ik duidelijk mijn sessie, config.php:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
session_start(); //<----------sessie begint duidelijk!
error_reporting(-1);
$config = array(
'host' => 'mysql1.000webhost.com',
'username' => '**',
'password' => '**',
'data' => '**'
);
//$link = mysqli_connect($config['host'], $config['username'], $config['password'], $config['data']);
$link = mysql_connect($config['host'], $config['username'], $config['password']);
$con = mysql_select_db($config['data']);
if ($config == NULL) {
echo "Vul wel de configuratiegegevens in. \n <br>";
}
if (!$link OR !$con) {
Header ("Location: error.php?c=500");
}
$head = array (
'title' => 'Pokemon RPG'
);
?>
session_start(); //<----------sessie begint duidelijk!
error_reporting(-1);
$config = array(
'host' => 'mysql1.000webhost.com',
'username' => '**',
'password' => '**',
'data' => '**'
);
//$link = mysqli_connect($config['host'], $config['username'], $config['password'], $config['data']);
$link = mysql_connect($config['host'], $config['username'], $config['password']);
$con = mysql_select_db($config['data']);
if ($config == NULL) {
echo "Vul wel de configuratiegegevens in. \n <br>";
}
if (!$link OR !$con) {
Header ("Location: error.php?c=500");
}
$head = array (
'title' => 'Pokemon RPG'
);
?>
Doe ik iets mis? Doet PHP zelf iets mis?
Gewijzigd op 03/06/2013 20:14:28 door Koen Hollander
Koen,
Iets toewijzen doe je met = en niet met == dus heel vreemd vind ik het niet dat je geen sessie mee geeft.
Iets toewijzen doe je met = en niet met == dus heel vreemd vind ik het niet dat je geen sessie mee geeft.
Je hebt gelijkt wat schaam ik me nu :-)
Koen, wanneer ga je nu eens leren van de antwoorden die je krijgt? Dit is niet de eerste keer dat ik je deze fout zie maken en het juiste antwoord heb je ook al eerder gekregen. Het lijkt erop dat je echt totaal geen idee hebt van wat je aan he doen bent en ook weinig tot geen moeite doet om iets op te steken.
Of misschien is programmeren gewoon niets voor je.....
Of misschien is programmeren gewoon niets voor je.....




