login  Naam:   Wachtwoord: 
Registreer je!
 Forum

geen fouten

Offline Ultimatum - 11/07/2006 09:16
Avatar van UltimatumPHP expert als ik onderstaand script alles leeg laat, krijg ik fouten te zien, maar zodra ik alles invul staat alleen de tekst nog die laat weten dat er een fout is maar de fout zelf word niet weergegeven 

verder heb ik ook op regel 68 aangeven dat als de velden password EN cpassword leeg zijn dat dan de error komt, maar al laat ik 1 veld leeg dan krijg ik alsnog de fout, hoe komt dit 

http://plaatscode.be/1243/

10 antwoorden

Gesponsorde links
Offline Thomas - 11/07/2006 10:11
Avatar van Thomas Moderator Die controle van password en cpassword kan wat simpeler:

- controleer van wachtwoord #1 of deze langer is dan 8 karakters (je hebt dan ook geen empty()-controle nodig of wat dan ook). Zorg wel dat je password-velden het maxlength-attribuut hebben, om zo een maximum lengte af te dwingen. Misschien is het een idee om het ge-trim()de wachtwoord te controleren, een wachtwoord bestaande uit enkel spaties / tabs is namelijk niet zo sterk .
- controleer vervolgens of wachtwoord #1 en wachtwoord #2 overeen komen. Als wachtwoord #1 voldeed aan alle bovenstaande criteria, en wachtwoord #2 hetzelfde is als wachtwoord #1, dan voldoet wachtwoord #2 ook aan deze criteria .
Offline Ultimatum - 11/07/2006 10:24
Avatar van Ultimatum PHP expert maar hoe kijk ik of er spaties of tabs in zetten dan.. moet dat met een expressie??
Offline Dark_Paul - 11/07/2006 10:28 (laatste wijziging 11/07/2006 10:30)
Avatar van Dark_Paul PHP ver gevorderde op regel 63 zag ik ook iets wat volgens mij niet klopt.
  1. if(isset($_POST['password']) && isset($_POST['password']) && strlen($_POST['password']) < 8 && strlen($_POST['cpassword']) < 8)

moet dat niet dit zijn: -->
  1. if(isset($_POST['password']) && isset($_POST['cpassword']) && strlen($_POST['password']) < 8 && strlen($_POST['cpassword']) < 8)
anders check je 2x of 'password' bestaat, en vervolgens of 'cpassword' wel is ingevuld.
edit: nog een klein foutje: You username can no longer then 20 characters -> Your username can't be longer then 20 characters?
Offline xSc - 11/07/2006 10:30
Avatar van xSc Onbekend Simpel: gebruik bij de controle de functie trim()

if (trim($_POST['sGebruikersnaam']) == '')
Offline Dark_Paul - 11/07/2006 10:42
Avatar van Dark_Paul PHP ver gevorderde het makkelijkste is naast je invoervelden zetten dat een wachtwoord géén spaties, tabs, etc. mag bevatten. dan nog een kleine controle:
  1. if (isset($_POST['password']) && strlen($_POST['password']) != strlen(trim($_POST['password']))) {
  2. $errors[] = "You've used spaces/tabs/newlines in your password."
  3. }
Offline Thomas - 11/07/2006 10:44 (laatste wijziging 11/07/2006 10:45)
Avatar van Thomas Moderator trim() haalt alleen spaties/tabs/newlines/carriage returns aan het begin en aan het einde van een string weg, maar niet in een string.

Als je een wachtwoord enkel uit alfanumerieke karakters wilt laten bestaan, dan controleer je hier op met een reguliere expressie:
  1. <?php
  2. if(!preg_match("/^[a-z0-9]+$/i", $pass))
  3. {
  4. echo "wachtwoord bestaat niet enkel uit alfanumerieke karakters.";
  5. }
  6. ?>
Offline Ultimatum - 11/07/2006 10:56 (laatste wijziging 11/07/2006 12:04)
Avatar van Ultimatum PHP expert @dark_paul heb ik idd over het hoofd gezien 

maar als ik alles invul krijg ik nog steeds geenfouten te zien, ehb alles nu aangepast enzo, maar weet iemand wat ik fout doe
het komt alleen alles is alles gewoon invul 

http://plaatscode.be/1248/
Offline xSc - 11/07/2006 12:17
Avatar van xSc Onbekend @FangorN, dat weet ik 

Maar als je mijn vergelijking doet, weet je in ieder geval wel dat het wachtwoord niet alleen uit dergelijke tekens bestaat. 
Offline Thomas - 11/07/2006 12:39
Avatar van Thomas Moderator regel 56:
  1. if(strlen($_POST['password']) < 8 && !preg_match("/^[a-z0-9]+$/i", $_POST['password']) && strlen($_POST['password']) > 20)


&& moet || worden, lijkt me. De foutmelding wordt dan "wachtwoord te lang, te kort of bestaat niet uit enkel letters of cijfers".

regel 76:
  1. if(isset($errors))


$errors is geset, maar is leeg .

Gebruik:
  1. if(sizeof($errors) > 0)
Offline Ultimatum - 11/07/2006 12:50
Avatar van Ultimatum PHP expert danke het werkt alhoewel ik het heel vreemd vind want normaal werkt isset wel altijd :p
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.249s