geen sessies aangemaakt...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

The Pope

The Pope

29/08/2005 12:12:00
Quote Anchor link
hallo, ik heb laatst een topic gemaakt met de vraag of het gebruik van sessies wel veilig is voor een loginscript, er was verteld dat het wel veilig was als je het koppelt aan het ip-adres, dit heb ik geprobeerd maar bij het inloggen wil hij geen sessies onthouden.
dit is het loginscript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
require("includes/database.php");
session_start();
ob_start();
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
      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");
      }
      }
      }
      }

      ?>
 
PHP hulp

PHP hulp

05/12/2022 21:53:45
 
Jelmer -

Jelmer -

29/08/2005 12:37:00
Quote Anchor link
Waarom twee maal een query?
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
 
Han eev

Han eev

29/08/2005 13:39:00
Quote Anchor link
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.
 
Jan Koehoorn

Jan Koehoorn

29/08/2005 13:45:00
Quote Anchor link
de regel session_start () moet als eerste in je script staan. Daarna pas de require doen.
Gewijzigd op 29/08/2005 13:45:00 door Jan Koehoorn
 
The Pope

The Pope

29/08/2005 14:34:00
Quote Anchor link
ik heb het script vereenvoudigd zoals Jelmer dat aangaf.
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
if($_SESSION["soc_usr_name"] == ""){
header("Location:http://game.kooistrawebdesign.nl/");
}

if($_SESSION["soc_usr_ip"] == ""){
header("Location:http://game.kooistrawebdesign.nl/");
}

?>


bovenaan de pagina's waar deze op geïncluded wordt staat session_start();
Gewijzigd op 29/08/2005 14:35:00 door The Pope
 
Han eev

Han eev

29/08/2005 15:15:00
Quote Anchor link
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.
 
Jan Koehoorn

Jan Koehoorn

29/08/2005 15:23:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
      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?
 
Casper

Casper

29/08/2005 16:41:00
Quote Anchor link
Volgens mij moet ob_start() nog boven session_start()
 
- SanThe -

- SanThe -

29/08/2005 17:04:00
Quote Anchor link
Dit kan ook korter:

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");
}
 
Jan Koehoorn

Jan Koehoorn

29/08/2005 17:14:00
Quote Anchor link
Ik wist niet dat PHP ook OR kende? Dat is toch || ?
 
Casper

Casper

29/08/2005 17:31:00
Quote Anchor link
kan allebei Jan, je kan ook AND doen ipv &&
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.