<?php
if(isset($_POST['Login'])) {
$info = mysql_query("SELECT * FROM leden WHERE id >= '1'") or die(mysql_error());
$leden = mysql_fetch_assoc($info);
if($_POST['naam'] == $leden['naam']){ //de naam voorkomt in de database
$paswoord = mysql_query("SELECT paswoord FROM leden WHERE naam == '".$_POST['naam']."'") or die(mysql_error());
if($_POST['paswoord'] != $paswoord['paswoord']) {
echo "<tr><td>Het paswoord komt niet overeen met de coachnaam.</td></tr>";
};
} else { //de naam komt niet voor in de database
echo "<tr><td>De ingevoerde coachnaam is niet bekend in onze database.</td></tr>";
};
}
?>
nu is het paswoord nooit correct, ik weet niet of ik het paswoord dat in ingetypt heb moet doen met sha1 en md5 of het paswoord van in mijn database, ik denk dat ik het zo goed doe, ziet iemand de fout?
$info = mysql_query("SELECT * FROM leden WHERE id >= '1'") or die(mysql_error());
$leden = mysql_fetch_assoc($info);
if($_POST['naam'] == $leden['naam']){ //de naam voorkomt in de database
$paswoord = mysql_query("SELECT paswoord FROM leden WHERE naam = '".$_POST['naam']."'") or die(mysql_error());
$pw_input = sha1(md5($_POST['paswoord']));
if($pw_input != $paswoord['paswoord']) {
echo "<tr><td>Het paswoord komt niet overeen met de coachnaam.</td></tr>";
} else {
echo "<tr><td>Het paswoord is correct.</td></tr>";
}
$paswoord = mysql_query("SELECT paswoord FROM leden WHERE naam = '".$_POST['naam']."'") or die(mysql_error());
$pw_input = sha1(md5($_POST['paswoord']));
$paswoord=mysql_query("SELECT paswoord FROM leden WHERE naam = '".$_POST['naam']."'") or die(mysql_error());
$qPaswoord = mysql_query("SELECT paswoord FROM leden WHERE naam = '".$_POST['naam']."'") or die(mysql_error());
$paswoord = mysql_fetch_assoc($qPaswoord);
$pw_input = sha1(md5($_POST['paswoord']));
$qPaswoord=mysql_query("SELECT paswoord FROM leden WHERE naam = '".$_POST['naam']."'") or die(mysql_error());
<?php
$qLid = mysql_query("SELECT COUNT(id), paswoord FROM leden WHERE naam = '" .$_POST['naam']. "'") or die("FOUT bij qLid :" .mysql_error());
if(mysql_result($qLid,0) > 0){ //de naam voorkomt in de database
$aLid = mysql_fetch_assoc($qLid);
if(sha1(md5($_POST['paswoord'])) != $aLid['paswoord']) {
echo "<tr><td>Het paswoord komt niet overeen met de coachnaam.</td></tr>";
} else {
echo "<tr><td>Het paswoord is correct.</td></tr>";
}
}
?>
<?php
$qLid=mysql_query("SELECT COUNT(id), paswoord FROM leden WHERE naam = '".$_POST['naam']."'") or die("FOUT bij qLid :".mysql_error());
if(mysql_result($qLid,0)>0){//de naam voorkomt in de database
maar waarom zou je tellen hoeveel er voorkomen, als er toch maar 1tje is, volgens mij blijft het hetzelfde als het op mijn manier is
Simon - 14/08/2006 09:15 (laatste wijziging 14/08/2006 09:16)
PHP expert
Ten eerste, mysql_result is sneller dan mysql_num_rows of in jouw geval assoc (:s).
Ten tweede, zo selecteer je alleen de nodige rijen, wat ook weer sneller gaat.
Ten derde, jij hebt 2 assoc's waar slecht 1 nodig is, allemaal tijdsverlies.
Ten vierde, jouw script zal niet werken, want je fetcht slechts 1 rij uit je database, dus als je 10 leden hebt, kan er maar 1 inloggen, id 2 lijkt mij. Je zou dus moeten een while rond je eerste assoc zetten, wat ook alweer voor vertraging zorgt...
EDIT2: na beter testen was er toch een fout
ik heb het nu zo, als een een naam intypt dat niet bestaat gaat alles goed, maar als je een bestaande naam gebruik loopt het mis
Citaat:
FOUT bij qLid :Het mixen van GROUP kolommen (MIN(),MAX(),COUNT()...) met no-GROUP kolommen is foutief indien er geen GROUP BY clausule is
<?php
if(isset($_POST['Login'])) {
if(strlen($_POST['naam']) < 5) {
echo "<tr><td>Je coachnaam moet minstens 5 letters lang zijn.</td></tr>";
} elseif(strlen($_POST['paswoord']) < 5) {
echo "<tr><td>Je paswoord moet minstens 5 letters lang zijn.</td></tr>";
} else {
$qLid = mysql_query("SELECT COUNT(id), paswoord FROM leden WHERE naam = '" .$_POST['naam']. "'") or die("FOUT bij qLid :" .mysql_error());
if(mysql_result($qLid,0) > 0){ //de naam voorkomt in de database
$aLid = mysql_fetch_assoc($qLid);
if(sha1(md5($_POST['paswoord'])) != $aLid['paswoord']) {
echo "<tr><td>Het paswoord komt niet overeen met de coachnaam.</td></tr>";
} else {
echo "<tr><td>Het paswoord is correct.</td></tr>";
}
} else { //de naam komt niet voor in de database
echo "<tr><td>De ingevoerde coachnaam is niet bekend in onze database.</td></tr>";
}
}
}
?>
<?php
if(isset($_POST['Login'])) {
if(strlen($_POST['naam']) < 5) {
echo "<tr><td>Je coachnaam moet minstens 5 letters lang zijn.</td></tr>";
} elseif(strlen($_POST['paswoord']) < 5) {
echo "<tr><td>Je paswoord moet minstens 5 letters lang zijn.</td></tr>";
} else {
$qLid = mysql_query("SELECT id, paswoord FROM leden WHERE naam = '" .$_POST['naam']. "'") or die("FOUT bij qLid :" .mysql_error());
if(mysql_num_rows($qLid) > 0){ //de naam voorkomt in de database
$aLid = mysql_fetch_assoc($qLid);
if(sha1(md5($_POST['paswoord'])) != $aLid['paswoord']) {
echo "<tr><td>Het paswoord komt niet overeen met de coachnaam.</td></tr>";
} else {
echo "<tr><td>Het paswoord is correct.</td></tr>";
}
} else { //de naam komt niet voor in de database
echo "<tr><td>De ingevoerde coachnaam is niet bekend in onze database.</td></tr>";
}
}
}
?>
<?php
if(isset($_POST['Login'])) {
if(strlen($_POST['naam']) < 5) {
echo "<tr><td>Je coachnaam moet minstens 5 letters lang zijn.</td></tr>";
} elseif(strlen($_POST['paswoord']) < 5) {
echo "<tr><td>Je paswoord moet minstens 5 letters lang zijn.</td></tr>";
} else {
$qLid = mysql_query("SELECT COUNT(id) as c, paswoord FROM leden WHERE naam = '" .$_POST['naam']. "'") or die("FOUT bij qLid :" .mysql_error());
if(mysql_result($qLid,"c") > 0){ //de naam voorkomt in de database
$aLid = mysql_fetch_assoc($qLid);
if(sha1(md5($_POST['paswoord'])) != $aLid['paswoord']) {
echo "<tr><td>Het paswoord komt niet overeen met de coachnaam.</td></tr>";
} else {
echo "<tr><td>Het paswoord is correct.</td></tr>";
}
} else { //de naam komt niet voor in de database
echo "<tr><td>De ingevoerde coachnaam is niet bekend in onze database.</td></tr>";
}
}
}
?>