POST[..] md5 problemen
Ik heb een probleempje met een scriptje voor het aanmaken van gebruikers binnen een website. Deze website heeft maar 2 soorten bezoekers: ongeregistreerd (échte bezoekers dus) en de beheerders van de site.
Wanneer een huidige beheerder een nieuwe wil toevoegen heeft die daar het volgende script voor tot zijn beschikking:
(dit script wordt in een andere pagine ge-include)
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
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
<?
echo "<h2>Voeg een gebruiker toe</h2>";
if($_GET['err'] ==1){
echo "<font color='#666666'>Gebruiker is toegevoegd.</font>";
} elseif($_GET['err'] ==2) {
echo "<font color='#ff0000'>Er is iets fout gegaan, gebruiker is niet toegevoegd</font>";
} elseif($_GET['err'] ==3) {
echo "<font color='#ff0000'>Het plaatje heeft de verkeerde extensie</font>";
} elseif($_GET['err'] ==4) {
echo "<font color='#ff0000'>Niet alles is ingevuld.</font>";
} else {
}
echo "<br /><br /><form method=\"post\" enctype=\"multipart/form-data\" action=\"user/addusercontrole.php\">";
echo "<input type=\"hidden\" name=\"show\" value=\"add\">";
echo "Selecteer een foto:<br /><input name=\"userfile\" type=\"file\"><br />";
echo "<small>Het liefst 180 bij 240 pixels (rechtop small size flickr)</small><br /><br />";
echo "Volledige Naam:<br /><input type=\"text\" size=\"30\" name=\"naam\" value=\"" . stripslashes(htmlentities($_POST['naam'])) . "\"><br>";
echo "Email adres:<br /><input type=\"text\" size=\"30\" name=\"email\" value=\"" . stripslashes(htmlentities($_POST['email'])) . "\"><br>";
echo "Gebruikersnaam + wachtwoord:<br /><input type=\"text\" size=\"30\" name=\"gnaam\" value=\"" . stripslashes(htmlentities($_POST['email'])) . "\"> <input type=\"password\" size=\"30\" name=\"wachtwoord\" value=\"" . stripslashes(htmlentities($_POST['password'])) . "\"><br /><br />";
echo "Iets over de gebruiker<br /><textarea name=\"msg\" rows=\"10\" cols=\"55\">" . stripslashes(htmlentities($_POST['msg'])) . "</textarea><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"Voeg gebruiker toe\">";
echo "</form>";
?>
echo "<h2>Voeg een gebruiker toe</h2>";
if($_GET['err'] ==1){
echo "<font color='#666666'>Gebruiker is toegevoegd.</font>";
} elseif($_GET['err'] ==2) {
echo "<font color='#ff0000'>Er is iets fout gegaan, gebruiker is niet toegevoegd</font>";
} elseif($_GET['err'] ==3) {
echo "<font color='#ff0000'>Het plaatje heeft de verkeerde extensie</font>";
} elseif($_GET['err'] ==4) {
echo "<font color='#ff0000'>Niet alles is ingevuld.</font>";
} else {
}
echo "<br /><br /><form method=\"post\" enctype=\"multipart/form-data\" action=\"user/addusercontrole.php\">";
echo "<input type=\"hidden\" name=\"show\" value=\"add\">";
echo "Selecteer een foto:<br /><input name=\"userfile\" type=\"file\"><br />";
echo "<small>Het liefst 180 bij 240 pixels (rechtop small size flickr)</small><br /><br />";
echo "Volledige Naam:<br /><input type=\"text\" size=\"30\" name=\"naam\" value=\"" . stripslashes(htmlentities($_POST['naam'])) . "\"><br>";
echo "Email adres:<br /><input type=\"text\" size=\"30\" name=\"email\" value=\"" . stripslashes(htmlentities($_POST['email'])) . "\"><br>";
echo "Gebruikersnaam + wachtwoord:<br /><input type=\"text\" size=\"30\" name=\"gnaam\" value=\"" . stripslashes(htmlentities($_POST['email'])) . "\"> <input type=\"password\" size=\"30\" name=\"wachtwoord\" value=\"" . stripslashes(htmlentities($_POST['password'])) . "\"><br /><br />";
echo "Iets over de gebruiker<br /><textarea name=\"msg\" rows=\"10\" cols=\"55\">" . stripslashes(htmlentities($_POST['msg'])) . "</textarea><br>";
echo "<input type=\"submit\" name=\"submit\" value=\"Voeg gebruiker toe\">";
echo "</form>";
?>
Ik heb echter moeite om het wachtwoord dat ingevuld wordt te encrypten naar md5. Heeft iemand hier een oplossing voor voor me?
Bij voorbaat dank!
Gewijzigd op 01/01/1970 01:00:00 door Frank
$_POST md5['password']
echo md5($_POST['password']);
. stripslashes(htmlentities ($_POST['password'])
Bij mij geeft php namelijk de volgende error wanneer ik dit gebruik:
. stripslashes(htmlentities md5($_POST['password'])
Parse error: syntax error, unexpected T_STRING in /mounted-storage/home66b/sub001/sc39728-XPIX/www/Vanadis/admin/user/userform.php on line 22
htmlentities() (let op de haakjes) heb je niet nodig, er valt niks te htmlentiteiten aan een md5-string. Kortom, echo md5($_POST['password']); is meer dan genoeg, de rest is overbodige rommel die je alleen maar in de problemen brengt.
Ik ben er net even nog aan gaan zitten, het werd gisteren net iets te laat om me er nog op te concentreren, maar als ik overal de stripslashes() en de htmlentities() weghaal en bij het wachtwoord er dus md5($_POST['password']); van maak, krijg ik een al ingevulde md5 hash in de form te zien.
screenshot:
http://www.blindrights.com/md5hash.jpg
Waar zou dit aan kunnen liggen?
Bij voorbaat dank! En ik weet dat de meeste vragen nogal noobish zijn maar je moet ergens beginnen toch?
Je hebt al voordat je het wachtwoord echo't md5() eroverheen gehaald.
Ik zou je heel graag willen snappen, maar ik volg je toch nog niet helemaal, hoe bedoel je precies?
Voordat je het wachtwoord in het input veld zet, laat je er al md5() overheen gaan. Dat wil zeggen dat het wachtwoord al wordt omgezet in md5-taal voordat de gebruiker hem krijgt te zien. Dat moet je even veranderen.
echo md5($_POST['password']);
leesbaar als
echo de md5 hash van $_POST['password']
ok, dat zal ik dan moeten veranderen, dat kan ik wel uitzoeken hoe dat moet, maar hoe kan het zijn dat zodra ik het form open en ik nog niets heb ingetypt er al automatisch een md5 hash staat?
een md5hash van een lege string.. is nog steeds een hash ;)
Ik ben nu aan het veranderen =)
<input type="password" size="30" name="wachtwoord" value="">
Hij post het op deze manier heel netjes in de database, goede tabel etc. etc....
maar niet als md5 :S Ben ik nou echt zo stom? ik snap het echt niet meer....
In ieder geval bedankt iedereen! Heb hier wel weer wat van geleerd =)
Groeten,
Frank
edit: ik bedoel, als je gebruikers nu hun wachtwooord willen veranderen, naar iets wat ze goed kunnen onthouden, dan zouden ze dan eigenlijk eerst zelf in vorm van md5 moeten invullen om dan bij de login die goed onthoudbare wachtwoord te kunnen gebruiken.
Want zo gaat het toch bij de meeste loginscripts, men vergelijkt de md5 gehashte ingevulde wachtwoord met de md5 veld in de tabel bij de overeenkomstige gebruiker
Gewijzigd op 01/01/1970 01:00:00 door Eduard
bedoel je die in het screenshot? Dat is geen echt password van m'n site....vandaar dat ik weet dat het geen kwaad kan. Daarbij, het was volgens mij niet eens de volledige hash.
Zo kunnen je gebruikers tenminste zien wat hun huidige pass is, maar ja normaal gezien hoeft dit in praktijk nooit weergeven te worden, ik neem aan dat je het eigenlijk als een test hebt geplaatst
Bumpen::
SanThe.