geen sessies aangemaakt...
dit is het loginscript:
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
<?
if($_SERVER['REQUEST_METHOD'] == "POST"){
// alles ingevult?
if(empty($_POST["usrname"])){
header("Location:index.php");
}
if(empty($_POST["pass"])){
header("Location:index.php");
}
// alles ingevult kijken of username bestaad.
if(!empty($_POST["usrname"]) && !empty($_POST["pass"])){
$name = mysql_query("SELECT usrname FROM soc_users WHERE usrname='".$_POST["usrname"]."'");
$nameck = mysql_num_rows($name);
if($nameck == 0){
header("Location:index.php");
}
if($nameck == 1){
$pass = mysql_query("SELECT * FROM soc_users WHERE usrname='".$_POST["usrname"]."'");
$passo = mysql_fetch_assoc($pass);
$spass = md5($_POST["pass"]);
if($passo["pass"] == $spass){
$_SESSION["soc_usr_name"] == $passo["usrname"];
$_SESSION["soc_usr_ip"] == $_SERVER['REMOTE_ADDR'];
header("Location:http://game.kooistrawebdesign.nl/game/");
}
else{
header("Location:index.php");
}
}
}
}
?>
if($_SERVER['REQUEST_METHOD'] == "POST"){
// alles ingevult?
if(empty($_POST["usrname"])){
header("Location:index.php");
}
if(empty($_POST["pass"])){
header("Location:index.php");
}
// alles ingevult kijken of username bestaad.
if(!empty($_POST["usrname"]) && !empty($_POST["pass"])){
$name = mysql_query("SELECT usrname FROM soc_users WHERE usrname='".$_POST["usrname"]."'");
$nameck = mysql_num_rows($name);
if($nameck == 0){
header("Location:index.php");
}
if($nameck == 1){
$pass = mysql_query("SELECT * FROM soc_users WHERE usrname='".$_POST["usrname"]."'");
$passo = mysql_fetch_assoc($pass);
$spass = md5($_POST["pass"]);
if($passo["pass"] == $spass){
$_SESSION["soc_usr_name"] == $passo["usrname"];
$_SESSION["soc_usr_ip"] == $_SERVER['REMOTE_ADDR'];
header("Location:http://game.kooistrawebdesign.nl/game/");
}
else{
header("Location:index.php");
}
}
}
}
?>
1 keer is meer dan genoeg toch?
SELECT * FROM users where username = addslashes($_POST['username']) AND password = md5($_POST['password'])
Dan wordt je hele script al een stuk simpeler
Als hij de sessies niet wil onhouden moet je ff gaan zoeken of er al een $variable bestaat die deze zelfde naam heeft als de sessie zo ja dan word het over genomen en dan doet hij het niet.
Gewijzigd op 29/08/2005 13:45:00 door Jan Koehoorn
voor zover ik kan zien is er (nu) geen variable die dezelfde naam heeft als de sessie, en heb session_start() bovenaan staan.
Het nieuwe 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
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
<?
session_start();
ob_start();
require("includes/database.php");
if($_SERVER['REQUEST_METHOD'] == "POST"){
// alles ingevult?
if(empty($_POST["usrname"])){
header("Location:index.php");
}
if(empty($_POST["pass"])){
header("Location:index.php");
}
// alles ingevult kijken of username bestaad.
if(!empty($_POST["usrname"]) && !empty($_POST["pass"])){
$query = mysql_query("SELECT * FROM soc_users WHERE usrname='".$_POST["usrname"]."' AND pass='".md5($_POST["pass"])."'");
if(mysql_num_rows($query) == "0"){
header("Location:index.php");
}
if(mysql_num_rows($query) == "1"){
$_SESSION["soc_usr_name"] == $_POST["usrname"];
$_SESSION["soc_usr_ip"] == $_SERVER['REMOTE_ADDR'];
header("Location:http://game.kooistrawebdesign.nl/game");
}
else{
header("Location:index.php");
}
}
}
?>
session_start();
ob_start();
require("includes/database.php");
if($_SERVER['REQUEST_METHOD'] == "POST"){
// alles ingevult?
if(empty($_POST["usrname"])){
header("Location:index.php");
}
if(empty($_POST["pass"])){
header("Location:index.php");
}
// alles ingevult kijken of username bestaad.
if(!empty($_POST["usrname"]) && !empty($_POST["pass"])){
$query = mysql_query("SELECT * FROM soc_users WHERE usrname='".$_POST["usrname"]."' AND pass='".md5($_POST["pass"])."'");
if(mysql_num_rows($query) == "0"){
header("Location:index.php");
}
if(mysql_num_rows($query) == "1"){
$_SESSION["soc_usr_name"] == $_POST["usrname"];
$_SESSION["soc_usr_ip"] == $_SERVER['REMOTE_ADDR'];
header("Location:http://game.kooistrawebdesign.nl/game");
}
else{
header("Location:index.php");
}
}
}
?>
hij maakt de sessie nog steeds niet aan, maar ik vraag me af of het misschien ook aan het check-script kan liggen:
want bovenstaand script werkt wel als ik deze niet include.
Code (php)
bovenaan de pagina's waar deze op geïncluded wordt staat session_start();
Gewijzigd op 29/08/2005 14:35:00 door The Pope
Als de sessie niet bestaat of als het leeg is gaat hij naar de header dus in denk dat het komt doordat hij niet bestaat.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
if(mysql_num_rows($query) == "0"){
header("Location:index.php");
}
if(mysql_num_rows($query) == "1"){
?>
if(mysql_num_rows($query) == "0"){
header("Location:index.php");
}
if(mysql_num_rows($query) == "1"){
?>
Het resultaat van mysql_num_rows is een integer en geen string. Haal de dubbele aanhalingstekens om die 0 en die 1 eens weg?
Volgens mij moet ob_start() nog boven session_start()
if(empty($_POST["usrname"])){
header("Location:index.php");
}
if(empty($_POST["pass"])){
header("Location:index.php");
}
Namelijk:
if(empty($_POST["usrname"]) OR empty($_POST["pass"]))
{
header("Location:index.php");
}
Ik wist niet dat PHP ook OR kende? Dat is toch || ?
kan allebei Jan, je kan ook AND doen ipv &&