Vraag over sql...
Code (php)
1
2
3
2
3
<?php
VALUES('".htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])))."')
?>
VALUES('".htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])))."')
?>
Als ik nu <a href="sgsg">sgfsgs</a> invul krijg ik gewoon alleen de tekst te zien, en is het geen link meer.
Edit/ tegelijk gepost :P
kunnen jullie het misschien ook testen?
Gewijzigd op 01/01/1970 01:00:00 door stefan
Moet ik het script van de vorige pagina zo toepassen?
Volgens mij niet (A)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?p
if($_SERVER['REQUEST_METHOD'] == "POST")
if(!empty($_POST['product']){
$product = htmlentities(striptags(mysql_real_escape_string($_POST['product'])));
}else{
echo 'U moet wel een product kiezen';
}
{
mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['naam'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['plaats'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['telefoonnummer'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['email'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['bericht'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['prijs'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['soort'])))."','".$date."')") or die ( mysql_error() );
$sql = "INSERT INTO tabel_naam (producten) VALUES ('".$product."')";
$res = mysql_query($sql);
if($res){
echo 'Het is goed gegaan';
}else{
echo 'er is iets fout gegaan';
}
echo "Vraag/Aanbod geplaatst";
?>
if($_SERVER['REQUEST_METHOD'] == "POST")
if(!empty($_POST['product']){
$product = htmlentities(striptags(mysql_real_escape_string($_POST['product'])));
}else{
echo 'U moet wel een product kiezen';
}
{
mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['naam'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['plaats'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['telefoonnummer'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['email'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['bericht'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['prijs'])))."','".htmlentities(strip_tags(mysql_real_escape_string($_POST['soort'])))."','".$date."')") or die ( mysql_error() );
$sql = "INSERT INTO tabel_naam (producten) VALUES ('".$product."')";
$res = mysql_query($sql);
if($res){
echo 'Het is goed gegaan';
}else{
echo 'er is iets fout gegaan';
}
echo "Vraag/Aanbod geplaatst";
?>
Gewijzigd op 01/01/1970 01:00:00 door stefan
Deze functie gebruik je alleen wanneer je de data ophaalt uit de database en op het scherm wilt weergeven.
Frank:
@Stefan: De functie htmlentities() hoor je niet te gebruiken wanneer je gegevens in de database gaat wegschrijven. Dan kun je de data namelijk niet meer gebruiken voor andere zaken dan html-output, bv. email, text-files etc.
Deze functie gebruik je alleen wanneer je de data ophaalt uit de database en op het scherm wilt weergeven.
Deze functie gebruik je alleen wanneer je de data ophaalt uit de database en op het scherm wilt weergeven.
Kan ik wel de strip_tags gebruiken?
Jazeker! Jij wilt geen html in je database hebben, dan moet je dat er dus eerst uitgooien voordat je de query gaat uitvoeren. Dat doe je dus goed.
in plaats van
Ik heb nu dit en het werkt en als ik nu bijvoorbeeld <a href="sgsg">sgfsgs</a> invoer krijg ik gewoon alleen de naam te zien :)
Nu hoeft bij de hoofdpagina toch niet die htmlentities?
Code (php)
1
2
3
2
3
<?p
mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
?>
mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
?>
Gewijzigd op 01/01/1970 01:00:00 door stefan
Maar dat wil nog niet echt lukken, ik heb de code van de vorige pagina gebruikt en heb nu dit (alleen voor producht, om te testen)
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
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
<?php
if(!empty($_POST['product'])
$product = htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])));
}else{
echo 'U moet wel een product kiezen';
}
// en dan je sql
$sql = "INSERT INTO vraagenaanbod (product) VALUES ('".$product."')";
$res = mysql_query($sql);
if($res){
echo 'Het is goed gegaan';
}else{
echo 'er is iets fout gegaan';
}
else
{
echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
echo "<form name='veranderen' method='post'>";
echo "Product naam:<br>";
echo "<input type='text' name='$product'><br>";
echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
}
ob_end_flush();
?>
if(!empty($_POST['product'])
$product = htmlentities(strip_tags(mysql_real_escape_string($_POST['product'])));
}else{
echo 'U moet wel een product kiezen';
}
// en dan je sql
$sql = "INSERT INTO vraagenaanbod (product) VALUES ('".$product."')";
$res = mysql_query($sql);
if($res){
echo 'Het is goed gegaan';
}else{
echo 'er is iets fout gegaan';
}
else
{
echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
echo "<form name='veranderen' method='post'>";
echo "Product naam:<br>";
echo "<input type='text' name='$product'><br>";
echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
}
ob_end_flush();
?>
Maar dan krijg ik;
Parse error: parse error, unexpected '{' in vaplaatsen.php on line 2
En als ik die { weghaal krijg ik
Parse error: parse error, unexpected T_VARIABLE in vaplaatsen.php on line 3
Ik heb het idee dat dat form met echo tegenwerkt of iets dergelijks;
en die { moet er wel staan...
je moet gewoon al je { en } tellen, die moeten nl gelijk zijn.
verder gewoon goed je code doorlezen... dan kan je zelf ook wel een aantal fouten eruit halen...
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
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
<?php
ob_start();
if($_SERVER['REQUEST_METHOD'] == "POST")
{
mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
echo "Vraag/Aanbod geplaatst";
if($_POST['naam'] == '')
{
echo "U heeft geen achternaam ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
else
{
echo 'Uw bericht is helaas niet verstuurd.';
}
$afzender = "From: [email protected]";
mail($_POST['email'],'Plaatsing Advertentie','Je advertentie is geplaatst',$afzender);
}
else
{
echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
echo "<form name='veranderen' method='post'>";
echo "Product naam:<br>";
echo "<input type='text' name='product'><br>";
echo "Naam:<br>";
echo "<input type='text' name='naam'><br>";
echo "Plaats:<br>";
echo "<input type='text' name='plaats'><br>";
echo "Telefoonnummer:<br>";
echo "<input type='text' name='telefoonnummer'><br>";
echo "Email:<br>";
echo "<input type='text' name='email'><br>";
echo "Extra informatie:<br>";
echo "<textarea name='bericht' cols='40' rows='5'></textarea><br>";
echo "Prijs:<br>";
echo "<input type='text' name='prijs'><br>";
echo "Aangeboden/Gezocht:<br>";
echo "<select name='soort'><option value='Aangeboden'>Aangeboden</option><option value='Gezocht'>Gezocht</option></select><br>";
echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
}
ob_end_flush();
?>
ob_start();
if($_SERVER['REQUEST_METHOD'] == "POST")
{
mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
echo "Vraag/Aanbod geplaatst";
if($_POST['naam'] == '')
{
echo "U heeft geen achternaam ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
else
{
echo 'Uw bericht is helaas niet verstuurd.';
}
$afzender = "From: [email protected]";
mail($_POST['email'],'Plaatsing Advertentie','Je advertentie is geplaatst',$afzender);
}
else
{
echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
echo "<form name='veranderen' method='post'>";
echo "Product naam:<br>";
echo "<input type='text' name='product'><br>";
echo "Naam:<br>";
echo "<input type='text' name='naam'><br>";
echo "Plaats:<br>";
echo "<input type='text' name='plaats'><br>";
echo "Telefoonnummer:<br>";
echo "<input type='text' name='telefoonnummer'><br>";
echo "Email:<br>";
echo "<input type='text' name='email'><br>";
echo "Extra informatie:<br>";
echo "<textarea name='bericht' cols='40' rows='5'></textarea><br>";
echo "Prijs:<br>";
echo "<input type='text' name='prijs'><br>";
echo "Aangeboden/Gezocht:<br>";
echo "<select name='soort'><option value='Aangeboden'>Aangeboden</option><option value='Gezocht'>Gezocht</option></select><br>";
echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
}
ob_end_flush();
?>
Als ik op advertentie plaatsen klik krijg ik dit;
Vraag/Aanbod geplaatstU heeft geen achternaam ingevuld!
Klik hier om terug te gaan!
Alleen hij plaats de advertentie wel :O
Quote:
Lijkt mij logisch... Je controleert of er een formulier is verstuurd en je maakt een nieuw record aan in de database.Alleen hij plaats de advertentie wel :O
En vervolgens ga je controleren of wel alle data is ingevuld. Dat lijkt mij niet helemaal de juiste volgorde, om even een open deur in te trappen.
Oplossing: Pas de logica aan: eerst controleren en dan pas de query uitvoeren.
Vraagje: Waar komt $date vandaan en wat staat daar in? De datum van vandaag? Gebruik dan de MySQL-functie NOW() in je query. Dat is eenvoudiger in het gebruik. Uiteraard gebruik je een kolom van het type DATE (of DATETIME) om de datum in op te slaan.
$date is inderdaad de datum die weergegeven wordt waneer de advertentie is geplaatst :)
Dat als je iets niet invult dat ze te zien krijgen van;
"Je bent iets vergeten in te vullen,"
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
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
<?php
ob_start();
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if($_POST['product'] == '')
{
echo "Je bent iets vergeten in te vullen,<br>";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
die();
}
elseif($_POST['naam'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['plaats'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['telefoonnummer'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['email'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['email'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['prijs'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['bericht'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
echo "Vraag/Aanbod geplaatst";
$afzender = "From: [email protected]";
mail($_POST['email'],'Plaatsing Advertentie','Je advertentie is geplaatst',$afzender);
}
else
{
echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
echo "<form name='veranderen' method='post'>";
echo "Product naam:<br>";
echo "<input type='text' name='product'><br>";
echo "Naam:<br>";
echo "<input type='text' name='naam'><br>";
echo "Plaats:<br>";
echo "<input type='text' name='plaats'><br>";
echo "Telefoonnummer:<br>";
echo "<input type='text' name='telefoonnummer'><br>";
echo "Email:<br>";
echo "<input type='text' name='email'><br>";
echo "Extra informatie:<br>";
echo "<textarea name='bericht' cols='40' rows='5'></textarea><br>";
echo "Prijs:<br>";
echo "<input type='text' name='prijs'><br>";
echo "Aangeboden/Gezocht:<br>";
echo "<select name='soort'><option value='Aangeboden'>Aangeboden</option><option value='Gezocht'>Gezocht</option></select><br>";
echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
}
ob_end_flush();
?>
ob_start();
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if($_POST['product'] == '')
{
echo "Je bent iets vergeten in te vullen,<br>";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
die();
}
elseif($_POST['naam'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['plaats'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['telefoonnummer'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['email'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['email'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['prijs'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
elseif($_POST['bericht'] == '')
{
echo "Je bent iets vergeten in te vullen,";
die();
}
mysql_query("INSERT INTO vraagenaanbod (product,naam,plaats,telefoonnummer,email,bericht,prijs,soort,datum) VALUES('".strip_tags(mysql_real_escape_string($_POST['product']))."','".strip_tags(mysql_real_escape_string($_POST['naam']))."','".strip_tags(mysql_real_escape_string($_POST['plaats']))."','".strip_tags(mysql_real_escape_string($_POST['telefoonnummer']))."','".strip_tags(mysql_real_escape_string($_POST['email']))."','".strip_tags(mysql_real_escape_string($_POST['bericht']))."','".strip_tags(mysql_real_escape_string($_POST['prijs']))."','".strip_tags(mysql_real_escape_string($_POST['soort']))."','".$date."')") or die ( mysql_error() );
echo "Vraag/Aanbod geplaatst";
$afzender = "From: [email protected]";
mail($_POST['email'],'Plaatsing Advertentie','Je advertentie is geplaatst',$afzender);
}
else
{
echo "<B>Vraag/Aanbod plaatsen:</b><br><br>";
echo "<form name='veranderen' method='post'>";
echo "Product naam:<br>";
echo "<input type='text' name='product'><br>";
echo "Naam:<br>";
echo "<input type='text' name='naam'><br>";
echo "Plaats:<br>";
echo "<input type='text' name='plaats'><br>";
echo "Telefoonnummer:<br>";
echo "<input type='text' name='telefoonnummer'><br>";
echo "Email:<br>";
echo "<input type='text' name='email'><br>";
echo "Extra informatie:<br>";
echo "<textarea name='bericht' cols='40' rows='5'></textarea><br>";
echo "Prijs:<br>";
echo "<input type='text' name='prijs'><br>";
echo "Aangeboden/Gezocht:<br>";
echo "<select name='soort'><option value='Aangeboden'>Aangeboden</option><option value='Gezocht'>Gezocht</option></select><br>";
echo "<input type='submit' name='submit' value='Vraag/Aanbod plaatsen'></form>";
}
ob_end_flush();
?>
Maar nu zit ik met het volgende, als je iets niet invult.
Krijg je die regel te zien van je bent iets vergeten lalala.
En dan laat die verder de content pagina niet meer ( de footer).
Hoe kan ik dat oplossen?