Tips welkom over deze code PHP
toch vrij duidelijk:
mysqli_real_escape_string verwacht precies 2 parameters, er wordt er 1 gegeven op regel 49 van ...
Verder heb ik wel 2 domme fouten gevonden in me php die er niets mee te maken hadden. ik had 2 keer een mysqli_query en er stond === false en heb dit verranderd naar == false.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if(count($melding) == 0)
{
$queryInsert = "INSERT INTO p_video
(pv_title,
pv_description,
pv_link)
VALUES ('" . $pv_title=mysqli_real_escape_string($_POST['pv_title']) . "',
'" . $pv_description=mysqli_real_escape_string($_POST['pv_description']) . "',
'" . $pv_link=mysqli_real_escape_string($_POST['pv_link']) . "')";
# Check of query is gelukt
if (($queryInsert = mysqli_query($queryInsert)) == false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($queryInsert, mysqli_error(),'Fout bij het invoegen van de post.');
}
else
{
# De query is geluk! :)
echo 'Gebruiker is toegevoegt!';
}
}
?>
if(count($melding) == 0)
{
$queryInsert = "INSERT INTO p_video
(pv_title,
pv_description,
pv_link)
VALUES ('" . $pv_title=mysqli_real_escape_string($_POST['pv_title']) . "',
'" . $pv_description=mysqli_real_escape_string($_POST['pv_description']) . "',
'" . $pv_link=mysqli_real_escape_string($_POST['pv_link']) . "')";
# Check of query is gelukt
if (($queryInsert = mysqli_query($queryInsert)) == false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($queryInsert, mysqli_error(),'Fout bij het invoegen van de post.');
}
else
{
# De query is geluk! :)
echo 'Gebruiker is toegevoegt!';
}
}
?>
Quote:
Ja maar ik kan jammer genoeg de fout niet vinden in de php
tja, het zou op zich handig zijn als php bij een foutmelding ook zou vermelden in welk script en op welke regel een fout optreedt.....
oh wacht....
Gewijzigd op 01/07/2014 13:01:47 door Ivo P
Lees Ivo's vorige reactie eens over mysqli_real_escape_string(), je mist het argument van de connectie.
als jullie nog dingen zien die beter kunnen, overbodig zijn of afvragen waarom ik dat neer zet dan hoor ik het graag.
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
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
<?php
include "include/config.php";
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$melding = array();
if (strlen($_POST['pv_title'])=="")
{
$melding[] = 'Er is geen titel ingevuld!';
}
if (strlen($_POST['pv_description'])=="")
{
$melding[] = 'Er is geen beschrijving ingevuld!';
}
if (strlen($_POST['pv_link'])<9)
{
$melding[] = 'Er is geen link ingevuld!';
}
if(count($melding) == 0)
{
$queryInsert = "INSERT INTO pv_table
(pv_title,
pv_description,
pv_link)
VALUES ('" . $pv_title = mysqli_real_escape_string($con, $_POST['pv_title']) . "',
'" . $pv_description = mysqli_real_escape_string($con, $_POST['pv_description']) . "',
'" . $pv_link = mysqli_real_escape_string($con, $_POST['pv_link']) . "')";
$queryInsert = mysqli_query($con, $queryInsert);
// met ! check ik of het niet zo is
if ( ! $queryInsert )
{
echo showSQLError($queryInsert, mysqli_error($con), 'Fout bij het invoegen van de post.');
}
else
{
# De query is geluk! :)
echo 'Gebruiker is toegevoegt!';
}
}
}
?>
<fieldset>
<?php
if(!empty($melding))
{
foreach($melding as $eenMelding)
{
echo $eenMelding . "<br>";
}
}
?>
<form method="post">
Titel:
<input type="text"
name="pv_title"
value="<?php echo isset($_POST['pv_title']) ? $_POST['pv_title'] : false; ?>"><br>
Beschrijving:
<input type="text"
name="pv_description"
value="<?php echo isset($_POST['pv_description']) ? $_POST['pv_description'] : false; ?>"><br>
Link:
<input type="text"
name="pv_link"
value="<?php echo isset($_POST['pv_link']) ? $_POST['pv_link'] : false; ?>"><br>
<br>
<input type="submit"
name="submit">
</form>
</fieldset>
include "include/config.php";
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$melding = array();
if (strlen($_POST['pv_title'])=="")
{
$melding[] = 'Er is geen titel ingevuld!';
}
if (strlen($_POST['pv_description'])=="")
{
$melding[] = 'Er is geen beschrijving ingevuld!';
}
if (strlen($_POST['pv_link'])<9)
{
$melding[] = 'Er is geen link ingevuld!';
}
if(count($melding) == 0)
{
$queryInsert = "INSERT INTO pv_table
(pv_title,
pv_description,
pv_link)
VALUES ('" . $pv_title = mysqli_real_escape_string($con, $_POST['pv_title']) . "',
'" . $pv_description = mysqli_real_escape_string($con, $_POST['pv_description']) . "',
'" . $pv_link = mysqli_real_escape_string($con, $_POST['pv_link']) . "')";
$queryInsert = mysqli_query($con, $queryInsert);
// met ! check ik of het niet zo is
if ( ! $queryInsert )
{
echo showSQLError($queryInsert, mysqli_error($con), 'Fout bij het invoegen van de post.');
}
else
{
# De query is geluk! :)
echo 'Gebruiker is toegevoegt!';
}
}
}
?>
<fieldset>
<?php
if(!empty($melding))
{
foreach($melding as $eenMelding)
{
echo $eenMelding . "<br>";
}
}
?>
<form method="post">
Titel:
<input type="text"
name="pv_title"
value="<?php echo isset($_POST['pv_title']) ? $_POST['pv_title'] : false; ?>"><br>
Beschrijving:
<input type="text"
name="pv_description"
value="<?php echo isset($_POST['pv_description']) ? $_POST['pv_description'] : false; ?>"><br>
Link:
<input type="text"
name="pv_link"
value="<?php echo isset($_POST['pv_link']) ? $_POST['pv_link'] : false; ?>"><br>
<br>
<input type="submit"
name="submit">
</form>
</fieldset>
Gewijzigd op 01/07/2014 15:15:30 door racoon smasher
Verder ziet de code er netjes uit.
De hele functie ShowSQLError() { } zou je prima in een functions.php kunnen plaatsen, zodat je die functie binnen je hele volledige script kunt gebruiken.
"toegevoegt" is meestal met een D aan het einde.
regel 85 en verder missen htmlspecialchars()q
Ivo hoe zou jij regel 49, 50 en 51 dan doen?
Vertel ze gewoon dat er een technisch probleem bij jouw kant is, en dat ze het later nog eens moeten proberen.
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
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
<?php
include "include/config.php";
# errors weergeven
ini_set('display_errors',0); // 1 == aan , 0 == uit
error_reporting(0);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Er is een fout opgelopen tijdens het proces, probeer het later nog is!')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$melding = array();
if (strlen($_POST['pv_title'])=="")
{
$melding[] = 'Er is geen titel ingevuld!';
}
if (strlen($_POST['pv_description'])=="")
{
$melding[] = 'Er is geen beschrijving ingevuld!';
}
if (strlen($_POST['pv_link'])<9)
{
$melding[] = 'Er is geen link ingevuld!';
}
if(count($melding) == 0)
{
$queryInsert = "INSERT INTO pv_table
(pv_title,
pv_description,
pv_link)
VALUES ('" . mysqli_real_escape_string($con, $_POST['pv_title']) . "',
'" . mysqli_real_escape_string($con, $_POST['pv_description']) . "',
'" . mysqli_real_escape_string($con, $_POST['pv_link']) . "')";
$queryInsert = mysqli_query($con, $queryInsert);
// met ! check ik of het niet zo is
if ( ! $queryInsert )
{
echo showSQLError($queryInsert, mysqli_error($con), 'Fout bij het invoegen van de post.');
}
else
{
# De query is geluk! :)
echo 'Gebruiker is toegevoegd!';
}
}
}
?>
<fieldset>
<?php
if(!empty($melding))
{
foreach($melding as $eenMelding)
{
echo $eenMelding . "<br>";
}
}
?>
<form method="post">
Titel:
<input type="text"
name="pv_title"
value="<?php echo isset($_POST['pv_title']) ? htmlspecialchars($_POST['pv_title']) : false; ?>"><br>
Beschrijving:
<input type="text"
name="pv_description"
value="<?php echo isset($_POST['pv_description']) ? htmlspecialchars($_POST['pv_description']) : false; ?>"><br>
Link:
<input type="text"
name="pv_link"
value="<?php echo isset($_POST['pv_link']) ? htmlspecialchars($_POST['pv_link']) : false; ?>"><br>
<br>
<input type="submit"
name="submit">
</form>
</fieldset>
include "include/config.php";
# errors weergeven
ini_set('display_errors',0); // 1 == aan , 0 == uit
error_reporting(0);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Er is een fout opgelopen tijdens het proces, probeer het later nog is!')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$melding = array();
if (strlen($_POST['pv_title'])=="")
{
$melding[] = 'Er is geen titel ingevuld!';
}
if (strlen($_POST['pv_description'])=="")
{
$melding[] = 'Er is geen beschrijving ingevuld!';
}
if (strlen($_POST['pv_link'])<9)
{
$melding[] = 'Er is geen link ingevuld!';
}
if(count($melding) == 0)
{
$queryInsert = "INSERT INTO pv_table
(pv_title,
pv_description,
pv_link)
VALUES ('" . mysqli_real_escape_string($con, $_POST['pv_title']) . "',
'" . mysqli_real_escape_string($con, $_POST['pv_description']) . "',
'" . mysqli_real_escape_string($con, $_POST['pv_link']) . "')";
$queryInsert = mysqli_query($con, $queryInsert);
// met ! check ik of het niet zo is
if ( ! $queryInsert )
{
echo showSQLError($queryInsert, mysqli_error($con), 'Fout bij het invoegen van de post.');
}
else
{
# De query is geluk! :)
echo 'Gebruiker is toegevoegd!';
}
}
}
?>
<fieldset>
<?php
if(!empty($melding))
{
foreach($melding as $eenMelding)
{
echo $eenMelding . "<br>";
}
}
?>
<form method="post">
Titel:
<input type="text"
name="pv_title"
value="<?php echo isset($_POST['pv_title']) ? htmlspecialchars($_POST['pv_title']) : false; ?>"><br>
Beschrijving:
<input type="text"
name="pv_description"
value="<?php echo isset($_POST['pv_description']) ? htmlspecialchars($_POST['pv_description']) : false; ?>"><br>
Link:
<input type="text"
name="pv_link"
value="<?php echo isset($_POST['pv_link']) ? htmlspecialchars($_POST['pv_link']) : false; ?>"><br>
<br>
<input type="submit"
name="submit">
</form>
</fieldset>
Racoon smasher op 01/07/2014 15:29:19:
Aar dat klopt, anders zou het twintig keer in me php bestanden voorkomen. Ga ik zeker doen.
Euh... ;-)
Verder kan je define voor je DEBUG_MODE ook wel in je config geplaatst worden.
Verder snap ik deze contructie niet helemaal:
Ik had toch een mooi voorbeeld gegeven met trim() en een vergelijking met een lege string?
Gewijzigd op 01/07/2014 19:27:38 door - Ariën -
En wat als iemand als URL 'tralalalalalalalaa' invuit? Is een controle op http:// en https:// niet een handiger idee?
voor een normale link beveiliging zou ik de type veranderen naar url inplaats van text
Gewijzigd op 02/07/2014 16:21:19 door racoon smasher