login  Naam:   Wachtwoord: 
Registreer je!
 Forum

script verderschrijven

Offline Speedy - 27/08/2005 17:11
Avatar van SpeedyPHP interesse
  1. <?php
  2. include("inc_connect_mysql.php");
  3. if (!empty($_POST)){
  4.  
  5. $email = $_POST["email"];
  6. $wachtwoord = $_POST["wachtwoord"];
  7. $query = "SELECT * from users WHERE email='$email';";
  8. $result = mysql_query($db, $query) or die ("FOUT: " .mysql_last_error());
  9. if (mysql_num_rows($result) > 0) {
  10.  
  11. $tekst = "Dit e-mailadres
  12.  
  13. ?>


Kan iemand dit script verderschrijven? 'k Ben eraan begonnen en zit vast. Ben nog niet zo goed in php. De bedoeling is een eenvoudige registratiepagina. Het formulier heb ik al (html kan ik wel een beetje beter).

Alvast bedankt.

10 antwoorden

Gesponsorde links
Offline brechtjeu - 27/08/2005 18:12
Avatar van brechtjeu Onbekend hey,
waar moet de gebruiker wel zijn gegevens invullen 

brechtjeu
Offline Speedy - 28/08/2005 11:32 (laatste wijziging 28/08/2005 11:32)
Avatar van Speedy PHP interesse
  1. <?php
  2. include("inc_connect_mysql.php");
  3. if (!empty($_POST)){
  4.  
  5. $email = $_POST["email"];
  6. $wachtwoord = $_POST["wachtwoord"];
  7. $query = "SELECT * from users WHERE email='$email';";
  8. $result = mysql_query($db, $query) or die ("FOUT: " .mysql_last_error());
  9. if (mysql_num_rows($result) > 0) {
  10.  
  11. $tekst = "Dit e-mailadres....."; //Wat moet hier komen????
  12.  
  13. <p>Registreren<br>
  14. Welkom, u kunt zicht hier registreren. Als inlognaam wordt uw e-mailadres gebruikt.</p>
  15. <form name="form" method="post" action="<?php echo($_SERVER["PHP_SELF"]);?>">
  16. <table>
  17. <tr>
  18. <td>E-mailadres:</td>
  19. <td><input name="email" type="text" size="20" maxlenght="40"></td>
  20. </tr>
  21. <tr>
  22. <td>Wachtwoord:</td>
  23. <td><input name="wachtwoord" type="password" size="20" maxlenght="8"> (maximaal 8 tekens)</td>
  24. </tr>
  25. <tr>
  26. <td><input type="submit" name="Submit" value="Registreren"></td>
  27. <td><input type="reset" name="reset" value="Leegmaken"></td>
  28. </tr>
  29. </table>
  30. </form>


Dit heb ik, maar ik kan bij dat gat niet verderdoen ...
Offline brechtjeu - 28/08/2005 11:48 (laatste wijziging 28/08/2005 11:49)
Avatar van brechtjeu Onbekend wrm doe je niet zo:

  1. if (empty($_POST['email']))
  2. $error = "Je moet je emailadres als loginnaam invullen";
  3. elseif (empty($_POST['wachtwoord']))
  4. $error = "Je moet een wachtwoord invullen";
  5.  
  6. if (!$error)
  7. {
  8. $query ="INSERT INTO users (email, wachtwoord)
  9. VALUES ('$email', '$wachtwoord)";
  10. mysql_query($query) or die (mysql_error());
Offline Ibrahim - 28/08/2005 11:55 (laatste wijziging 28/08/2005 12:29)
Avatar van Ibrahim PHP expert brechtjeu, je leert hem foute dingen:

- Houd variables buiten quotes
-sluit de if dan ook als je hem opent
hierzo:

  1. <?php
  2. include("inc_connect_mysql.php");
  3. if (isset($_POST['Submit']))
  4. {
  5.  
  6. $_POST['email'] = htmlspecialchars($_POST["email"]);
  7.  
  8. $query = "SELECT * from users WHERE email='".$email."';";
  9. $result = mysql_query($db, $query) or die ("FOUT: " .mysql_last_error());
  10.  
  11. if (mysql_num_rows($result) > 0)
  12. {
  13.  
  14. echo "Dit e-mailadres is al in gebruik"; //Wat moet hier komen????
  15. }
  16. else
  17. {
  18. mysql_query("INSERT INTO tabelnaamvanleden (email, wachtwoord) VALUES ('".addslashes($_POST['email'])."', '".md5($_POST['wachtwoord'])."')") or die(mysql_error());
  19. }
  20. }
  21. else
  22. {
  23. ?>
  24. <p>Registreren<br>
  25. Welkom, u kunt zicht hier registreren. Als inlognaam wordt uw e-mailadres gebruikt.</p>
  26. <form name="form" method="post" action="<?php echo($_SERVER["PHP_SELF"]);?>">
  27. <table>
  28. <tr>
  29. <td>E-mailadres:</td>
  30. <td><input name="email" type="text" size="20" maxlenght="40"></td>
  31. </tr>
  32. <tr>
  33. <td>Wachtwoord:</td>
  34. <td><input name="wachtwoord" type="password" size="20" maxlenght="8"> (maximaal 8 tekens)</td>
  35. </tr>
  36. <tr>
  37. <td><input type="submit" name="Submit" value="Registreren"></td>
  38. <td><input type="reset" name="reset" value="Leegmaken"></td>
  39. </tr>
  40. </table>
  41. </form>
  42. <?php
  43. }
  44. ?>
Offline brechtjeu - 28/08/2005 12:03
Avatar van brechtjeu Onbekend ahja, sorry, foutje, vergeten 
Offline Speedy - 28/08/2005 12:03
Avatar van Speedy PHP interesse bedankt siliecom14!!!!
Offline nemesiskoen - 28/08/2005 12:07 (laatste wijziging 28/08/2005 12:08)
Avatar van nemesiskoen Gouden medaille

PHP expert
siliecom14, je leert hem foute dingen:
- gebruik addslashes
- mss ook htmlspecialchars voor javascript uit te schakelen
- variabelen rechtstreeks kopiëren is onnodig

  1. mysql_query("INSERT INTO tabelnaamvanleden (email, wachtwoord) VALUES ('".addslashes(htmlspecialchars($_POST['email']))."', '".md5($_POST['wachtwoord'])."')") or die(mysql_error());
Offline Ibrahim - 28/08/2005 12:10
Avatar van Ibrahim PHP expert @nemesiskoen

ik heb gewoon zijn script gepakt en gewoon dingen toegevoegd. Ik ben veiligheid vergeten srry ik zal het erbij zetten 
Offline nemesiskoen - 28/08/2005 12:25
Avatar van nemesiskoen Gouden medaille

PHP expert
1 veiligheid is het belangrijkste
2 het toepassen van veiligheidsmaatregelen en het begrijpen ervan is een groot verschil

Jij past veiligheid random toe, wat zal leiden tot het gebruiken van veiligheidsfuncties waar het niet nodig is en het vergeten ervan waar het wel nodig is.
Mag ik vrager waarom je slashes rond een hash gooit van een passwoord waar je de html tekens hebt omgezet naar ASCII code?

Het omzetten van de html tekens is nutteloos omdat je deze toch zowiezo hashed (zet dus ook de html tekens om naar een (kleinere) hash). Een md5 hash bevat NOOIT een quote. Dus hier kan je moeilijk slashes omgooien. Waarom bevat een md5 hash NOOT een quote: omdat het een hexadecimaal GETAL is en getallen niet bestaan uit quotes.

De htmlspecialchars dienen alleen voor het beveiligen van info die later weer bedoeld is om her op te roepen en weer te geven. Wat bij een passwoord al zelden gebeurt, en dus bij een gehashed passwoord nutteloos is om er eerst htmlspecialchars rond te gooien omdat deze toch worden tenietgedaan. Alleen zal je hash er anders uit zien.
Offline Ibrahim - 28/08/2005 13:20
Avatar van Ibrahim PHP expert Sorry, dat heb ik gedaan omdat ik toen ik begon met php ergens een tutorial had gelezen over een "veilige" login maken en daar deed hij/zij addslashes om een md5. Nu weet ik beter dankzij Nemesiskoens kleine tutorial 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.465s