login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Activatie scriptje!

Offline leroyvanloon - 07/08/2010 03:18
Avatar van leroyvanloonLid Ik was bezig met een activatie scriptje te maken, maar krijg nu een fout op lijn: 36.

  1. Parse error: parse error in C:\wamp\www\gamen\activate.php on line 36


Dit is de fout code. Ik weet niet precies wat ik verkeerd heb gedaan, kan iemand mij helpen?


  1. <?php
  2. require("_mysql.php"); // verbinding met de database maken
  3. require("_settings.php"); // De website instellingen halen
  4. ?>
  5. <html>
  6. <head>
  7. <title><?php echo $sitenaam; ?></title>
  8. </head>
  9.  
  10. <body>
  11. <?php
  12. if(!isset($_POST['submit'])) {
  13. ?>
  14. <form method="POST" action="activate.php">
  15. <table border="0">
  16. <tr>
  17. <td><input type="text" size="20" name="email" value="Your email"></td>
  18. <td><input type="text" size="20" name="code" value="Your activation code"></td>
  19. <td><input type="submit" size="5" name="submit" value="Activate your account"></td>
  20. </tr>
  21. </table>
  22. </form>
  23.  
  24. <?php
  25.  
  26. } elseif(trim($_POST['email']) <> "" && trim($_POST['code']) <> "") {
  27. $email = $_POST['email'];
  28. $res = mysql_query("SELECT * FROM users WHERE email='".$email."'") or die(mysql_error());
  29. if(mysql_num_rows($res) == 0) {
  30.  
  31. if (isset($_POST['submit'])){
  32.  
  33. $level = 2;
  34.  
  35.  
  36. mysql_query("UPDATE users SET level='"$level"' WHERE email="$email) or die(mysql_error());
  37. echo "Your account is activated! ";
  38. }
  39.  
  40. ?>
  41.  
  42.  
  43. <?php } else { ?>
  44. Activation failed! Try again<br>
  45. <?php }
  46. ?>
  47.  
  48. <?php } else { ?>
  49. Selected mail + code do not excist<br>
  50. <?php } ?>
  51.  
  52. </body>
  53. </html>

13 antwoorden

Gesponsorde links
Offline DenMette - 07/08/2010 09:12
Avatar van DenMette PHP gevorderde Verander lijn 36 door mysql_query("UPDATE users SET level='"$level"' WHERE email=".$email) or die(mysql_error());

Je was het puntje na je dubbele aanhalingstekens vergeten.
Succes!
Offline Tuinstoel - 07/08/2010 10:14
Avatar van Tuinstoel PHP expert Ehm ik weet niet of je het bewust doet omdat het in dit geval wel goed gaat, maar misschien dat je ook een artikel over veiligheid door zou moeten nemen, dan duld ik met name op je 2e SQL-query. Ik weet dat er niks mis kan gaan omdat je van te voren controleert of het überhaupt wel bestaat maar toch..
Offline valles10 - 07/08/2010 10:41
Avatar van valles10 HTML interesse verander lijn 36 in:
  1. mysql_query("UPDATE users SET level ='".$level."' WHERE email ='".$email."') or die(mysql_error());

en it'll work ;)
Offline leroyvanloon - 07/08/2010 14:00 (laatste wijziging 07/08/2010 14:08)
Avatar van leroyvanloon Lid @ valles

Die kan niet werken: je opent een " maar achteraan sluit je hem niet?

Wit werkt nu wel

  1. <?php
  2.  
  3. } elseif(trim($_POST['email']) <> "" && trim($_POST['code']) <> "") {
  4. $email = $_POST['email'];
  5. $res = mysql_query("SELECT * FROM users WHERE email='".$email."'") or die(mysql_error());
  6. if(mysql_num_rows($res) == 0) {
  7.  
  8. if (isset($_POST['submit'])){
  9.  
  10. $level = 2;
  11.  
  12. mysql_query("UPDATE users SET level='".$level."' WHERE email=".$email."") or die(mysql_error());
  13. echo "Your account is activated!";
  14. }
  15.  
  16. } else { ?>
  17. Activation failed! Try again<br>
  18. <?php }
  19. ?>
  20.  
  21. <?php } else { ?>
  22. Selected mail + code do not excist<br>
  23. <?php } ?>


Nu krijg je als je bijv test@test.com invult (die voor het test account het email is) Krijg ik te zien Activation failed! Try again

En dan nog een vraagje, is het beter om een random code te laten generen of gewoon hun pw mee sturen in md5 ?

lal http://leroy.dokgaming.com/gamen/activate.php

als ik zo druk op activate your account, komt er te staan account activated en als ik mijn email invul komt dat niet te staan :O
Offline TotempaaltJ - 08/08/2010 18:03
Avatar van TotempaaltJ PHP interesse Hier:
  1. mysql_query("UPDATE users SET level='" . $level . "' WHERE email='" . $email . "'") or die(mysql_error());

Maar je code is zo lek als een mandje. Zelfs een beginnende hacker kan dit hacken. ;) Google even op SQL Injection.

md5 is niet veilig meer! Sha1 wel. 
Offline gnotrgnotr - 11/08/2010 13:34 (laatste wijziging 11/08/2010 13:38)
Avatar van gnotrgnotr Nieuw lid regel 36:
  1. mysql_query("UPDATE users SET level='".strip_tags($level)."' WHERE email='".strip_tags($email)."'") or die(mysql_error());

strip_tags() is voor beveiliging
Offline Maarten - 11/08/2010 15:13
Avatar van Maarten Erelid
TotempaaltJ schreef:
Hier:
[..code..]
md5 is niet veilig meer! Sha1 wel. 

Leren je gegevens/database/server beschermen is nog veiliger 
Offline Raze - 11/08/2010 15:44
Avatar van Raze PHP beginner
TotempaaltJ schreef:
Hier:
[..code..]
Maar je code is zo lek als een mandje. Zelfs een beginnende hacker kan dit hacken. ;) Google even op SQL Injection.

md5 is niet veilig meer! Sha1 wel. 


onzin! er bestaan idd md5 databases voor de meest voorkomende woorden, maar die bestaan voor sha1 ook. MD5 is perfect veilig. Bouw liever een scriptje in dat gebruikers verplicht letters met cijfers te mengen, dan is het (haast) niet meer te kraken.
Offline Mroseboom - 11/08/2010 15:57 (laatste wijziging 11/08/2010 15:59)
Avatar van Mroseboom Lid MD5 en sha1 zijn allebij hackbaar hoor. Alleen sha1 is iets moeilijker daarom kiezen een hoop nu voor sha1.

Marcel Roseboom, 

Sorry on-topic maar weer
Offline Raze - 11/08/2010 17:26
Avatar van Raze PHP beginner
Mroseboom schreef:
MD5 en sha1 zijn allebij hackbaar hoor. Alleen sha1 is iets moeilijker daarom kiezen een hoop nu voor sha1.

Marcel Roseboom, 

Sorry on-topic maar weer


hackbaar?? md5 en sha1 zijn niét hackbaar... jà er zijn databases waar je een md5/sha1 hash kan ingeven en dan kijkt die of er een match is, maar dat is niet hacken  

ontopic:

is strip_tags() niet een beetje out-dated? En dan nog: strip_tags() haalt er alleen de HTML-tags uit... gebruik liever mysql_real_escape_string() als je echt tegen SQL injectie wilt beveiligen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2019 Sitemasters.be - Regels - Laadtijd: 0.31s