verkeerde query?
Dit heb ik staan:
$sql="SELECT * FROM admin";
$wachtwoord = mysql_query($sql);
Om te controleren of hij dit juist uitvoerd doe ik:
echo $wachtwoord;
Op mijn scherm krijg ik dan te zien:
Resource id #4
Wat doe ik dan fout? Want dat staat namelijk niet in de database.
Je vergeet mysql_fetch_xxxxx()
Ben daar aan het begin van de middag ook mee bezig geweest, en nu heb ik alles geprobeerd wat ik op php.net kon vinden over die mysql_fetch_xxx()
$sql="SELECT * FROM admin";
$fetch = mysql_query($sql);
$wachtwoord = mysql_fetch_object($fetch);
echo $wachtwoord;
Maar nog steeds krijg ik niet het geweenste reseltaat:s
probeer eens je code en print_r($wachtwoord)
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql="SELECT * FROM admin";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)){
echo $row['kolomnaam'];
echo $row['andere_kolomnaam'];
}
?>
$sql="SELECT * FROM admin";
$result = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_assoc($result)){
echo $row['kolomnaam'];
echo $row['andere_kolomnaam'];
}
?>
Let ook even op de naamgeving van je variabelen.
Ik heb nu jou optie over genomen pgFrank van mysql_fetch_assoc()
Maar toch vergelijkt hij bij het "inloggen" niet de juiste waarden geloof ik.
Dit is het scriptje verder:
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
<?php
include '..//db_connection.php';
$sql="SELECT * FROM admin";
$result = mysql_query($sql);
$wachtwoord = mysql_fetch_assoc($result);
echo "<p align=\"center\"><font size=\"5\">Admin Pagina</font></p><br>";
if(isset($_SESSION['slogin']) == FALSE){
if(isset($_POST['login']) == FALSE){
echo "<form method=\"POST\">";
echo "<b>Wachtwoord</b>: <input type=\"password\" name=\"wachtwoord\"> <input type=\"submit\" name=\"login\" value=\"Go !\">";
echo "</form>";
}else{
if($_POST['wachtwoord'] == $wachtwoord){
$_SESSION['slogin'] = md5($wachtwoord);
echo "je hebt het jusite wachtwoord gebruikt.";
}else{
echo "Wachtwoord is verkeerd! In 2 seconden gaat u terug.";
?>
include '..//db_connection.php';
$sql="SELECT * FROM admin";
$result = mysql_query($sql);
$wachtwoord = mysql_fetch_assoc($result);
echo "<p align=\"center\"><font size=\"5\">Admin Pagina</font></p><br>";
if(isset($_SESSION['slogin']) == FALSE){
if(isset($_POST['login']) == FALSE){
echo "<form method=\"POST\">";
echo "<b>Wachtwoord</b>: <input type=\"password\" name=\"wachtwoord\"> <input type=\"submit\" name=\"login\" value=\"Go !\">";
echo "</form>";
}else{
if($_POST['wachtwoord'] == $wachtwoord){
$_SESSION['slogin'] = md5($wachtwoord);
echo "je hebt het jusite wachtwoord gebruikt.";
}else{
echo "Wachtwoord is verkeerd! In 2 seconden gaat u terug.";
?>
<META http-equiv="refresh" content="2;">
Het gekke is als ik boven aan typ: $wachtwoord='koekje';
En ik gebruik koekje om in te loggen dan werkt het wel...
Als frank ziet dat je een wachtwoord in een session opslaat kan het zijn dat je morgen niet meer wakker wordt... dan weet je dat vast
zal voor de zekerheid een extra slot op de deur doen:p
Quote:
De aanpak is niet goed, vergelijken doe je in de database, niet in de PHP-code. Jij haalt eerst álle records op om vervolgens 1 record te gaan gebruiken... Dat is niet zo slim.Maar toch vergelijkt hij bij het "inloggen" niet de juiste waarden geloof ik.
Daarnaast ontbreekt een while-lus, zie mijn voorbeeld hoe je dat gebruikt.
En dat wachtwoord in een sessie, dat is wel heel erg dom en overbodig. Een wachtwoord heb je 1x nodig en hoef je dus nooit in een sessie te zetten, je hebt deze nooit meer nodig. Kansloos dus.
ja, waar in haal je het vandaan dat je een wachtwoord in een sessie moet zetten? Dat is de grootste onzin die er is!!!!
Dat van die sessies heb ik gekregen van iemand, zal even uitzoeken hoe het precies werkt en dat er dan uithalen.
Maar dus de aanpak, iemand typt het wachtwoord in, en ik zoek in de database naar het wachtwoord dat gelijk is aan het getypte... klopt het zo`n beetje wat ik zeg?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Wachtwoorden sla je uiteraard als md5-hash (of evt. sha1-hash) op in de database, nooit en te nimmer zonder deze beveiliging.
Hey bedankt he!:D Ben echt ff super blij mee, zit me namelijk al een tijd blind te staren op wat ik verkeerd deed. Ben nog niet zo ervaren maar het wordt steeds leuker.
Heb die while-lus vervangen door een if-else. Hopelijk is dat niet verkeerd.
Ook de MD5 heb ik toegepast... ging vrij makkelijk moet ik zeggen.
Heb je verder nog op/aanmerkingen?
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
<?php
include '..//db_connection.php';
echo "<p align=\"center\"><font size=\"5\">Admin Pagina</font></p><br>";
if(isset($_POST['login']) == FALSE){
echo "<form method=\"POST\">";
echo "<b>Wachtwoord</b>: <input type=\"password\" name=\"wachtwoord\"> <input type=\"submit\" name=\"login\" value=\"Go !\">";
echo "</form>";
}else{
$x = md5($_POST['wachtwoord']);
//query opbouwen
$sql = "SELECT * FROM admin WHERE password = '".$x."'";
$result = mysql_query($sql) or die(mysql_error());
if($x = mysql_fetch_assoc($result)){
echo "je hebt het jusite wachtwoord gebruikt.";
}else{
echo "Wachtwoord is verkeerd! In 2 seconden gaat u terug.";
}
}
?>
include '..//db_connection.php';
echo "<p align=\"center\"><font size=\"5\">Admin Pagina</font></p><br>";
if(isset($_POST['login']) == FALSE){
echo "<form method=\"POST\">";
echo "<b>Wachtwoord</b>: <input type=\"password\" name=\"wachtwoord\"> <input type=\"submit\" name=\"login\" value=\"Go !\">";
echo "</form>";
}else{
$x = md5($_POST['wachtwoord']);
//query opbouwen
$sql = "SELECT * FROM admin WHERE password = '".$x."'";
$result = mysql_query($sql) or die(mysql_error());
if($x = mysql_fetch_assoc($result)){
echo "je hebt het jusite wachtwoord gebruikt.";
}else{
echo "Wachtwoord is verkeerd! In 2 seconden gaat u terug.";
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Ben Elsinga
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if($x = mysql_fetch_assoc($result)){
echo "je hebt het jusite wachtwoord gebruikt.";
}else{
echo "Wachtwoord is verkeerd! In 2 seconden gaat u terug.";
}
?>
if($x = mysql_fetch_assoc($result)){
echo "je hebt het jusite wachtwoord gebruikt.";
}else{
echo "Wachtwoord is verkeerd! In 2 seconden gaat u terug.";
}
?>
je gaat je wachtwoord vergelijken met het resultaat van de result. True als het klopt maar die vergelijking gaat niet op!
In de opbouw zoals je 'm nu hebt is dit logischer alleen nog niet helemaal logisch
Code (php)
Verder snap ik niet precies waarom dat wachtwoord nu uit de database moet komen. Je koppelt het niet aan een gebruiker en is dus een enkelvoudig gebruik.
Een logischer opbouw zou zijn dat je een gebruikersnaam en wachtwoord combinatie controleerd...
Klinkt inderdaad logischer wat je zegt... maar wat wordt dan de vergelijking voor $result?
$result is een resultset. Met de functie mysql_num_rows() kun je tellen hoeveel records er in deze set staan. Zijn dat er 0, dan zijn er dus geen resultaten opgehaald, er is niks gevonden.