Php register form check

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark Bos

Mark Bos

22/06/2010 14:02:00
Quote Anchor link
Hallo.

weet niet of ik goed zit hier aangezien ik net aangemeld ben.
Maar mijn vraag gaat over een php register form het registreren etc. dat werkt gewoon, maar als iemand nu een veld is vergeten in te vullen dan komt er een fout "please fill in name" alleen daarvoor opent hij de betreffende pagina opnieuw waardoor de andere velden weer leeg zijn. Ik wil graag dat dan het veld een rode border krijgt en een text eronder met wat de fout is, en dat de andere velden ingevult blijven staan. (dat is eigenlijk het belangrijkste dat de velden ingevult blijven na een fout)

Alleen ik krijg dat niet voor elkaar, ik heb wel wat geprobeert dat werkte alleen dat resulteerde weer in een niet verstuurbaar formulier.

Hopelijk snappen jullie wat ik bedoel.

Dit is het script:

Register Form.php
-----------------
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?php
    session_start();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Login Form</title>
<link href="loginmodule.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
    if( isset($_SESSION['ERRMSG_ARR']) && is_array($_SESSION['ERRMSG_ARR']) && count($_SESSION['ERRMSG_ARR']) >0 ) {
        echo '<ul class="err">';
        foreach($_SESSION['ERRMSG_ARR'] as $msg) {
            echo '<li>',$msg,'</li>';
        }

        echo '</ul>';
        unset($_SESSION['ERRMSG_ARR']);
    }

?>

<form id="loginForm" name="loginForm" method="post" action="register-exec.php">
  <table width="300" border="0" align="center" cellpadding="2" cellspacing="0">
    <tr>
      <th>First Name </th>
      <td><input name="fname" type="text" class="textfield" id="fname" /></td>
    </tr>
    <tr>
      <th>Last Name </th>
      <td><input name="lname" type="text" class="textfield" id="lname" /></td>
    </tr>
    <tr>
      <th width="124">Login</th>
      <td width="168"><input name="login" type="text" class="textfield" id="login" /></td>
    </tr>
    <tr>
      <th>Password</th>
      <td><input name="password" type="password" class="textfield" id="password" /></td>
    </tr>
    <tr>
      <th>Confirm Password </th>
      <td><input name="cpassword" type="password" class="textfield" id="cpassword" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Register" /></td>
    </tr>
  </table>
</form>
</body>
</html>

///////////////////////////////////////

Dit is het Register Execution.php

<?php
    //Start session
    session_start();
    
    //Include database connection details
    require_once('config.php');
    
    //Array to store validation errors
    $errmsg_arr = array();
    
    //Validation error flag
    $errflag = false;
    
    //Connect to mysql server
    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
    if(!$link) {
        die('Failed to connect to server: ' . mysql_error());
    }

    
    //Select database
    $db = mysql_select_db(DB_DATABASE);
    if(!$db) {
        die("Unable to select database");
    }

    
    //Function to sanitize values received from the form. Prevents SQL injection
    function clean($str) {
        $str = @trim($str);
        if(get_magic_quotes_gpc()) {
            $str = stripslashes($str);
        }

        return mysql_real_escape_string($str);
    }

    
    //Sanitize the POST values
    $fname = clean($_POST['fname']);
    $lname = clean($_POST['lname']);
    $login = clean($_POST['login']);
    $password = clean($_POST['password']);
    $cpassword = clean($_POST['cpassword']);
    
    //Input Validations
    if($fname == '') {
        $errmsg_arr[] = 'First name missing';
        $errflag = true;
    }

    if($lname == '') {
        $errmsg_arr[] = 'Last name missing';
        $errflag = true;
    }

    if($login == '') {
        $errmsg_arr[] = 'Login ID missing';
        $errflag = true;
    }

    if($password == '') {
        $errmsg_arr[] = 'Password missing';
        $errflag = true;
    }

    if($cpassword == '') {
        $errmsg_arr[] = 'Confirm password missing';
        $errflag = true;
    }

    if( strcmp($password, $cpassword) != 0 ) {
        $errmsg_arr[] = 'Passwords do not match';
        $errflag = true;
    }

    
    //Check for duplicate login ID
    if($login != '') {
        $qry = "SELECT * FROM members WHERE login='$login'";
        $result = mysql_query($qry);
        if($result) {
            if(mysql_num_rows($result) > 0) {
                $errmsg_arr[] = 'Login ID already in use';
                $errflag = true;
            }
            @
mysql_free_result($result);
        }

        else {
            die("Query failed");
        }
    }

    
    //If there are input validations, redirect back to the registration form
    if($errflag) {
        $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
        session_write_close();
        header("location: register-form.php");
        exit();
    }


    //Create INSERT query
    $qry = "INSERT INTO members(firstname, lastname, login, passwd) VALUES('$fname','$lname','$login','".md5($_POST['password'])."')";
    $result = @mysql_query($qry);
    
    //Check whether the query was successful or not
    if($result) {
        header("location: register-success.php");
        exit();
    }
else {
        die("Query failed");
    }

?>


Alvast bedankt :)

Gebruik code-tags om je code overzichtelijk weer te geven[/modedit]
Gewijzigd op 22/06/2010 15:21:25 door Joren de Wit
 
PHP hulp

PHP hulp

28/04/2024 13:39:15
 
Joren de Wit

Joren de Wit

22/06/2010 15:21:59
 
Mark Bos

Mark Bos

22/06/2010 23:48:58
Quote Anchor link
ok bedankt voor de link is kijken of ik eruit kom ;) en zal voortaan even letten op de code tag
 
Mark Bos

Mark Bos

23/06/2010 23:01:47
Quote Anchor link
Nou daar ben ik niet echt uitgekomen uit die link.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.