Je bent ingelogd werkt niet

Gestart doorDylan25 reacties60 weergaven

26 berichten · pagina 1 van 2

Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Ben bezig met inlog script alleen k kom er niet uit:

code:

[COLOR= #0000BB]<?php

$username[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]];[/COLOR]
[COLOR= #0000BB]$password[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]password[/COLOR][COLOR= #007700]];[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$username[/COLOR][COLOR= #007700]&&[/COLOR][COLOR= #0000BB]$password[/COLOR][COLOR= #007700])
{[/COLOR]

[COLOR= #0000BB]$connect[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_connect"]mysql_connect[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"localhost"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]"root"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]""[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]"Kan niet met de MySQL server verbinden"[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/mysql_select_db"]mysql_select_db[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"phplogin"[/COLOR][COLOR= #007700])[/COLOR] or [URL="http://www.php.net/die"]die[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]"database niet gevonden"[/COLOR][COLOR= #007700]);[/COLOR]

[COLOR= #0000BB]$query[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"SELECT * FROM users WHERE username=$username"[/COLOR][COLOR= #007700]);[/COLOR]

[COLOR= #0000BB]$numrows[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$query[/COLOR][COLOR= #007700]);[/COLOR]

[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$numrows[/COLOR][COLOR= #007700]!=[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]

    [URL="http://www.php.net/while"]while[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$row[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_assoc"]mysql_fetch_assoc[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$query[/COLOR][COLOR= #007700]));
    {[/COLOR]
        [COLOR= #0000BB]$dbusername[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$row[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]username[/COLOR][COLOR= #007700]];[/COLOR]
        [COLOR= #0000BB]$dbpassword[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$row[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]password[/COLOR][COLOR= #007700]];
    }[/COLOR]

    [COLOR= #FF8000]// check[/COLOR]
    [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$username[/COLOR][COLOR= #007700]==[/COLOR][COLOR= #0000BB]$dbusername[/COLOR][COLOR= #007700]&&[/COLOR][COLOR= #0000BB]$password[/COLOR][COLOR= #007700]==[/COLOR][COLOR= #0000BB]$dbpassword[/COLOR][COLOR= #007700])
    {[/COLOR]
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Je bent succesvol ingelogd"[/COLOR][COLOR= #007700];
    }[/COLOR]
    [URL="http://www.php.net/else"]else[/URL]
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"Wachtwoord klopt niet."[/COLOR][COLOR= #007700];
    
    
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
    [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Gebruikersnaam niet gevonden"[/COLOR][COLOR= #007700]);



}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
    [URL="http://www.php.net/die"]die[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"Voer uw gebruikersnaam en wachtwoord in."[/COLOR][COLOR= #007700]);[/COLOR]

?>


Als ik inlog met de juist gegevens komt er te staan wachtwoord klopt niet, maar het klopt wel volgens de database.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Waarom gebruik je die()? Waarom moet je script stoppen als iemand iets fout doet? Jij gaat dan toch ook niet dood?

Een paar tips:
- Regel 3 en 4 zijn overbodig. Je hebt zodra je al hebt gecontroleerd (die volgende tip) al de beschikking op $_POST-variabelen, dus waarom kopieeren
- Kijk met if ($_SERVER[REQUEST_METHOD]=="POST") { of je formulier is verstuurd.
- Gebruik geen die(), maar handel dit af met een nette if-else structuur, nog mooier is om de foutmeldingen in een array te verzamelen
- Haal variabelen buiten quotes
- gebruik mysql_real_escape_string() in de POST/GET/COOKIE variabelen in je querys. Nu ben je behoorlijk vatbaar voor SQL injection en dus ook hackbaar.
- Sla passwoorden gecodeerd met bij voorkeur SHA1() en het liefst nog met een salt... (zie Google)
- Pas foutafhandeling zonder die() toe. Is je $query nu gelukt of niet? Bij voorkeur gebruik je $result, dit is een logischere variabele.
- Een while() is overbodig voor een enkel record welke je terug krijgt.- Als je wilt weten op regel 6 of een variabele bestaat, gebruik dan isset().
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Aarclay schreef:
Waarom gebruik je die()? Waarom moet je script stoppen als iemand iets fout doet? Jij gaat dan toch ook niet dood?

Een paar tips:
- Regel 3 en 4 zijn overbodig. Je hebt zodra je al hebt gecontroleerd (die volgende tip) al de beschikking op $_POST-variabelen, dus waarom kopieeren
- Kijk met if ($_SERVER[REQUEST_METHOD]=="POST") { of je formulier is verstuurd.
- Gebruik geen die(), maar handel dit af met een nette if-else structuur, nog mooier is om de foutmeldingen in een array te verzamelen
- Haal variabelen buiten quotes
- gebruik mysql_real_escape_string() in de POST/GET/COOKIE variabelen in je querys. Nu ben je behoorlijk vatbaar voor SQL injection en dus ook hackbaar.
- Sla passwoorden gecodeerd met bij voorkeur SHA1() en het liefst nog met een salt... (zie Google)
- Pas foutafhandeling zonder die() toe. Is je $query nu gelukt of niet? Bij voorkeur gebruik je $result, dit is een logischere variabele.
- Een while() is overbodig voor een enkel record welke je terug krijgt.- Als je wilt weten op regel 6 of een variabele bestaat, gebruik dan isset().
Ik volg nog een tutorial dus ik doe wat hij ook doet, en bij hem werkt het wel gewoon?

// IK zou je tips wel toepassen, zo ver ik het snap
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Je moet met tutorials uitkijken omdat ze meestal erg oud zijn..
Je kan beter zo veel mogelijk op php.net kijken smile.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Ik zie geen controle of je formulier verstuurd is.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Aarclay schreef:
Ik zie geen controle of je formulier verstuurd is.
<form action=login2.php method=POST>
    
    Gebruikersnaam: <input type=text name=username> <br />
    Wachtwoord: <input type=password name=password><br />
    <input type=submit value=Log in!>
    
    </form>


Bedoel je dat?

Maar ik kan iemand nou kijken wat er fout aan is?

toevoeging op 30 januari 2012, 19:35:44:
btw beveiligen komt nog yummie
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Eerdere citaten tonen
Aarclay schreef:
Ik zie geen controle of je formulier verstuurd is.
<form action=login2.php method=POST>
    
    Gebruikersnaam: <input type=text name=username> <br />
    Wachtwoord: <input type=password name=password><br />
    <input type=submit value=Log in!>
    
    </form>


Bedoel je dat?
Dat is je formulier, maar je moet ook gaan controleren of deze verstuurd is.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Aarclay schreef:
Eerdere citaten tonen
Dylanh schreef:
Eerdere citaten tonen
Aarclay schreef:
Ik zie geen controle of je formulier verstuurd is.
<form action=login2.php method=POST>
    
    Gebruikersnaam: <input type=text name=username> <br />
    Wachtwoord: <input type=password name=password><br />
    <input type=submit value=Log in!>
    
    </form>


Bedoel je dat?
Dat is je formulier, maar je moet ook gaan controleren of deze verstuurd is.
Dat is toch beveilingen -.-
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Eerdere citaten tonen
Aarclay schreef:
Eerdere citaten tonen
Dylanh schreef:
Eerdere citaten tonen
Aarclay schreef:
Ik zie geen controle of je formulier verstuurd is.
<form action=login2.php method=POST>
    
    Gebruikersnaam: <input type=text name=username> <br />
    Wachtwoord: <input type=password name=password><br />
    <input type=submit value=Log in!>
    
    </form>


Bedoel je dat?
Dat is je formulier, maar je moet ook gaan controleren of deze verstuurd is.
Dat is toch beveilingen -.-
Je beveiligt hier niks mee, dit is alleen een formuliertje.
0
Berichten
8.649
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Beveiligen houd in ervoor zorgen dat script veilig is, en niet kan worden omzeild door hackers ofzo. Kijken of form is verstuurt betekent bv. Je klikt op knop versturen en DAN kijkt die Pas of passwd enz kloppen.
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Vriendje schreef:
Beveiligen houd in ervoor zorgen dat script veilig is, en niet kan worden omzeild door hackers ofzo. Kijken of form is verstuurt betekent bv. Je klikt op knop versturen en DAN kijkt die Pas of passwd enz kloppen.
Dat gebeurt toch ook met?

$username = $_POST[username];
$password = $_POST[password];
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Nee, hiermee sla je de waardes uit je formulier op in een variabele, wat niet echt nodig is. Je hebt die waardes toch al in $_POST[username] en $_POST[password] staan? Waarom zou je ze dan nog in $username en $password plaatsen?

En bovendien zijn $_POST variabelen pas alleen beschikbaar als je gecontroleerd hebt of je formulier is verstuurd via de POST-methode. Dit doe je uitsluitend met:

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]REQUEST_METHOD[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]"POST"[/COLOR][COLOR= #007700]) {[/COLOR]


En niet anders wink.
0
Berichten
1.631
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
session_start() ?
0
Berichten
3.074
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Misschien is het al eerder gezegd, maar je kan beter een if else maken ipv een die.

Edit: Heb je wel een session_start?
0
Dylan

Lid · Topicstarter

Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Joeyl schreef:
Misschien is het al eerder gezegd, maar je kan beter een if else maken ipv een die.

Edit: Heb je wel een session_start?
Nee, maar waar zou dat dan moeten?
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren