html formulier met php verzenden naar database(linux)
mijn vraag is wat er fout is aan dit formulier? en of iemand weet hoe ik dit het beste kan doen? wat moet er met de rechten gebeuren.
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
//we zetten error report aan voor als er een foutje in de code zou zitten, deze kan als alles optimaal werkt uitgezet worden. Dit doe je door de 1 te veranderen in een 0.
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
//we includen het bestand config.php zodat we verbinding hebben met de database
include ("config.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //kijken of het formulier gepost is
$naam = mysql_real_escape_string($_POST['naam']);
$adres = mysql_real_escape_string($_POST['adres']);
//velden controleren
$errors = array();
if(strlen($naam) < 2) {
array_push($errors, "Je hebt geen of een te korte naam ingevuld");
}
if(strlen($naam) > 30) {
array_push($errors, "Je hebt een te lange naam ingevuld");
}
//kijken of er een naam is ingevuld, zo nee onderbreek het proces, anders ga verder
if(count($errors) >0){
foreach($errors as $error){
echo $error;
}
}
} else {
//alles mooi in de database zetten
mysql_query ("INSERT INTO offerte (naam,adres) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
}
else {
// het formulier en we zijn klaar
?>
//we zetten error report aan voor als er een foutje in de code zou zitten, deze kan als alles optimaal werkt uitgezet worden. Dit doe je door de 1 te veranderen in een 0.
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT);
//we includen het bestand config.php zodat we verbinding hebben met de database
include ("config.php");
if ($_SERVER['REQUEST_METHOD'] == 'POST') { //kijken of het formulier gepost is
$naam = mysql_real_escape_string($_POST['naam']);
$adres = mysql_real_escape_string($_POST['adres']);
//velden controleren
$errors = array();
if(strlen($naam) < 2) {
array_push($errors, "Je hebt geen of een te korte naam ingevuld");
}
if(strlen($naam) > 30) {
array_push($errors, "Je hebt een te lange naam ingevuld");
}
//kijken of er een naam is ingevuld, zo nee onderbreek het proces, anders ga verder
if(count($errors) >0){
foreach($errors as $error){
echo $error;
}
}
} else {
//alles mooi in de database zetten
mysql_query ("INSERT INTO offerte (naam,adres) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
}
else {
// het formulier en we zijn klaar
?>
<form action="registreren.php" method="post">
naam :<input type="text" name="naam" size="45">
adres : <input type="text" name="adres" size="60">
<input type="submit" value="verzenden" />
</form>
Wat gebeurt er niet wat je wel wilt?
Probeer zo duidelijk mogenlijk je vraag uit te leggen, wat je wilt, wat je geprobeerd hebt en wat niet werkt.
Dit is wat je hebt. Je doet een INSERT als er geen formulier is verzonden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// controles
}
else
{
//alles mooi in de database zetten
mysql_query ("INSERT INTO offerte (naam,adres) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
// waar hoort dit bij?
}
else
{
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// controles
}
else
{
//alles mooi in de database zetten
mysql_query ("INSERT INTO offerte (naam,adres) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
// waar hoort dit bij?
}
else
{
?>
Cake Masher op 22/02/2012 09:30:59:
Wat is nou precies je vraag?
Wat gebeurt er niet wat je wel wilt?
Probeer zo duidelijk mogenlijk je vraag uit te leggen, wat je wilt, wat je geprobeerd hebt en wat niet werkt.
Wat gebeurt er niet wat je wel wilt?
Probeer zo duidelijk mogenlijk je vraag uit te leggen, wat je wilt, wat je geprobeerd hebt en wat niet werkt.
Dit is mijn eerste post, kreeg de tip van de leraar dus weet niet precies hoe het werkt met duidelijk vermelden enzo, maar ik zal het zo goed mogelijk uitleggen.
Wanneer ik de pagina al wil laden(via localhost) dan krijg ik een fout melding(} in line 30) maar ik snap niet wat ik dus hieraan moet doen? verder heb ik hulp nodig van ervaren/meer ervaren mensen die mij kunnen vertellen hoe het moet.
Vraag: Hoe bouw ik het script zo op dat ik een mooi registratie formulier krijg en dat als ik op de knop -> verzenden/registreren klik, de gegevens geupload worden naar de database.
Middel: Html en PHP, ik gebruik een LAMP server op linux ubuntu.
Toevoeging op 22/02/2012 13:04:13:
- SanThe - op 22/02/2012 10:56:41:
Netjes scripten. Dan zie je dat de structuur niet klopt.
Dit is wat je hebt. Je doet een INSERT als er geen formulier is verzonden.
Dit is wat je hebt. Je doet een INSERT als er geen formulier is verzonden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// controles
}
else
{
//alles mooi in de database zetten
mysql_query ("INSERT INTO offerte (naam,adres) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
// waar hoort dit bij?
}
else
{
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// controles
}
else
{
//alles mooi in de database zetten
mysql_query ("INSERT INTO offerte (naam,adres) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
// waar hoort dit bij?
}
else
{
?>
Toevoeging op 22/02/2012 13:05:50:
- SanThe - op 22/02/2012 10:56:41:
Netjes scripten. Dan zie je dat de structuur niet klopt.
Dit is wat je hebt. Je doet een INSERT als er geen formulier is verzonden.
Dit is wat je hebt. Je doet een INSERT als er geen formulier is verzonden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// controles
}
else
{
//alles mooi in de database zetten
mysql_query ("INSERT INTO offerte (naam,adres) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
// waar hoort dit bij?
}
else
{
?>
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
// controles
}
else
{
//alles mooi in de database zetten
mysql_query ("INSERT INTO offerte (naam,adres) VALUES ('". $naam ."', '".$adres."')") or die (mysql_error());
echo 'Je gegevens zijn opgeslagen in de database';
}
// waar hoort dit bij?
}
else
{
?>
Wanneer moet ik dan de INSERT doen?
Serge ban op 22/02/2012 13:03:32:
Wanneer moet ik dan de INSERT doen?
Wat denk je zelf? Voordat het formulier gepost is? Zou het dan werken/zin hebben? :s
Met logisch nadenken kom je bij php al heel ver. ;-)