PHP fout, formulier doorgeven naar php mysql
Ik hoop dat ik het goed doe want het is de eerste keer op dit forum voor mij :$
Eigenlijk vind ik het niet zo netjes zo ineens maar toch vraag ik het volgende.
Ik ben vandaag eigenlijk ineens begonnen met een php script, en heb weinig ervaring hiermee. Een half jaar geleden ben ik met php begonnen maar ben toen niet ver gekomen door te weinig tijd.
Ik ben afgelopen zaterdag gevraagd om een script te schrijven om een soort sponsors te zoeken. Nu heb ik samen met w3schools bezig geweest aan een systeem en moet ik zeggen dat het me redelijk lukte, alleen wanneer ik nu mijn formulier verzend en het script wat erachter zit alles gaat versturen verstuurd hij op 1 veld na alleen maar "0" naar de database, behalve de postcode.
Nu heb ik de volgende scripts in elkaar geknutseld:
Het formulier (let niet op het html, het moet geïntegreerd worden op de bestaande website en was dit het makkelijkste.
Quote:
<form method="POST" name="Vrienden van W.A.F." action="_private/verwerken.php">
<input type="text" name="voornaam" size="50">
<input type="text" name="tussenvoegsel" size="50">
<input type="text" name="achternaam" size="50">
<input type="text" name="email" size="50">
<input type="text" name="adres" size="50">
<input type="text" name="postcode" size="50">
<input type="text" name="woonplaats" size="50">
<input type="checkbox" name="vriend" value="ja">Ik word vriend van W.A.F.
<input type="submit" value="Versturen" name="B1" style="float: left">
</form>
<input type="text" name="voornaam" size="50">
<input type="text" name="tussenvoegsel" size="50">
<input type="text" name="achternaam" size="50">
<input type="text" name="email" size="50">
<input type="text" name="adres" size="50">
<input type="text" name="postcode" size="50">
<input type="text" name="woonplaats" size="50">
<input type="checkbox" name="vriend" value="ja">Ik word vriend van W.A.F.
<input type="submit" value="Versturen" name="B1" style="float: left">
</form>
Het script om het te verzenden:
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
mysql_connect("localhost","root","");
mysql_select_db("waf");
$sql="INSERT INTO vrienden
VALUES ('$_POST[voornaam]','$_POST[tussenvoegsel]','$_POST[achternaam]',
'$_POST[email]','$_POST[adres]','$_POST[postcode]','$_POST[woonplaats]','$_POST[vriend]')";
if (!mysql_query($sql))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
?>
mysql_connect("localhost","root","");
mysql_select_db("waf");
$sql="INSERT INTO vrienden
VALUES ('$_POST[voornaam]','$_POST[tussenvoegsel]','$_POST[achternaam]',
'$_POST[email]','$_POST[adres]','$_POST[postcode]','$_POST[woonplaats]','$_POST[vriend]')";
if (!mysql_query($sql))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
?>
Mijn excuses dat ik eigenlijk een soort van jullie overval.
Weet iemand wat de fout is/ zou kunnen zijn :$
Met vriendelijke groet,
patrick
Ik denk dat je mysql datatypes niet goed staan en nog op INT staan, laat eens zien hoe je database eruit ziet in phpmyadmin.
Er staat achter de rijnaam "int(75)"
Van 75 weet ik dat het maximaal 75 simbolen zijn :p maar van int weet ik niets :S
Stuur eens een screenshout van je mysql tabellen
En klein vraagje tussendoor
Weet je eigenlijk wel waar je mee bezig bent want het eve. Beginnen met php bestaag niet
Je moet weten wat je aan het doen bent
En denk aan mysql injectie
Toevoeging op 07/11/2010 22:19:35:
Probeer eens varchar
Gewijzigd op 07/11/2010 22:18:50 door Jordi Kroon
Ik weet nat even aan php beginnen niet bestaat, ik had in gedachten vanaf morgen eraan te gaan beginnen alleen toen kwam er iemand, kan je dit zo snel mogelijk doen.
Ik ken de algemene lijnen, maar zoals je al zegt, mysql injectie weet ik niet van wat het is.
Met vriendelijke groet,
Patrick Boertje
Database is phpmyadmin
Verder beveel ik je zeker aan om het op te zoeken anders loop je het risico dat je gehackt word
Dit werkt het bete met mysql_real_escape_string
Sorry, soms denk ik het helemaal uit maar communiceer ik het niet goed.
Ik ga hier zeker voor zoeken, en morgen begin ik vanaf het begin :P dat is wel zo makkelijk.
Hebben jullie verder nog tips die ik hierbij in moet plaatsen?
Ik was zelf nog van plan er iets in te bouwen zodat alles ingevuld moet zijn behalve het tussenvoegsel en dat de laatse aangevinkt moet zijn.
Met vriendelijke groet,
Patrick Boertje
Open paint control V
Opslaan
Ga naar tinypic.nl
Upload je plaatje
Zet het hierneer
Maar zoals ik net al zei
Probeer eens varchar ipv int
Ik heb het nu naar varchar aangepast en het werkt inderdaad.
Heb je verder nog eventuele tips die ik er nog in kan verwerken ??
Gewijzigd op 07/11/2010 22:34:10 door Pipo Andries
Zo maak je het ophalen makkelijker
Waar wil je het script voor gebruiken?
Waarom een int van 75 voor postcode? Bestaat uit niet meer dan 4 cijfers?
Gewijzigd op 07/11/2010 22:41:10 door Obelix Idefix
Hoe kan ik dit het makkelijkste toevoegen, ik heb er ook over nagedacht maar ik wist zo snel niet hoe.
@Obelix en Idefix
Mijn velden heb ik al aangepast, dat werkt nu. En voor die dingen moet ik het nog aanpassen, het waren de rauwe dingen die ik even op wou zetten, nu ga ik voor de mysql injectie zorgen dat dat niet kan gebeuren, en alles nog verfijnen.
Met vriendelijke groet,
Patrick Boertje