Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [PHP] login check (https://forum.scholieren.com/showthread.php?t=1010544)

mboy 11-11-2004 16:35

[PHP] login check
 
ey ik heb weer een probleempje, nu met de login check... Ik heb een bestand login_form.html die de username en password post naar checkuser.php, daar checkt hij dus of de username en password goed zijn en regristreed hij sessions als het password en username goed zijn. Ook verwijst hij dan door naar login_success.php. En daar gat het fout, want hij geeft altijd aan dat niemand is ingelogd. Dit is eht script van login_success.php:
PHP-code:

<? 
session_start(); 

// Kijk of de session bestaat 
if ( isset($_SESSION['username']) AND $_SESSION['username']!="" ) 

  //zo ja: 
  echo "<br>Welkom ". $_SESSION['username'] ."!"; 

else 

  //zo nee: 
  echo "<br>Je bent niet ingelogd!"; 

?>

als jullie er belang bij hebben, dit is de checkuser.php:
PHP-code:

<?
/* Check User Script */
session_start();  // Start Session

include 'db.php';
// Conver to simple variables
$username = $_POST['username'];
$password = $_POST['password'];

if((!$username) || (!$password)){
    echo "Please enter ALL of the information! <br />";
    include 'login_form.html';
    exit();
}

// Convert password to md5 hash
$password = md5($password);

// check if the user info validates the db
$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
    while($row = mysql_fetch_array($sql)){
    foreach( $row AS $key => $val ){
        $$key = stripslashes( $val );
    }
        // Register some session variables!
        
        $_SESSION['username'] = $username;
        $_SESSION['first_name'] = $first_name;
        $_SESSION['last_name'] = $last_name;
        $_SESSION['email_address'] = $email_address;
        
        mysql_query("UPDATE users SET last_login=now() WHERE userid='$userid'");
        



        header("Location: login_success.php");
    }
} else {
    echo "Je kunt niet inloggen, de username of het password is fout!<br />
    Please try again!<br />";
    include 'login_form.html';
}
?>

Ik hoop echt dat jullie me kunnen helpen, ben nog een groentje met php, en heb dit scipt uit een tutorial...
alvast bedankt!

dafelix 11-11-2004 17:49

hij controleerd de wachtwoorden niet, hij kijkt alleen of 'SESSION[username]' gevuld is en niet leeg is (dubbelop, want waarom gebruik je niet gewoon '!is_empty'?)

mboy 11-11-2004 17:51

Citaat:

dafelix schreef op 11-11-2004 @ 18:49 :
hij controleerd de wachtwoorden niet, hij kijkt alleen of 'SESSION[username]' gevuld is en niet leeg is (dubbelop, want waarom gebruik je niet gewoon '!is_empty'?)
waar moet ik dat ipv wat invullen??

dafelix 11-11-2004 17:53

PHP-code:

<? 
session_start(); 

// Kijk of de session bestaat 
if ( !empty($_SESSION['username']) ) 

  //zo ja: 
  echo "<br>Welkom ". $_SESSION['username'] ."!"; 

else 

  //zo nee: 
  echo "<br>Je bent niet ingelogd!"; 

?>

ik zie nu pas dat het wachtwoord wel wordt gecontroleerd, zal het script 'ns doorlopen :)

EDIT

klopt je database wel? ik bedoel, bestaat er een verbinding, staat daar de goede informatie in?

Dr HenDre 11-11-2004 17:54

if ( isset($_SESSION['username']) AND $_SESSION['username']!="" )

klopt niet, het idee is wel goed, alleen AND != && and is de bitwise operator als ik me niet vergis, terwijl && de operartor is wat jij bedoeld :)

en ow ja, zoals daflix het zegt, het is dubbelop, maar pasop, want leeg ($_SESSION['username']=="") en isset geven niet altijd hetzelfde, als een variable geen data bevat maar wel is geinitialiseerd, dan geeft isset true, terwijl !is_empty false geeft :)

mboy 11-11-2004 18:01

Citaat:

dafelix schreef op 11-11-2004 @ 18:53 :
PHP-code:

<? 
session_start(); 

// Kijk of de session bestaat 
if ( !empty($_SESSION['username']) ) 

  //zo ja: 
  echo "<br>Welkom ". $_SESSION['username'] ."!"; 

else 

  //zo nee: 
  echo "<br>Je bent niet ingelogd!"; 

?>

ik zie nu pas dat het wachtwoord wel wordt gecontroleerd, zal het script 'ns doorlopen :)

EDIT

klopt je database wel? ik bedoel, bestaat er een verbinding, staat daar de goede informatie in?

ja want checkuser.php linkt als het paswoord goed is me wel door naar login_success.php... wanneer het paswoord fout is geeft checkuser.php het ook aan zoals het hoort. Ook wordt mijn last login bijgewerkt in de database... dus dat lijkt me dat de verbinding goed is

EDIT
ja want ander link hij me ook niet door naar login_succes.php want hij checked tog of de info goed is?

mboy 11-11-2004 18:10

maar zoals hierboven login_succes.php moet ie goed zijn??? dan weet ik dat daar de fout niet in zit... maybe in het regristreren van de sessions? maar ik zie daar geen fouten in

mboy 11-11-2004 19:14

weten jullie het ook niet meer???

dafelix 11-11-2004 19:31

ffs, gebruik de edit-optie en wees niet zo ongeduldig

Dr HenDre 11-11-2004 21:09

weet je zeker dat er NIETS (dus ook geen spatie voor <?php) word ge-echoed session_start()

mboy 11-11-2004 21:31

Citaat:

Dr HenDre schreef op 11-11-2004 @ 22:09 :
weet je zeker dat er NIETS (dus ook geen spatie voor <?php) word ge-echoed session_start()
ja dat weet ik zeker, ik heb net ff nagecheked maar er zit gen spatie of wat dan ook voor <?

eddie 12-11-2004 08:29

lijkt mij het probleem van meerdere servers waarop php draait (een sessie word bijgehouden op één server). Wanneer je de pagina opnieuw opvraagt, kan een andere server deze uitvoeren en daar is de sessie niet bekent.

Fade of Light 12-11-2004 09:19

doe dit eens:

a.php:
PHP-code:

<?
session_start();
$_SESSION['username'] = "aap";
echo $_SESSION['username']."<BR><a href=\"b.php\">klik</a>";
?>

b.php
PHP-code:

<?
session_start();
echo "username: ".$_SESSION['username'];
?>

Als het niet werkt krijg je in b.php een error dat session['username'] niet bestaat. Anders, zie je username: aap.
Als dit niet werkt is er 100% zeker iets mis met dat sessiegebeuiren, omdat er verder geen boeiende code tussenstaat :)

mboy 12-11-2004 14:02

Citaat:

Fade of Light schreef op 12-11-2004 @ 10:19 :
doe dit eens:

a.php:
PHP-code:

<?
session_start();
$_SESSION['username'] = "aap";
echo $_SESSION['username']."<BR><a href=\"b.php\">klik</a>";
?>

b.php
PHP-code:

<?
session_start();
echo "username: ".$_SESSION['username'];
?>

Als het niet werkt krijg je in b.php een error dat session['username'] niet bestaat. Anders, zie je username: aap.
Als dit niet werkt is er 100% zeker iets mis met dat sessiegebeuiren, omdat er verder geen boeiende code tussenstaat :)

okey... dat heb ik gedaan en het enigste wat ik bij b.php te zien krijg is

username:

betekent dat dat de session niet geregristreerd word?? wat moet ik veranderen om dat wel te krijgen?


eddie:

de pagina draait op een server van een vriend van mij, daar staat ook php en mysql op, het is maar 1 server dus daar kan het lijkt mij niet aan liggen

dafelix 12-11-2004 14:07

Citaat:

mboy schreef op 12-11-2004 @ 15:02
enigste

*enige


dan worden de sessie's niet goed aangemaakt, vraag je vriend of hj de instellingen wil bekijken voor de sessie's, het kan zijn dat ze niet goed staan ingesteld (worden opgeslagen op een niet-bestaande schijf) of dat het uitgeschakeld is (ik weet overigens niet of dit kan)

Dr HenDre 12-11-2004 15:10

probeer eens ipv $_SESSION['username']; session_register("username");

mboy 12-11-2004 15:11

het is gelukt!! er zat een fout in de php.ini en dat is nu gefixed en alles doet het nu weer :D heel erg bedankt allemaal! (y)

Fade of Light 12-11-2004 17:13

Citaat:

Dr HenDre schreef op 12-11-2004 @ 16:10 :
probeer eens ipv $_SESSION['username']; session_register("username");
ouch, dat doe ik normaal ook ;o:D Maar het werkte zo ook :)

session_register("username");
$_SESSION['username'] = 'aap';


Alle tijden zijn GMT +1. Het is nu 07:54.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.