form probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Orhan T

Orhan T

27/12/2007 22:43:00
Quote Anchor link
Wat te doen wanneer je formulier niet meer werkt. Ik probeer relevantie code te posten aangezien het hele formulier gewoon te groot is. Eerst werkte het gewoon na wat aanpassingen in $_POST["blabla"] en de 3e if, krijg ik een wit pagina :S Ik hoop dat iemand me kan helpen..

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
<?php
$sendbutton
= $_POST["sendbutton"];

    $resultaat_nickname = mysql_query("SELECT Username FROM COMPANY WHERE Username='".$_POST["username"]."'");
    if (mysql_num_rows($resultaat_nickname) > 0)
    {
      
        $username_exists = "This username already exists";  
    }
  
    $aantal_email = mysql_query("SELECT Email FROM COMPANY WHERE Email='".$_POST["email"]."'");  
    if(mysql_num_rows($aantal_email) > 0)
    {
    
        $email_exists = "There is already made an account one this username, please enter another one";  
    }
  
if ($sendbutton != Send || !valid_companyname($_POST["companyname"]) || !valid_business($_POST["placebusiness"])
|| !
valid_street($_POST["comstreet"]) || !valid_streetnumber($_POST["comstreetnr"]) || !valid_city($_POST["comcity"]) ||
!
valid_country($_POST["comcountry"]) || !valid_phone($_POST["comphone"]) || !valid_mail($_POST["comemail"])
|| !
valid_description($_POST["comdescription"]) || !isset($_POST["keyword"]) || !isset($_POST["trade"]) ||
!
isset($_POST["product"]) || !valid_firstname($_POST["firstname"]) || !valid_lastname($_POST["lastname"])
|| !
valid_mail($_POST["email"]) || isset($email_exists) || !valid_username($_POST["username"]) ||
isset($username_exists) || !valid_pass($_POST["password"]) || !valid_pass($_POST["password2"]) ||
!
valid_street($_POST["street"]) || !valid_streetnumber($_POST["streetnumber"])
|| !
valid_city($_POST["city"]) || !valid_country($_POST["country"]) || !isset($_POST["position"]) ||
!
isset($_POST["aor"]) || !isset($_POST["privacystatement"]))
{

    echo "<form action=\"".$_SERVER["PHP_SELF"]."\" method=\"post\">";
?>

formulier is te zien op www.boeksite.woelmuis.nl/register.php
Als je de eerste keer op send drukt zie je dat het werkt, je krijgt dan te zien wat je bent vergeten etc. Als je alles correct hebt ingevuld krijg je een wit pagina zoals ik al eerder heb gezegd
Gewijzigd op 01/01/1970 01:00:00 door Orhan T
 
PHP hulp

PHP hulp

21/11/2024 19:49:10
 
Joren de Wit

Joren de Wit

27/12/2007 23:00:00
Quote Anchor link
Ik ben bang dat je de afwerking niet echt logisch opgebouwd hebt en dat het dus een hele lap code is geworden.

Het is dus ook niet zo 123 te zien waar het nu fout gaat, in ieder geval niet met de code die je nu gegeven hebt. Je zult het stukje code moeten posten dat uitgevoerd moet worden als alle controles geslaagd zijn. Op regels 14-23 controleer je of er een controle niet geslaagd is, het else-statement dat hierbij hoort zou dus de bewerking moeten bevatten die uitgevoerd wordt als alle controles slagen...
 
Orhan T

Orhan T

27/12/2007 23:03:00
Quote Anchor link
Ik zal even de else statement posten, en ja het is een grote lap code zelf kom ik niet op het antwoord en heb al verscheidene dingen geprobeerd.
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
    <?php
    echo "</form>";
}
else
{
$password = $_POST["password"];
    $passwordmd5 = md5($_POST["password"]);
    $username = ($_POST["username"]);
    $email = $_POST["email"];
    $sql = "INSERT INTO COMPANY (
    Com_name,
    POB,
    Com_street,
    Com_street_number,
    Com_city,
    Com_postcode,
    Com_country,
    PO_box,
    Postcode_PO,
    City_PO,
    Country_PO,
    Com_phone,
    Com_fax,
    Com_email,
    Com_website,
    Com_description,
    FOA,
    Academic_title,
    First_name,
    Last_name,
    Correspondence,
    Attendance,
    DOB,
    Email,
    Departement,
    Street,
    Street_number,
    Post_code,
    City,
    Country,
    Phone,
    Mobile,
    Fax,
    Website,
    Username,
    Password,
    Actief,
    Rank )
    VALUES (
    '"
.$_POST["companyname"]."',
    '"
.$_POST["placebusiness"]."',
    '"
.$_POST["comstreet"]."',
    '"
.$_POST["comstreetnr"]."',
    '"
.$_POST["comcity"]."',
    '"
.$_POST["compostcode"]."',
    '"
.$_POST["comcountry"]."',
    '"
.$_POST["pobox"]."',
    '"
.$_POST["popost"]."',
    '"
.$_POST["pocity"]."',
    '"
.$_POST["pocountry"]."',
    '"
.$_POST["comphone"]."',
    '"
.$_POST["comfax"]."',
    '"
.$_POST["comemail"]."',
    '"
.$_POST["comwebsite"]."',
    '"
.$_POST["comdescription"]."',
    '"
.$_POST["formofaddress"]."',
    '"
.$_POST["academictitle"]."',
    '"
.$_POST["firstname"]."',
    '"
.$_POST["lastname"]."',
    '"
.$_POST["correspondence"]."',
    '"
.$_POST["attendancebookfair"]."',
    '"
.$_POST["jaar"]."-".$_POST["maand"]."-".$_POST["dag"]."',
    '"
.$email."',
    '"
.$_POST["department"]."',
    '"
.$_POST["street"]."',
    '"
.$_POST["streetnumber"]."',
    '"
.$_POST["postcode"]."',
       '"
.$_POST["city"]."',
      '"
.$_POST["country"]."',
    '"
.$_POST["phone"]."',
    '"
.$_POST["mobile"]."',
    '"
.$_POST["fax"]."',
    '"
.$_POST["website"]."',
    '"
.$username."',
    '"
.$passwordmd5."',
    0,
    'npayed' )
    "
;
    if (!mysql_query($sql))
    {

        trigger_error(mysql_error()."<br />In query: ".$sql);
    }
else
    {
        $companyid = mysql_insert_id(); // primare sleutel van zojuiste toevoegde bedrijf
                foreach ($_POST["aor"] as $aor)
                {

                    $sql = "INSERT INTO AOR (
                    Name )
                    VALUES (
                    '"
.$aor."' )
                    "
;
                    if (!mysql_query($sql))
                    {

                        trigger_error(mysql_error()."<br />In query: ".$sql);
                    }
else
                    {
                        $aorid[] = mysql_insert_id(); // primare sleutel van zojuist toegevoegde aor
                        $sql = "INSERT INTO AOR_TO_COMPANY (
                        AOR_ID,
                        COMPANY_ID )
                        VALUES (
                        '"
.$aorid."',
                        '"
.$companyid."' )
                        "
;
                        if (!mysql_query($sql))
                        {

                            trigger_error(mysql_error()."<br />In query: ".$sql);
                        }
                    }    
                }

                foreach ($_POST["position"] as $position)
                {

                    $sql = "INSERT INTO POSITION (
                    Name )
                    VALUES (
                    '"
.$position."' )
                    "
;
                    if (!mysql_query($sql))
                    {

                        trigger_error(mysql_error()."<br />In query: ".$sql);
                    }
else
                    {
                        $positionid[] = mysql_insert_id();
                         $sql = "INSERT INTO POSITION_TO_COMPANY (
                         POSITION_ID,
                          COMPANY_ID )
                         VALUES (
                        '"
.$positionid."',
                        '"
.$$companyid."' )
                               "
;
                        if (!mysql_query($sql))
                        {

                            trigger_error(mysql_error()."<br />In query: ".$sql);
                        }
                    }
                }
        
                foreach ($_POST["keyword"] as $keyword)
                {

                    $sql = "INSERT INTO KEYWORD (
                    Name )
                    VALUES (
                    '"
.$keyword."' )
                    "
;
                    if (!mysql_query($sql))
                    {

                        trigger_error(mysql_error()."<br />In query: ".$sql);
                    }
else
                    {
                        $keywordid[] = mysql_insert_id();
                        $sql = "INSERT INTO KEYWORD_TO_COMPANY (
                        KEYWORD_ID,
                        COMPANY_ID )
                        VALUES (
                        '"
.$keywordid."',
                        '"
.$companyid."' )
                        "
;
                        if (!mysql_query($sql))
                        {

                            trigger_error(mysql_error()."<br />In query: ".$sql);
                        }
                    }        
                }
        
                foreach ($_POST["trade"] as $trade)
                {

                    $sql = "INSERT INTO TRADE (
                    Name )
                    VALUES (
                    '"
.$trade."' )
                    "
;
                    if ($mysql_query($sql))
                    {

                        trigger_error(mysql_error()."<br />In query: ".$sql);
                    }
else
                    {
                        $tradeid[] = mysql_insert_id();
                        $sql = "INSERT INTO TRADE_TO_COMPANY (
                        TRADE_ID,
                        COMPANY_ID )
                        VALUES (
                        '"
.$tradeid."',
                        '"
.$companyid."')
                        "
;    
                        if (!mysql_query($sql))
                        {

                            trigger_error(mysql_error()."<br />In query: ".$sql);
                        }
                    }
                }
            
                foreach ($_POST["product"] as $product)
                {

                    $sql = "INSERT INTO PRODUCT (
                    Name )
                    VALUES (
                    '"
.$product."' )
                    "
;
                    if (!mysql_query($sql))
                    {

                        trigger_error(mysql_error()."<br />In query: ".$sql);
                    }
else
                    {
                        $productid[] = mysql_insert_id();
                        $sql = "INSERT INTO PRODUCT_TO_COMPANY (
                        PRODUCT_ID,
                        COMPANY_ID )
                        VALUES (
                        '"
.$productid."',
                        '"
.$companyid."' )
                        "
;
                        if (!mysql_query($sql))
                        {

                            trigger_error(mysql_error()."<br />In query: ".$sql);
                        }
                    }
                }

            
        $resultaat_id = "SELECT COMPANY_ID FROM COMPANY WHERE Username='".$username."'";
        $id = mysql_result($resultaat_id, 0);  
        $u = $id;  
        for($i=0; $i<7; $i++)
        {
  
        $u = base64_encode($u);  
        }
  
        $message = "Somebody used you're email address to register an account. If you didn't register an account ignore this email.\n";
        $message .= "Welcome to our site. We'll hope u enjoy it.\n\n"; //email bericht naar geregistreerde
        $message .= "Before u can log in u need to activate you're account.";
        $message .= "To activate you're account please click <a href=\"".$locatie."activeer.php?u=".$u."\">here</a>\n";
        $message .= "You're username is: ".$_POST["email"]."\n";
        $message .= "You're password is: $password\n";
        $van = "From: '.$van_naam.' <'.$van_email.'>";
        $ok = mail($_POST["email"], "Account details", $message, $van);
        if (!$ok)
        {

            echo "The mail couldn't be send. Take contact to the webmaster";
        }
else
        {
            echo "<br /><p>You need to activate you're account with your email address. You receive you're accountdetails at ".$_POST["email"]."</p><br />"; // bericht nadat succesvol geregistreerd
        }        
    }
}

mysql_close($db);
?>
Gewijzigd op 01/01/1970 01:00:00 door Orhan T
 
W W

W W

27/12/2007 23:06:00
Quote Anchor link
Ik zou beginnen met normaliseren.
 
Joren de Wit

Joren de Wit

27/12/2007 23:07:00
Quote Anchor link
Zet eens
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>

boven aan je scripts. Krijg je dan nog foutmeldingen? Verder voer je de query op regel 222 nergens uit?
 
Jan Koehoorn

Jan Koehoorn

27/12/2007 23:07:00
Quote Anchor link
En nooit rechtstreeks POST variabelen in een INSERT query zetten. Altijd mysql_real_escape_string gebruiken.
 
Orhan T

Orhan T

27/12/2007 23:12:00
Quote Anchor link
@Blanche,
wat bedoel je precies met je voert de query op regel 222 nergens uit? Ik sloot gewoon de else af.. Met jou wijze tip krijg ik nu in elke input van <br /> (die heb ik staan in de echo's trouwens) en ik krijg de volgende errors:

Notice: Undefined index: sendbutton in /www/woelmuis.nl/b/o/e/boeksite/htdocs/register.php on line 79

Notice: Undefined index: username in /www/woelmuis.nl/b/o/e/boeksite/htdocs/register.php on line 81

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/woelmuis.nl/b/o/e/boeksite/htdocs/register.php on line 82

Notice: Undefined index: email in /www/woelmuis.nl/b/o/e/boeksite/htdocs/register.php on line 86

Notice: Use of undefined constant Send - assumed 'Send' in /www/woelmuis.nl/b/o/e/boeksite/htdocs/register.php on line 91

@Jan Koehorn,
bedankt voor de tip maar dat is een zorg voor later. Eerst gewoon de formulier aan de praat krijgen

Op lijn 79:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sendbutton = $_POST["sendbutton"];

Op lijn 81
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$resultaat_nickname = mysql_query("SELECT Username FROM COMPANY WHERE Username='".$_POST["username"]."'");

Op lijn 82:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if (mysql_num_rows($resultaat_nickname) > 0)

Op lijn 86:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$aantal_email = mysql_query("SELECT Email FROM COMPANY WHERE Email='".$_POST["email"]."'");

Op lijn 91:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if ($sendbutton != Send || !valid_companyname($_POST["companyname"]) || !valid_business($_POST["placebusiness"])

Bedankt voor de reacties :)
Gewijzigd op 01/01/1970 01:00:00 door Orhan T
 
Joren de Wit

Joren de Wit

27/12/2007 23:20:00
Quote Anchor link
Lijkt me duidelijk: undefined variable. Je werkt met variabelen die niet bestaan, dat gaat niet werken...

Controleer dus eerst of een variabele wel bestaat voordat je ermee gaat werken.
 
Orhan T

Orhan T

27/12/2007 23:23:00
Quote Anchor link
Dat komt omdat wanneer de pagina geladen is er nog helemaal geen $_POST bestaat. Maar ik denk dat me script niet werkt door de verwerking, waar ik in een denkfoutje heb gemaakt. Heeft iemand nog tips?
 
Jan Koehoorn

Jan Koehoorn

27/12/2007 23:24:00
Quote Anchor link
Als je zo begint:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // hier je formulierverwerking
    }
?>

dan heb je in ieder geval geen last meer van die variabelen die niet geset zijn.
 
Orhan T

Orhan T

27/12/2007 23:27:00
Quote Anchor link
Dat klopt maar ik geef toch liever de voorkeur aan wat ik net deed, kan je ook gelijk via regexp controle op de input uitoefenen.

Bedankt voor de reactie :)
Jammer dat niemand een fout heeft gevonden in de code, naast de bovengenoemde dingen
 
Jan Koehoorn

Jan Koehoorn

27/12/2007 23:29:00
Quote Anchor link
Dat kan veel handiger, die controle, bijvoorbeeld met een foreach.
 
Joren de Wit

Joren de Wit

27/12/2007 23:30:00
Quote Anchor link
Orhan schreef op 27.12.2007 23:27:
Dat klopt maar ik geef toch liever de voorkeur aan wat ik net deed, kan je ook gelijk via regexp controle op de input uitoefenen.
Uitgebreide formulier controle

Deze manier van verwerking van een formulier vind ik persoonlijk toch een stuk overzichtelijker, efficienter en vooral korter. En deze manier stelt je net zo goed in staat om verschillende controles op verschillende velden toe te passen.

Edit:
@Jan: we denken hetzelfde ;-)
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
 
Orhan T

Orhan T

27/12/2007 23:31:00
Quote Anchor link
Hoe valt dat te doen dan? Kan je misschien een klein simpel voorbeeldje geven..?
 
Jan Koehoorn

Jan Koehoorn

27/12/2007 23:33:00
Quote Anchor link
Ik zal snel iets maken, momentje.
 
Joren de Wit

Joren de Wit

27/12/2007 23:33:00
Quote Anchor link
Orhan schreef op 27.12.2007 23:31:
Hoe valt dat te doen dan? Kan je misschien een klein simpel voorbeeldje geven..?
Zie de link in mijn vorige post :-)
 
Jan Koehoorn

Jan Koehoorn

27/12/2007 23:40:00
Quote Anchor link
Of kijk naar dit voorbeeld en bestudeer de code:

form validation

Toevoeging: het komt er op neer dat je alle informatie die door het formulier verzonden is in een array hebt. Als je dus zelf een array $required maakt en eventueel een array $regexes, dan kun je in een simpele foreach alle waardes langslopen en checken.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Orhan T

Orhan T

27/12/2007 23:42:00
Quote Anchor link
Haha, ok dat zal ik eens gaan lezen. Ik heb probleem gevonden denk ik door de wijze uitspraak van Blanche : "foutafhandeling".

Notice: Undefined index: dag in /www/woelmuis.nl/b/o/e/boeksite/htdocs/register.php on line 1302

Notice: Unknown column 'Username' in 'field list'

Tot mijn grote verbazing zag ik dat Username niet bestond in me tabel. Vraag me alleen af hoe het kan dat if (!$sql) geen foutmelding gaf...maar dat
ini_set('display_errors', 'On');
error_reporting(E_ALL); het probleem heeft weergeven.

Alleen ik snap niet wat er mis is met $_POST["dag"]
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
<select value="dag">
    <option>--</option>
       <option value=1>1</option>
    <option value=2>2</option>
    <option value=3>3</option>
    <option value=4>4</option>
    <option value=5>5</option>
    <option value=6>6</option>
    <option value=7>7</option>
    <option value=8>8</option>
    <option value=9>9</option>
    <option value=10>10</option>
       <option value=11>11</option>
    <option value=12>12</option>
    <option value=12>12</option>
    <option value=13>13</option>
    <option value=14>14</option>
    <option value=15>15</option>
    <option value=16>16</option>
    <option value=17>17</option>
    <option value=18>18</option>
    <option value=19>19</option>
    <option value=20>20</option>
    <option value=21>21</option>
    <option value=22>22</option>
    <option value=23>23</option>
    <option value=24>24</option>
    <option value=25>25</option>
    <option value=26>26</option>
    <option value=27>27</option>
    <option value=28>28</option>
       <option value=29>29</option>
    <option value=30>30</option>
       <option value=31>31</option>
      </select><br />


Bedankt voor alle reacties


Vragen kwa form validation van jan:
$regexes = array ('telefoon' => '/^[0-9]{3,12}$/');
ik snap de syntax niet, waar staat => voor? $regexes["telefoon"] en dan via => heb je regex weergeven?
Gewijzigd op 01/01/1970 01:00:00 door Orhan T
 
Joren de Wit

Joren de Wit

27/12/2007 23:48:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<select value="dag">

Moet natuurlijk zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<select name="dag">
 
Orhan T

Orhan T

27/12/2007 23:57:00
Quote Anchor link
Dat klopt blanche en dat ene error_reporting all is echt een prachtig functie. Ik krijg nu een error :

Notice: Undefined index: dag in /www/woelmuis.nl/b/o/e/boeksite/htdocs/register.php on line 1302

Op lijn 1302 staat:
'".$_POST["jaar"]."-".$_POST["maand"]."-".$_POST["dag"]."',
Is hier iets mis mee? Deze value is bedoeld voor een kolom met het type date.
 
Joren de Wit

Joren de Wit

28/12/2007 00:05:00
Quote Anchor link
Dat houdt in dat de variabele $_POST['dag'] niet bestaat. Die staat dus wellicht nog niet juist in je formulier?
 

Pagina: 1 2 volgende »



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.