INSERT INTO
Ik heb een simpel scriptje gemaakt, waardoor ik via een formpje een voornaam,achternaam,email kan toevoegen.. alleen hij blijkt niet echt te werken.. ik ben best nieuw in php en sql. dit is me code:
Voegtoe.php (formpje)
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
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
<html>
<head>
<style type="text/css">
<!--
.test {
font-size: 10px;
font-weight: bold;
font-family: Verdana, Geneva, sans-serif;
width: 300px;
}
-->
</style>
</head>
<table id="voegtoe" width="600" align="center">
<form method="POST" action="toegevoegd.php">
<tr>
<td class="test">Voornaam*:</td>
<td>
<input name="voornaam" type="text" id="voornaam" size="47" width="300">
</td>
</tr>
<tr>
<td class="test">Achternaam*:</td>
<td>
<input name="achternaam" type="text" id="achternaam" size="47" width="300">
</td>
</tr>
<tr>
<td class="test">Email-adres*:</td>
<td>
<input name="email" type="text" id="email" size="47" width="300">
</td>
</tr>
<tr>
<td class="test">Velden met een * zijn verplicht.</td>
<td>
<input type="submit" name="verstuur" id="verstuur" value="Voeg toe">
</td>
</tr>
</form>
</table>
<head>
<style type="text/css">
<!--
.test {
font-size: 10px;
font-weight: bold;
font-family: Verdana, Geneva, sans-serif;
width: 300px;
}
-->
</style>
</head>
<table id="voegtoe" width="600" align="center">
<form method="POST" action="toegevoegd.php">
<tr>
<td class="test">Voornaam*:</td>
<td>
<input name="voornaam" type="text" id="voornaam" size="47" width="300">
</td>
</tr>
<tr>
<td class="test">Achternaam*:</td>
<td>
<input name="achternaam" type="text" id="achternaam" size="47" width="300">
</td>
</tr>
<tr>
<td class="test">Email-adres*:</td>
<td>
<input name="email" type="text" id="email" size="47" width="300">
</td>
</tr>
<tr>
<td class="test">Velden met een * zijn verplicht.</td>
<td>
<input type="submit" name="verstuur" id="verstuur" value="Voeg toe">
</td>
</tr>
</form>
</table>
toegevoegd.php
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
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
<?php
// Connectie maken naar de database.
mysql_connect ("localhost","Mittche6_le","xxxx");
mysql_select_db ("Mittche6_le");
$check = ("SELECT * FROM `formulier` ");
$resultaat = mysql_query($check) or die ("Kan geen connectie vinden met de database");
$query = ("INSERT INTO `formulier` (voornaam, achternaam, email) VALUES ('$_POST['voornaam']' , '$_POST['achternaam']' , '$_POST['email']'");
$voornaam = $_POST['voornaam']
$achternaam = $_POST['achternaam']
$email = $_POST['email']
if(empty($voornaam) | empty($achternaam) | empty($email)) {
echo "Nog niet alle velden met een sterretje (*) zijn ingevuld, Klik <a href='contact.php'>hier</a> om terug te gaan";
} elseif (!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$",$email)) {
if(mysql_query(query))
}
echo ("Toevoegen is gelukt!")
}
else
{
echo ("Toevoegen is mislukt, probeer nog een keer")
}
?>
// Connectie maken naar de database.
mysql_connect ("localhost","Mittche6_le","xxxx");
mysql_select_db ("Mittche6_le");
$check = ("SELECT * FROM `formulier` ");
$resultaat = mysql_query($check) or die ("Kan geen connectie vinden met de database");
$query = ("INSERT INTO `formulier` (voornaam, achternaam, email) VALUES ('$_POST['voornaam']' , '$_POST['achternaam']' , '$_POST['email']'");
$voornaam = $_POST['voornaam']
$achternaam = $_POST['achternaam']
$email = $_POST['email']
if(empty($voornaam) | empty($achternaam) | empty($email)) {
echo "Nog niet alle velden met een sterretje (*) zijn ingevuld, Klik <a href='contact.php'>hier</a> om terug te gaan";
} elseif (!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$",$email)) {
if(mysql_query(query))
}
echo ("Toevoegen is gelukt!")
}
else
{
echo ("Toevoegen is mislukt, probeer nog een keer")
}
?>
De error die ik krijg:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/Mittche6/domains/puratio.nl/public_html/voegtoe/toegevoegd.php on line 8
Iemand?:P
Gewijzigd op 01/01/1970 01:00:00 door Mittchel Van Vliet
Dit kan niet zo ^^, maar er het onderstaande van. Het is trouwens niet erg veilig, vandaar de mysql_real_escape_string.
Haal je ww even weg uit de code
Je bent ongeveer overal de puntkomma vergeten aan het eind van de regels. Verder géén backtics in je query zetten. Geen $vars nutteloos copiëren. $Vars buiten quotes houden. Als een query lukt wil dat nog niet zeggen dat er ook daadwerkelijk iets is veranderd. Script is lek -> sql-injection.
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
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
<?php
/* Errors weergeven */
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 1);
/* Connecten met DB*/
require_once "connect_db.php";
if($_SERVER['REQUEST_METHOD'] == "POST"){
/*formulier verwerken*/
$fouten = array();
if(empty($_POST['voornaam'])){
$fouten[] = "Je bent vergeten je voornaam in te vullen";
}
if(empty($_POST['achternaam'])){
$fouten[] = "Je bent vergeten je achternaam in te vullen";
}
// enzovoort
if(count($fouten) != 0){
foreach ($fouten AS $key => $value){
echo $value;
}
}
else {
//query opstellen
$sql = "INSERT INTO formulier (voornaam, achternaam, email) VALUES ('".mysql_real_escape_string($_POST['voornaam']."', '".mysql_real_escape_string($_POST['achternaam']."', '".mysql_real_escape_string($_POST['email']."')";
if(!$result = mysql_query($sql)){
trigger_error(mysql_error());
}
else{
echo 'Geweldig, inserten is gelukt!';
}
else {
//formulier tonen
echo 'Je formulier';
}
?>
/* Errors weergeven */
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 1);
/* Connecten met DB*/
require_once "connect_db.php";
if($_SERVER['REQUEST_METHOD'] == "POST"){
/*formulier verwerken*/
$fouten = array();
if(empty($_POST['voornaam'])){
$fouten[] = "Je bent vergeten je voornaam in te vullen";
}
if(empty($_POST['achternaam'])){
$fouten[] = "Je bent vergeten je achternaam in te vullen";
}
// enzovoort
if(count($fouten) != 0){
foreach ($fouten AS $key => $value){
echo $value;
}
}
else {
//query opstellen
$sql = "INSERT INTO formulier (voornaam, achternaam, email) VALUES ('".mysql_real_escape_string($_POST['voornaam']."', '".mysql_real_escape_string($_POST['achternaam']."', '".mysql_real_escape_string($_POST['email']."')";
if(!$result = mysql_query($sql)){
trigger_error(mysql_error());
}
else{
echo 'Geweldig, inserten is gelukt!';
}
else {
//formulier tonen
echo 'Je formulier';
}
?>
En hij zegt dat op line 30 ; unexpected is:O maar die is gewoon goed, toch?
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
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
<?php
/* Errors weergeven */
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 1);
/* Connecten met DB*/
require_once "connect_db.php";
if($_SERVER['REQUEST_METHOD'] == "POST"){
/*formulier verwerken*/
$fouten = array();
if(empty($_POST['voornaam'])){
$fouten[] = "Je bent vergeten je voornaam in te vullen";
}
if(empty($_POST['achternaam'])){
$fouten[] = "Je bent vergeten je achternaam in te vullen";
}
// enzovoort
if(count($fouten) != 0){
foreach ($fouten AS $key => $value){
echo $value;
}
}
else {
//query opstellen
$sql = "INSERT INTO formulier (voornaam, achternaam, email) VALUES ('".mysql_real_escape_string($_POST['voornaam']."', '".mysql_real_escape_string($_POST['achternaam']."', '".mysql_real_escape_string($_POST['email']."')";
if(!$result = mysql_query($sql)){
trigger_error(mysql_error());
}
else{
echo 'Geweldig, inserten is gelukt!';
}
}
else {
//formulier tonen
echo 'Je formulier';
}
?>
/* Errors weergeven */
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 1);
/* Connecten met DB*/
require_once "connect_db.php";
if($_SERVER['REQUEST_METHOD'] == "POST"){
/*formulier verwerken*/
$fouten = array();
if(empty($_POST['voornaam'])){
$fouten[] = "Je bent vergeten je voornaam in te vullen";
}
if(empty($_POST['achternaam'])){
$fouten[] = "Je bent vergeten je achternaam in te vullen";
}
// enzovoort
if(count($fouten) != 0){
foreach ($fouten AS $key => $value){
echo $value;
}
}
else {
//query opstellen
$sql = "INSERT INTO formulier (voornaam, achternaam, email) VALUES ('".mysql_real_escape_string($_POST['voornaam']."', '".mysql_real_escape_string($_POST['achternaam']."', '".mysql_real_escape_string($_POST['email']."')";
if(!$result = mysql_query($sql)){
trigger_error(mysql_error());
}
else{
echo 'Geweldig, inserten is gelukt!';
}
}
else {
//formulier tonen
echo 'Je formulier';
}
?>
Nu moet hij het wel doen.