Ik ben nu al even aan klooien om MD5 goed werkend te krijgen in mijn registratie formulier maar het lukt mij op 1 of andere manier niet. Ik heb al verschillende dingen geprobeerd.

Als ik bij de INSERT query van $ww het volgende maak md5($ww) dan komt het wachtwoord met md5 encryptie in de database te staan. Maar ik kan dan alleen maar getallen invoeren geen letter of tekens dan werkt de query niet.


<?php

if (isset($_POST["reg"])){
    $vnaam=$_POST["voornaam"];
    $anaam=$_POST["achternaam"];
    $email=$_POST["emailadres"];
    $ww=$_POST["wachtwoord"];
    $ww2=$_POST["cwachtwoord"];
    
    $validmail = preg_match('/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/', $email);
    $query = mysql_query("SELECT emailadres FROM members WHERE emailadres = '".mysql_real_escape_string($email)."'");
    $row = mysql_fetch_assoc($query);
    $zoekemail = $row['emailadres'];
    unset ($row, $query);

    

    if ($email == "" || $ww == ""){
    echo"Vul alle verplichte velden in";
    }
    elseif(!$validmail){
        echo"Ongeldig emailadres";
    }
    elseif(strcmp($ww, $ww2)!= 0 ){
        echo "Wachtwoord komt niet overeen";
    }
    elseif($email == $zoekemail){
        echo"Emailadres is al in gebruik";
    }
    else{
        $sql = mysql_query("INSERT INTO members (voornaam, achternaam, emailadres, wachtwoord, cwachtwoord)VALUES ('$vnaam', '$anaam', '$email', '$ww', '$ww2')") or die ("INSERT query werkt niet");
        header ("Refresh: 5; url=index.php");
	echo "U bent succesvol geregistreerd";
	exit;
    }
}
?>
</td></tr>
</table>
vergeet niet de rest van je script waar je $vnaam $anaam etc hebt staan dan ook te veranderen naar $_POST['voornaam'] $_POST['achternaam'] etc
Marco M op 21/01/2011 20:30:03


<?php
    $validmail = preg_match('/^[^@]+@[a-zA-Z0-9._-]+\.[a-zA-Z]+$/', $email);
?>



Weet je wat er nu in $validmail staat?

Return Values

preg_match() returns the number of times pattern matches. That will be either 0 times (no match) or 1 time because preg_match() will stop searching after the first match. preg_match_all() on the contrary will continue until it reaches the end of subject. preg_match() returns FALSE if an error occurred.
Pim - op 21/01/2011 21:03:28

Denk eraan dat je md5 ook in raw binair op kan slaan in MySQL en daarmee wat geheugen kan besparen. md5($string, true);

Ik begrijp niet helemaal wat je hiermee bedoelt, kun je mij misschien een uitleg geven hierover?



[size=xsmall]Toevoeging op 21/01/2011 22:35:07:[/size]

Thomas van den Bulk op 21/01/2011 21:06:14

vergeet niet de rest van je script waar je $vnaam $anaam etc hebt staan dan ook te veranderen naar $_POST['voornaam'] $_POST['achternaam'] etc


[code]
$sql = mysql_query("INSERT INTO members (voornaam, achternaam, emailadres, wachtwoord)VALUES ('".$_POST['voornaam'].", ".$_POST['achternaam'].", ".$_POST['emailadres'].", ".$_POST['wachtwoord']."')");
[/code/
Ik heb het gedaan bij de query, maar daar wil het niet lukken. Ik ga er vanuit dat ik iets fout doe... ;)
Je mist enkele quotes om de data heen en je mist de beveiliging van mysql_real_escape_string() tegen sql-injection.
Oftewel, mijn allereerste post is nog steeds van toepassing.
- SanThe - op 21/01/2011 22:39:22

Je mist enkele quotes om de data heen en je mist de beveiliging van mysql_real_escape_string() tegen sql-injection.


Ik heb nou zo:

('".mysql_real_escape($_POST['voornaam'])."', '".mysql_real_escape($_POST['achternaam'])."', '".mysql_real_escape($_POST['emailadres'])."', '".mysql_real_escape($_POST['wachtwoord'])."')")

Maar dan krijg ik de volgende melding:
Call to undefined function mysql_real_escape() in
Je leest ook niet goed.
Lezen.
Ik heb ook gelezen alleen dan begrijp ik niet precies hoe je het bedoelt.
Marco M op 21/01/2011 22:52:31

Ik heb ook gelezen alleen dan begrijp ik niet precies hoe je het bedoelt.


Je hebt NIET goed gelezen. Dit: mysql_real_escape() was NIET mijn antwoord.

Reageren