probleem met loginscript (Opgelost)
kaspar - 30/09/2009 16:36
Nieuw lid
<?php
$db = mysql_connect("---", "---", "---") or die("Helaas, kan niet verbinden met de database");
mysql_select_db("---", $db);
$naam = $_POST['username'];
function controle($naam, $wachtwoord) {
$sql = "SELECT username, password FROM Klant WHERE username='$naam'";
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$password = mysql_result($result, 0, "password");
$klantid = mysql_result($result, 0, "username");
if ($wachtwoord != $password) {
return false;
} else {
return $username;
}
} else {
return false;
}
}
if (isset($_POST['verzonden'])) {
$username = $_POST['username'];
$wachtwoord = md5($_POST['wachtwoord']);
$klantid = controle($naam, $wachtwoord);
if ($klantid != false) {
$_SESSION['username'] = $username;
$_SESSION['wachtwoord'] = $wachtwoord;
$_SESSION['klantid'] = $klantid;
echo 'klantid is niet false!';
}
else {
echo 'klantid is false';
}
}
if (controle($_SESSION['username'], $_SESSION['wachwoord']) == false) {
echo '<form method="post" action="' . $_SERVER["PHP_SELF"] . '"?';
reset($_GET);
while ($getvar = each($_GET)) {
$varnaam = $getvar['key'];
$varinhoud = $getvar['value'];
echo "$varnaam=$varinhoud&";
}
echo "\">\n";
echo 'Naam: ';
echo '<input type="text" name="username">';
echo '<br>';
echo 'Wachtwoord: ';
echo '<input type="password" name="wachtwoord">';
echo '<br>';
echo '<input type="submit" value="verzenden" name="verzonden">';
echo '</form>';
echo '<p>Nog niet geregistreerd? <a href="aanmeldformulier.php">[registreer hier]</a><br>';
exit;
}
echo $_SESSION['username'];
mysql_close($db);
?>
<?php
$db = mysql_connect ( "---" , "---" , "---" ) or
die ( "Helaas, kan niet verbinden met de database" ) ;
$naam = $_POST [ 'username' ] ;
function controle( $naam , $wachtwoord ) {
$sql = "SELECT username, password FROM Klant WHERE username='$naam '" ;
if ( $wachtwoord != $password ) {
return false ;
} else {
return $username ;
}
} else {
return false ;
}
}
if ( isset ( $_POST [ 'verzonden' ] ) ) { $username = $_POST [ 'username' ] ;
$wachtwoord = md5 ( $_POST [ 'wachtwoord' ] ) ; $klantid = controle( $naam , $wachtwoord ) ;
if ( $klantid != false ) {
$_SESSION [ 'username' ] = $username ;
$_SESSION [ 'wachtwoord' ] = $wachtwoord ;
$_SESSION [ 'klantid' ] = $klantid ;
echo 'klantid is niet false!' ; }
else {
}
}
if ( controle( $_SESSION [ 'username' ] , $_SESSION [ 'wachwoord' ] ) == false ) {
echo '<form method="post" action="' . $_SERVER [ "PHP_SELF" ] . '"?' ;
while ( $getvar = each ( $_GET ) ) { $varnaam = $getvar [ 'key' ] ;
$varinhoud = $getvar [ 'value' ] ;
echo "$varnaam =$varinhoud &" ; }
echo '<input type="text" name="username">' ; echo '<input type="password" name="wachtwoord">' ; echo '<input type="submit" value="verzenden" name="verzonden">' ; echo '<p>Nog niet geregistreerd? <a href="aanmeldformulier.php">[registreer hier]</a><br>' ; }
echo $_SESSION [ 'username' ] ;
?>
dit werkt niet, velden in db kloppen en contact klopt ook, zeker weten.
toch geeft hij elke keer klantid=false
wie kan mij helpen?
8 antwoorden
Gesponsorde links
ArieMedia - 30/09/2009 16:47 (laatste wijziging 30/09/2009 16:49)
PHP ver gevorderde
je SQL is fout
$sql = "SELECT username, password FROM Klant WHERE username='$naam'";
Moet zijn
$sql = 'SELECT username, password FROM Klant WHERE username="'.$naam.'"';
$sql = 'SELECT username, password FROM Klant WHERE username="' . $naam . '"' ;
Edit: Waarom een wachtwoord opslaan in een sessie,
dit is onveilig en nergens voor nodig.
kaspar - 01/10/2009 16:09 (laatste wijziging 01/10/2009 16:36)
Nieuw lid
ok bedankt, maar het werkt nog steeds niet:
<?php
$db = mysql_connect("---", "---", "---") or die("Helaas, kan niet verbinden met de database");
mysql_select_db("---", $db);
$naam = $_POST['username'];
function controle($naam, $wachtwoord) {
$sql = 'SELECT username, password FROM Klant WHERE username="' . $naam . '"';
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0) {
$password = mysql_result($result, 0, "password");
$klantid = mysql_result($result, 0, "username");
if ($wachtwoord != $password) {
return false;
} else {
return $username;
}
} else {
return false;
}
}
if (isset($_POST['verzonden'])) {
$username = $_POST['username'];
$wachtwoord = md5($_POST['wachtwoord']);
$klantid = controle($naam, $wachtwoord);
if ($klantid != false) {
$_SESSION['username'] = $username;
$_SESSION['klantid'] = $klantid;
echo 'klantid is niet false!';
}
else {
echo 'klantid is false';
}
}
if (controle($_SESSION['username'], $_SESSION['wachwoord']) == false) {
echo '<form method="post" action="' . $_SERVER["PHP_SELF"] . '"?';
reset($_GET);
while ($getvar = each($_GET)) {
$varnaam = $getvar['key'];
$varinhoud = $getvar['value'];
echo "$varnaam=$varinhoud&";
}
echo "\">\n";
echo 'Naam: ';
echo '<input type="text" name="username">';
echo '<br>';
echo 'Wachtwoord: ';
echo '<input type="password" name="wachtwoord">';
echo '<br>';
echo '<input type="submit" value="verzenden" name="verzonden">';
echo '</form>';
echo '<p>Nog niet geregistreerd? <a href="aanmeldformulier.php">[registreer hier]</a><br>';
exit;
}
echo $_SESSION['username'];
?>
mysql_close($db);
?>
<?php
$db = mysql_connect ( "---" , "---" , "---" ) or
die ( "Helaas, kan niet verbinden met de database" ) ;
$naam = $_POST [ 'username' ] ;
function controle( $naam , $wachtwoord ) {
$sql = 'SELECT username, password FROM Klant WHERE username="' . $naam . '"' ;
if ( $wachtwoord != $password ) {
return false ;
} else {
return $username ;
}
} else {
return false ;
}
}
if ( isset ( $_POST [ 'verzonden' ] ) ) { $username = $_POST [ 'username' ] ;
$wachtwoord = md5 ( $_POST [ 'wachtwoord' ] ) ; $klantid = controle( $naam , $wachtwoord ) ;
if ( $klantid != false ) {
$_SESSION [ 'username' ] = $username ;
$_SESSION [ 'klantid' ] = $klantid ;
echo 'klantid is niet false!' ; }
else {
}
}
if ( controle( $_SESSION [ 'username' ] , $_SESSION [ 'wachwoord' ] ) == false ) {
echo '<form method="post" action="' . $_SERVER [ "PHP_SELF" ] . '"?' ;
while ( $getvar = each ( $_GET ) ) { $varnaam = $getvar [ 'key' ] ;
$varinhoud = $getvar [ 'value' ] ;
echo "$varnaam =$varinhoud &" ; }
echo '<input type="text" name="username">' ; echo '<input type="password" name="wachtwoord">' ; echo '<input type="submit" value="verzenden" name="verzonden">' ; echo '<p>Nog niet geregistreerd? <a href="aanmeldformulier.php">[registreer hier]</a><br>' ; }
echo $_SESSION [ 'username' ] ; ?>
mysql_close($db);
?>
ik heb eens gekeken:
de md5 van iets wat je invoert bij het aanmeldformulier:
<?php
function GeneratePassword() {
$password = '';
$password .= substr("bcdfghjkmnpqrstvwxz",mt_rand(0,18),1);
$password .= substr("aeuy",mt_rand(0,3),1);
$password .= substr("bcdfghjkmnpqrstvwxz",mt_rand(0,18),1);
$password .= substr("!#*&",mt_rand(0,4),1);
$password .= substr("bcdfghjkmnpqrstvwxz",mt_rand(0,18),1);
$password .= substr("aeuy",mt_rand(0,3),1);
$password .= substr("bcdfghjkmnpqrstvwxz",mt_rand(0,18),1);
$password .= substr("23456789",mt_rand(0,7),1);
return($password);
}
function valid_name ($str) {
return (ereg ('^[A-Za-z. -]+$', $str));
}
function valid_tussenvoegsel ($str) {
return (ereg ('^[A-Za-z ]*$', $str));
}
function valid_voorletters ($str) {
return (ereg ('^[A-Z.]+$', $str));
}
function valid_achternaam ($str) {
return (ereg ('^[A-Za-z -]+$', $str));
}
$naam = ucfirst($naam);
$verzendbutton = $_POST["verzendbutton"];
$voorletters = $_POST["voorletters"];
$tussenvoegsel = $_POST["tussenvoegsel"];
$achternaam = $_POST["achternaam"];
$mailadres = $_POST["mailadres"];
if (isset($_POST["url"])) {
$url = $_POST["url"];
}
if ($verzendbutton != "verzenden" || !valid_voorletters($voorletters) || !valid_tussenvoegsel($tussenvoegsel) || !valid_achternaam($achternaam)) {
echo "<form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">";
if (!$url) {
$url = getenv("HTTP_REFERER");
}
echo '<input type="hidden" name="url" value=' . $url . '>';
if ($verzendbutton && !valid_voorletters($voorletters)) {
echo '<font color="#ff0000">Vul uw voorletters correct in!</font>';
}
?>
Voorletters: <input type="text" name="voorletters" value="<?php echo $voorletters ?>"><br>
<?php
if ($verzendbutton && !valid_tussenvoegsel($tussenvoegsel)) {
echo '<font color="#ff0000">Vul uw tussenvoegsel correct in!</font>';
}
?>
Tussenvoegsel: <input type="text" name="tussenvoegsel" value="<?php echo $tussenvoegsel ?>"><br>
<?php
if ($verzendbutton && !valid_achternaam($achternaam)) {
echo '<font color="#ff0000">Vul uw achternaam correct in!</font>';
}
?>
Achternaam: <input type="text" name="achternaam" value="<?php echo $achternaam ?>"><br>
Email: <input type="text" name="mailadres" value="<?php echo $mailadres ?>"><br>
<input type="submit" value="verzenden" name="verzendbutton">
</form>
<?php
}
else {
$db = mysql_connect("---", "---", "---") or die("Helaas, kan niet verbinden met de database");
mysql_select_db("---", $db);
$password = GeneratePassword();
$passwordmd5 = md5($password);
$voorl = strtolower(ereg_replace("\.", "", $voorletters));
$achtern = strtolower(ereg_replace(" ", "", $achternaam));
$username = substr($voorl.$achtern, 0, 15);
$sql = "INSERT INTO Klant (voorletters, tussenvoegsel, achternaam, email_prive, username, password) VALUES ('$voorletters', '$tussenvoegsel', '$achternaam', '$mailadres', '$username', '$passwordmd5')";
$result = mysql_query($sql);
if ($result) {
$boodschap = 'De gebruiker ' . $voorletters . ' ' . $tussenvoegsel . ' ' . $achternaam . ' heeft zich geregistreerd! Stuur een email naar ' . $mailadres . ' met zijn inloggegevens als u wilt dat hij kan inloggen!';
$boodschap .= 'Zijn gebruikersnaam is: ' . $username . '.';
$boodschap .= 'Zijn wachtwoord is: ' . $password . '.';
$ok = mail('camil-226@hotmail.com', "nieuwe gebruiker op knome.nl/mail", $boodschap, "From: admin@knome.nl/mail");
if (!$ok) {
echo 'Uw aanvraag kon niet worden verstuurd. <a href="' . $url . '">Probeer het nog een keer</a> of stuur een email naar: <a href="mailto: camil-226@hotmail.com">camil-226@hotmail.com</a>';
}
else {
echo 'Uw aanvraag is verstuurd naar de administratie! Hij wordt zo spoedig mogelijk behandelt.';
}
}
else {
echo 'U mag maar een account hebben!';
}
mysql_close($db);
}
?>
<?php
function GeneratePassword( ) {
$password = '' ;
return ( $password ) ;
}
function valid_name ( $str ) {
return ( ereg ( '^[A-Za-z. -]+$' , $str ) ) ; }
function valid_tussenvoegsel ( $str ) {
return ( ereg ( '^[A-Za-z ]*$' , $str ) ) ; }
function valid_voorletters ( $str ) {
return ( ereg ( '^[A-Z.]+$' , $str ) ) ; }
function valid_achternaam ( $str ) {
return ( ereg ( '^[A-Za-z -]+$' , $str ) ) ; }
$verzendbutton = $_POST [ "verzendbutton" ] ;
$voorletters = $_POST [ "voorletters" ] ;
$tussenvoegsel = $_POST [ "tussenvoegsel" ] ;
$achternaam = $_POST [ "achternaam" ] ;
$mailadres = $_POST [ "mailadres" ] ;
if ( isset ( $_POST [ "url" ] ) ) { $url = $_POST [ "url" ] ;
}
if ( $verzendbutton != "verzenden" || ! valid_voorletters( $voorletters ) || ! valid_tussenvoegsel( $tussenvoegsel ) || ! valid_achternaam( $achternaam ) ) {
echo "<form action=\" " . $_SERVER [ "PHP_SELF" ] . "\" method=\" post\" >" ; if ( ! $url ) {
$url = getenv ( "HTTP_REFERER" ) ; }
echo '<input type="hidden" name="url" value=' . $url . '>' ; if ( $verzendbutton && ! valid_voorletters( $voorletters ) ) {
echo '<font color="#ff0000">Vul uw voorletters correct in!</font>' ; }
?>
Voorletters: <input type="text" name="voorletters" value="
<?php echo $voorletters ?> "><br>
<?php
if ( $verzendbutton && ! valid_tussenvoegsel( $tussenvoegsel ) ) {
echo '<font color="#ff0000">Vul uw tussenvoegsel correct in!</font>' ; }
?>
Tussenvoegsel: <input type="text" name="tussenvoegsel" value="
<?php echo $tussenvoegsel ?> "><br>
<?php
if ( $verzendbutton && ! valid_achternaam( $achternaam ) ) {
echo '<font color="#ff0000">Vul uw achternaam correct in!</font>' ; }
?>
Achternaam: <input type="text" name="achternaam" value="
<?php echo $achternaam ?> "><br>
Email: <input type="text" name="mailadres" value="
<?php echo $mailadres ?> "><br>
<input type="submit" value="verzenden" name="verzendbutton">
</form>
<?php
}
else {
$db = mysql_connect ( "---" , "---" , "---" ) or
die ( "Helaas, kan niet verbinden met de database" ) ;
$password = GeneratePassword( ) ;
$passwordmd5 = md5 ( $password ) ; $username = substr ( $voorl . $achtern , 0 , 15 ) ;
$sql = "INSERT INTO Klant (voorletters, tussenvoegsel, achternaam, email_prive, username, password) VALUES ('$voorletters ', '$tussenvoegsel ', '$achternaam ', '$mailadres ', '$username ', '$passwordmd5 ')" ;
if ( $result ) {
$boodschap = 'De gebruiker ' . $voorletters . ' ' . $tussenvoegsel . ' ' . $achternaam . ' heeft zich geregistreerd! Stuur een email naar ' . $mailadres . ' met zijn inloggegevens als u wilt dat hij kan inloggen!' ;
$boodschap .= 'Zijn gebruikersnaam is: ' . $username . '.' ;
$boodschap .= 'Zijn wachtwoord is: ' . $password . '.' ;
$ok = mail ( 'camil-226@hotmail.com' , "nieuwe gebruiker op knome.nl/mail" , $boodschap , "From: admin@knome.nl/mail" ) ; if ( ! $ok ) {
echo 'Uw aanvraag kon niet worden verstuurd. <a href="' . $url . '">Probeer het nog een keer</a> of stuur een email naar: <a href="mailto: camil-226@hotmail.com">camil-226@hotmail.com</a>' ; }
else {
echo 'Uw aanvraag is verstuurd naar de administratie! Hij wordt zo spoedig mogelijk behandelt.' ; }
}
else {
echo 'U mag maar een account hebben!' ; }
}
?>
verandert van de md5 van wat je per email krijgt
ArieMedia - 01/10/2009 16:44
PHP ver gevorderde
kaspar schreef:
dat heb ik dus nu aangepast...
username (normaal wachtwoord)
wachtwoord per email in md5
wachtwoord in db in md5
bgritter (tat#naz3)
5564b73aea1b93b0660a32ee988d2144
398362a0ca2bf26a9749b36cb
cstaps (ruz*haj7)
a0725248b1499abd00507d08fc79a354
a0725248b1499abd00507d08f
jgritter (zyp&faz5)
13c4b09a423a0b35421ac98d378c817c
13c4b09a423a0b35421ac98d3
ttest (zypkym4)
f31423fb5988d1fc5e10831f5d1d0c2b
f31423fb5988d1fc5e10831f5
ligt dat eraan dat bepaalde tekens niet in md5 kunnen ofzo??
ik heb nu alles qua puntkommas en al het saaie werk gecontroleerd, in de sql van alles aangepast totdat het helemáál niet meer klopte, info gezocht over md5, enz, enz enz.Â
Alle characters kunnen ge MD5't worden. Maar als ik denk dat je bij e-mail nog iets anders toevoegt in MD5 aangezien de eerste reeks gelijk is.
kaspar - 01/10/2009 16:54
Nieuw lid
ja behalve bij de gebruiker bgritter dat is dan weer vreemd
ArieMedia - 01/10/2009 16:58
PHP ver gevorderde
kaspar schreef:
ja behalve bij de gebruiker bgritter dat is dan weer vreemd
Voer het volgende script eens uit:
<?php
$aGebruikers = array('bgritter' => 'tat#naz3', 'cstaps' => 'ruz*haj7');
// zelf even andere gebruikers toevoegen naam => wachtwoord
foreach($aGebruikers as $sNaam => $sPass) {
$sPass = md5($sPass);
mysql_query('UPDATE gebruikers SET wachtwoord = "'.$sPass.'" WHERE naam = "'.$sNaam.'"';
}
?>
<?php
$aGebruikers = array ( 'bgritter' => 'tat#naz3' , 'cstaps' => 'ruz*haj7' ) ; // zelf even andere gebruikers toevoegen naam => wachtwoord
foreach ( $aGebruikers as $sNaam => $sPass ) {
mysql_query ( 'UPDATE gebruikers SET wachtwoord = "' . $sPass . '" WHERE naam = "' . $sNaam . '"' ; }
?>
gebruikers is de tabelnaam van je login, wachtwoord is het wachtwoord veld. Dit scriptje update je wachtwoorden. Probeer er daarna mee in te loggen..
Ga ik nu naar huis toe ;)
Gesponsorde links
Dit onderwerp is gesloten .