Versio

registratie formulier valideert niet correct

Overzicht Reageren

Shana vermeiren

shana vermeiren

22/05/2011 19:39:52
Quote Anchor link
Dit is de code
wat er gebeurt is dat feedback altijd op 'alle velden invullen' blijft staan
ik denk dat ik iets over het hoofd gezien heb

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
session_start();

        $feedback = "";
        //als alle velden zijn ingevuld
        include('classes/User.php');
            if(!empty($_POST['UserName'])&& !empty($_POST['Password'])&& !empty($_POST['Confirmpassword'])&& !empty($_POST['FirstName'])
                && !
empty($_POST['LastName'])&& !empty($_POST['Email'])&& !empty($_POST['Gender'])){
                $feedback = "alle velden invullen";
            }

        else if($_POST["Password"]==$_POST["Confirmpassword"]){
                $feedback = "wachtwoorden incorrect";
                }

        else if(!preg_match("/^([a-zA-Z0-9])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/", $_POST['email'])){
                $feedback = "incorrect email adres";
                }

            else{
                try
                    {
        //nieuwe user aanmaken en naar de homepage gaan
            $oUser = new User();
            $oUser->Username = $_POST['UserName'];
            $oUser->Password = $_POST['Password'];
            $oUser->Confirmpassword = $_POST['Confirmpassword'];
            $oUser->Firstname = $_POST['FirstName'];
            $oUser->Lastname = $_POST['LastName'];
            $oUser->Email = $_POST['Email'];
            $oUser->Gender = $_POST['Gender'];
            $oUser->Save();
            header("location:home.php");
            
            
                
        }

        catch (Exception $e)
        {

            $feedback = $e->getMessage();
            header("location:registration.php");  
            
        }
        
        }

?>
 
PHP hulp

PHP hulp

25/05/2012 14:26:18
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
PHP Jasper

PHP Jasper

22/05/2011 19:51:22
Quote Anchor link
moet het niet zijn if(empty()) idpv if(!empty()) ?
 
Victor -

Victor -

22/05/2011 20:04:38
Quote Anchor link
en ook || ipv &&
 
Noppes Homeland

Noppes Homeland

22/05/2011 20:11:14
Quote Anchor link
empty verbannen uit je scripts lijkt mij een beter idee, daarvoor in de plaats kan je de gewone comparison functions gebruiken.
http://php.net/manual/en/language.operators.comparison.php

en dan hebben we ook nog:
http://www.php.net/isset
http://www.php.net/ctype
http://www.php.net/pcre

en uiteraard de string functions:
http://www.php.net/trim
http://www.php.net/strlen
enz

Na een header() dien je een exit() te plaatsen

Het is overigens ook nog zo, dat het niet header('location:bla.php') is maar:
header('Location: bla.php')
 
Shana vermeiren

shana vermeiren

22/05/2011 20:30:09
Quote Anchor link
problem solved! dankjewel allemaal!

Toevoeging op 22/05/2011 20:57:56:

hmm toch nog een gek probleem
mijn formulier wordt correct gevalideert, maar het emailadres komt niet in de databank en al de rest wel

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
session_start();

        $feedback = "";
        //als alle velden zijn ingevuld
        include('classes/User.php');
            if(empty($_POST['UserName'])|| empty($_POST['Password'])||empty($_POST['Confirmpassword'])||empty($_POST['FirstName'])
                ||
empty($_POST['LastName'])||empty($_POST['Email'])||empty($_POST['Gender'])){
                $feedback = "alle velden invullen";
            }

        else if($_POST["Password"]!=$_POST["Confirmpassword"]){
                $feedback = "wachtwoorden incorrect";
                }

        else if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)", $_POST['Email'])){
                $feedback = "incorrect email adres";
                }

            else{
                try
                    {
        //nieuwe user aanmaken en naar de homepage gaan
            $oUser = new User();
            $oUser->Username = $_POST['UserName'];
            $oUser->Password = $_POST['Password'];
            $oUser->Confirmpassword = $_POST['Confirmpassword'];
            $oUser->Firstname = $_POST['FirstName'];
            $oUser->Lastname = $_POST['LastName'];
            $oUser->Email = $_POST['Email'];
            $oUser->Gender = $_POST['Gender'];
            $oUser->Save();
            header("location:home.php");
            
            
                
        }

        catch (Exception $e)
        {

            $feedback = $e->getMessage();
            header("location:registration.php");  
            
        }
        
        }

?>
 
Danny Appeldoorn

Danny Appeldoorn

23/05/2011 08:12:02
Quote Anchor link
A) Je hebt nog steeds je header niet aangepast.. Dit moet
Code (php) 123 &lt;?phpheader(Location: registration.php);?&gt;
wezen. PHP kun je inderdaad loosly in programmeren, alleen is dit een HTTP header, die zitten dus wel aan een paar 'regeltjes' vast. Vandaar dat dit gezegd werd.

En om in te gaan op je probleem, kan dit niet weg komen van je ereg? Comment die er eens uit? En kijk dan nog eens of je hem dan wel in de database ziet verschijnen?
En allicht is er in je script User.php iets verkeerd? Dat kan ik zo niet zien, maar dit script ziet er aardig goed uit.
Dus het kan zijn dat de problemen uit User.php komen nu.
 
- SanThe -

- SanThe -

23/05/2011 08:24:12
Quote Anchor link
De functie ereg() is antiek en moet je niet meer gebruiken. Gebruik preg_match().
 



Overzicht Reageren

Get Adobe Flash player