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.
Offline leroyvanloon - 12/08/2010 03:33
Avatar van leroyvanloon Lid Kijk, ik wil eerst dat het werkt, daarna ga ik pas beveiligen. iets beveiligen wat nog niet werk heeft niet zoveel nut denk ik. Daarom wil ik het eerst werkend krijgen.
Offline TotempaaltJ - 12/08/2010 14:49
Avatar van TotempaaltJ PHP interesse Da's de foute gedachte. Je moet beveiligd beginnen: het is een stuk irritanter om dat later allemaal te implementeren.

Ook is MD5 toch echt niet veilig meer:
Wikipedia schreef:
The security of the MD5 hash function is severely compromised.

Het is niet volledig gehackt, oké, maar het is toch afgeraden om te gebruiken. Ook is overigens SHA-1 niet meer goed voor als je alles superbeveiligd wilt. Nog steeds niet gehackt. SHA-2 is aan te raden 
Offline Martijn - 12/08/2010 14:51
Avatar van Martijn Crew PHP md5 is prima voor kleine gebruikers, en sha1() is ook meer dan voldoende Maar betreft de beveiliging heet TotempaaltJ wel gelijk, vanaf het begin af aan.

Dat is namelijk zodat je niet daarna álles hoeft na te lopen en laks wordt en dingen gaat afraffelen. En op het moment ben je met iets bezig, dus je snapt hoe alles loopt en wat mogelijk fout kan gaan, achteraf terugkijken is een stuk moeilijker en zal daarom meer tijd kosten
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.26s