Update fout mysql php
Ik krijg deze fout melding:
Lengte en Titel zijn verplicht.<br>
- Lengte en Vraagprijs moeten nummeriek zijn
heeft iemand tips?
Code (php)
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
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
<?php
$menu = '0';
$title = 'Beheer';
include("stt.php");
include 'connect.php';
if (mysql_escape_string(strip_tags($_GET["user"])))
{
$txtUsername = mysql_escape_string(strip_tags($_GET["user"]));
}
else
{
if (mysql_escape_string(strip_tags($_POST["txtUsername"])))
{
$txtUsername = mysql_escape_string(strip_tags($_POST["txtUsername"]));
}
}
if (mysql_escape_string(strip_tags($_GET["pass"])))
{
$txtPassword = mysql_escape_string(strip_tags($_GET["pass"]));
}
else
{
if (mysql_escape_string(strip_tags($_POST["txtPassword"])))
{
$txtPassword = mysql_escape_string(strip_tags($_POST["txtPassword"]));
}
}
$presult = mysql_query("SELECT * FROM passwords") or die(mysql_error());
$paantal_rijen = mysql_num_rows($presult);
if ($paantal_rijen > 0)
{
for ($pi = 0; $pi < $paantal_rijen; $pi++)
{
$username = mysql_result($presult, $pi, 'username');
$password = mysql_result($presult, $pi, 'password');
$authority = mysql_result($presult, $pi, 'authority');
if ($txtUsername == $username && $txtPassword == $password)
{
$info = mysql_query("SELECT CURRENT_DATE");
$datum = mysql_result($info, 0, 'CURRENT_DATE');
$naamboot = $_POST["naamboot"];
$vraagprijs = $_POST["vraagprijs"];
$soort = $_POST["soort"];
$lengte = $_POST["lengte"];
$breedte = $_POST["breedte"];
$bouwjaar = $_POST["bouwjaar"];
$materiaal = $_POST["materiaal"];
$diepgang = $_POST["diepgang"];
$aantalmotoren = $_POST["aantalmotoren"];
$motormerk = $_POST["motormerk"];
$brandstof = $_POST["brandstof"];
$ligplaats = $_POST["ligplaats"];
$omschrijving = $_POST["omschrijving"];
$provincie = $_POST["provincie"];
$be_adres = $_POST["be_adres"];
$be_postbus = $_POST["be_postbus"];
$be_contactpersoon = $_POST["be_contactpersoon"];
$be_telefoonnummer = $_POST["be_telefoonnummer"];
$be_faxnummer = $_POST["be_faxnummer"];
$be_email = $_POST["be_email"];
$be_telefoonnummer = NULL;
$be_faxnummer = NULL;
$be_email = NULL;
/*
be_adres
be_postbus
be_contactpersoon
be_telefoonnummer
be_faxnummer
be_email
*/
if ($lengte && is_numeric($lengte) && $naamboot)
{
if ($vraagprijs)
{
if (is_numeric($vraagprijs))
{
$ok = "1";
}
}
else
{
$vraagprijs = "0";
$ok = "1";
}
$lengte = (round($lengte, 0));
$vraagprijs = (round($vraagprijs, 0));
}
if ($ok == "1")
{
$actie = mysql_query(
"update INTO boot
(id, datum, naamboot, vraagprijs, soort, lengte, breedte, bouwjaar, materiaal, diepgang, aantalmotoren, motormerk, brandstof, ligplaats, provincie, omschrijving, be_adres, be_postbus, be_contactpersoon, be_telefoonnummer, be_faxnummer, be_email)
VALUES
(NULL,'$datum','$naamboot','$vraagprijs','$soort','$lengte','$breedte','$bouwjaar','$materiaal','$diepgang','$aantalmotoren','$motormerk','$brandstof','$ligplaats','$provincie','$omschrijving', '$be_adres', '$be_postbus', '$be_contactpersoon', '$be_telefoonnummer', '$be_faxnummer', '$be_email')
")
or die( mysql_error());
$id = mysql_insert_id();
$result = mysql_query("SELECT * FROM boot ORDER BY datum ASC") or die(mysql_error());
$aantal_rijen = mysql_num_rows($result);
//for ($i = 0; $i < $aantal_rijen; $i++)
//{
// $id = mysql_result($result, $i, 'id');
//}
$foto_ok = FALSE;
for ($i = 1; $i < 4; $i++) {
$photoFileName = $_FILES['photo'.$i]['name']; // get client side file name
if ($photoFileName) // file uploaded
{
$fileNameParts = explode(".", $photoFileName);
$fileExtension = end($fileNameParts); // part behind last dot
if ($fileExtension != "jpg" && $fileExtension != "JPEG" && $fileExtension != "JPG")
{
die ("Kies een JPG voor de foto");
}
$photoSize = $_FILES['photo'.$i]['size']; // size of uploaded file
if ($photoSize == 0)
{
die ("Helaas. De upload van $photoFileName is niet gelukt. Zoek een foto kleiner dan 200K, met behulp van de button.");
}
if ($photoSize > 204800)
{
die ("Helaas. Het bestand $photoFileName is groter dan 200Kb. Advies: verklein de foto met behulp van een tekenprogramma.");
}
$tempFileName = $_FILES['photo'.$i]['tmp_name']; // temporary file at server side
$tempFile = fopen($tempFileName, "r");
if (move_uploaded_file($_FILES['photo'.$i]['tmp_name'], 'fotoos/'.$id.'-'.$i.'.jpg'))
$foto_ok = TRUE;
}
}
if ($foto_ok == FALSE)
echo "<p>Geen foto geupload</p>";
echo "<h3>De boot is toegevoegd...</h3><br>";
echo "<a href=\"beheer.php?&user=$txtUsername&pass=$txtPassword\">Ga naar de account</a>";
}
else
{
echo "<h2>Er is een fout opgetreden bij het toevoegen van de advertentie...</h2>
<p>1 of meerdere gegevens waren mogelijk fout ingevult...<br>
- Lengte en Titel zijn verplicht.<br>
- Lengte en Vraagprijs moeten nummeriek zijn<br>
";
}
break;
}
else
{
if ($pi+1 == $paantal_rijen)
{
echo "<br><center><h2>Foute gebruikersnaam/wachtwoordcombinatie...</h2>\n";
echo "<form name='form' method='post' action='beheer.php'>\n";
echo "<p><label for='txtUsername'>Gebruikersnaam:</label>\n";
echo "<br><input type='text' title='Typ je gebruikersnaam' name='txtUsername'></p>\n";
echo "<p><label for='txtpassword'>Wachtwoord:</label>\n";
echo "<br><input type='password' title='Typ je wachtwoord' name='txtPassword'></p>\n";
echo "<p><input type='submit' name='Submit' value='Inloggen'></p>\n";
echo "</form></center>\n";
}
}
}
}
include("stb.php");
?>
$menu = '0';
$title = 'Beheer';
include("stt.php");
include 'connect.php';
if (mysql_escape_string(strip_tags($_GET["user"])))
{
$txtUsername = mysql_escape_string(strip_tags($_GET["user"]));
}
else
{
if (mysql_escape_string(strip_tags($_POST["txtUsername"])))
{
$txtUsername = mysql_escape_string(strip_tags($_POST["txtUsername"]));
}
}
if (mysql_escape_string(strip_tags($_GET["pass"])))
{
$txtPassword = mysql_escape_string(strip_tags($_GET["pass"]));
}
else
{
if (mysql_escape_string(strip_tags($_POST["txtPassword"])))
{
$txtPassword = mysql_escape_string(strip_tags($_POST["txtPassword"]));
}
}
$presult = mysql_query("SELECT * FROM passwords") or die(mysql_error());
$paantal_rijen = mysql_num_rows($presult);
if ($paantal_rijen > 0)
{
for ($pi = 0; $pi < $paantal_rijen; $pi++)
{
$username = mysql_result($presult, $pi, 'username');
$password = mysql_result($presult, $pi, 'password');
$authority = mysql_result($presult, $pi, 'authority');
if ($txtUsername == $username && $txtPassword == $password)
{
$info = mysql_query("SELECT CURRENT_DATE");
$datum = mysql_result($info, 0, 'CURRENT_DATE');
$naamboot = $_POST["naamboot"];
$vraagprijs = $_POST["vraagprijs"];
$soort = $_POST["soort"];
$lengte = $_POST["lengte"];
$breedte = $_POST["breedte"];
$bouwjaar = $_POST["bouwjaar"];
$materiaal = $_POST["materiaal"];
$diepgang = $_POST["diepgang"];
$aantalmotoren = $_POST["aantalmotoren"];
$motormerk = $_POST["motormerk"];
$brandstof = $_POST["brandstof"];
$ligplaats = $_POST["ligplaats"];
$omschrijving = $_POST["omschrijving"];
$provincie = $_POST["provincie"];
$be_adres = $_POST["be_adres"];
$be_postbus = $_POST["be_postbus"];
$be_contactpersoon = $_POST["be_contactpersoon"];
$be_telefoonnummer = $_POST["be_telefoonnummer"];
$be_faxnummer = $_POST["be_faxnummer"];
$be_email = $_POST["be_email"];
$be_telefoonnummer = NULL;
$be_faxnummer = NULL;
$be_email = NULL;
/*
be_adres
be_postbus
be_contactpersoon
be_telefoonnummer
be_faxnummer
be_email
*/
if ($lengte && is_numeric($lengte) && $naamboot)
{
if ($vraagprijs)
{
if (is_numeric($vraagprijs))
{
$ok = "1";
}
}
else
{
$vraagprijs = "0";
$ok = "1";
}
$lengte = (round($lengte, 0));
$vraagprijs = (round($vraagprijs, 0));
}
if ($ok == "1")
{
$actie = mysql_query(
"update INTO boot
(id, datum, naamboot, vraagprijs, soort, lengte, breedte, bouwjaar, materiaal, diepgang, aantalmotoren, motormerk, brandstof, ligplaats, provincie, omschrijving, be_adres, be_postbus, be_contactpersoon, be_telefoonnummer, be_faxnummer, be_email)
VALUES
(NULL,'$datum','$naamboot','$vraagprijs','$soort','$lengte','$breedte','$bouwjaar','$materiaal','$diepgang','$aantalmotoren','$motormerk','$brandstof','$ligplaats','$provincie','$omschrijving', '$be_adres', '$be_postbus', '$be_contactpersoon', '$be_telefoonnummer', '$be_faxnummer', '$be_email')
")
or die( mysql_error());
$id = mysql_insert_id();
$result = mysql_query("SELECT * FROM boot ORDER BY datum ASC") or die(mysql_error());
$aantal_rijen = mysql_num_rows($result);
//for ($i = 0; $i < $aantal_rijen; $i++)
//{
// $id = mysql_result($result, $i, 'id');
//}
$foto_ok = FALSE;
for ($i = 1; $i < 4; $i++) {
$photoFileName = $_FILES['photo'.$i]['name']; // get client side file name
if ($photoFileName) // file uploaded
{
$fileNameParts = explode(".", $photoFileName);
$fileExtension = end($fileNameParts); // part behind last dot
if ($fileExtension != "jpg" && $fileExtension != "JPEG" && $fileExtension != "JPG")
{
die ("Kies een JPG voor de foto");
}
$photoSize = $_FILES['photo'.$i]['size']; // size of uploaded file
if ($photoSize == 0)
{
die ("Helaas. De upload van $photoFileName is niet gelukt. Zoek een foto kleiner dan 200K, met behulp van de button.");
}
if ($photoSize > 204800)
{
die ("Helaas. Het bestand $photoFileName is groter dan 200Kb. Advies: verklein de foto met behulp van een tekenprogramma.");
}
$tempFileName = $_FILES['photo'.$i]['tmp_name']; // temporary file at server side
$tempFile = fopen($tempFileName, "r");
if (move_uploaded_file($_FILES['photo'.$i]['tmp_name'], 'fotoos/'.$id.'-'.$i.'.jpg'))
$foto_ok = TRUE;
}
}
if ($foto_ok == FALSE)
echo "<p>Geen foto geupload</p>";
echo "<h3>De boot is toegevoegd...</h3><br>";
echo "<a href=\"beheer.php?&user=$txtUsername&pass=$txtPassword\">Ga naar de account</a>";
}
else
{
echo "<h2>Er is een fout opgetreden bij het toevoegen van de advertentie...</h2>
<p>1 of meerdere gegevens waren mogelijk fout ingevult...<br>
- Lengte en Titel zijn verplicht.<br>
- Lengte en Vraagprijs moeten nummeriek zijn<br>
";
}
break;
}
else
{
if ($pi+1 == $paantal_rijen)
{
echo "<br><center><h2>Foute gebruikersnaam/wachtwoordcombinatie...</h2>\n";
echo "<form name='form' method='post' action='beheer.php'>\n";
echo "<p><label for='txtUsername'>Gebruikersnaam:</label>\n";
echo "<br><input type='text' title='Typ je gebruikersnaam' name='txtUsername'></p>\n";
echo "<p><label for='txtpassword'>Wachtwoord:</label>\n";
echo "<br><input type='password' title='Typ je wachtwoord' name='txtPassword'></p>\n";
echo "<p><input type='submit' name='Submit' value='Inloggen'></p>\n";
echo "</form></center>\n";
}
}
}
}
include("stb.php");
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
if (mysql_escape_string(strip_tags($_GET["user"])))
{
$txtUsername = mysql_escape_string(strip_tags($_GET["user"]));
}
?>
if (mysql_escape_string(strip_tags($_GET["user"])))
{
$txtUsername = mysql_escape_string(strip_tags($_GET["user"]));
}
?>
en
Leg eens uit waarom het slim is om alle code 2x te schrijven, functies dubbel toe te passen, etc. etc.
Verder is $info = mysql_query("SELECT CURRENT_DATE"); ook volkomen overbodig in dit geval, wat leuk geweest om de datum op het scherm te zetten, wanneer je de datum in een query nodig hebt, gebruik dan NOW(). Scheelt een query, paar regels code en kans op fouten.
Het is trouwens raar dat jouw script begint met vele malen de functie mysql_real_escape_string, maar dat je die functie niet op alle user-input toepast. Je bent daarin niet consequent. Gebruik het overal 1x (aan te raden) of helemaal nergens. Dat is een stuk eenvoudiger te debuggen.
De functie mysql_num_rows() zal niet werken, je gebruikt hem op het resulataat van een update-query. En zoals je in de handleiding kunt lezen, heb je daar de functie mysql_affected_rows() voor nodig.
Tip: Ga bovenstaande code flink opschonen, alle dubbele code en functies weggooien en vervolgens de juiste code inkloppen.
Succes!