Bekijk Volledige Versie : [php - mysql] fout met schrijven naar database
Hallo,
Ik ben bezig met inschijven.php , maar hij zet de gegevens niet in de
database. Wie kan mij helpen? Dit is het scriptje:
<?php
include "config.php";
$gebruikersnaam = $_POST[gebruikersnaam];
$email = $_POST[email];
$teamnaam = $_POST[teamnaam];
$teambaas = $_POST[teambaas];
$gebdagen = $_POST[gebdagen];
$gebmaanden = $_POST[gebmaanden];
$gebjaren = $_POST[gebjaren];
$wachtwoord = $_POST[wachtwoord2];
$wachtwoord1 = $_POST[wachtwoord1];
$wachtwoord2 = $_POST[wachtwoord2];
if ($wachtwoord1 == $wachtwoord2) {
$sql = "INSERT INTO 'gebruikers' ('id', 'gebruikersnaam', 'email',
'teamnaam', 'teambaas', 'gebdagen', 'gebmaanden', gebjaren, 'wachtwoord')
VALUES ('', '$gebruikersnaam', '$email', '$teamnaam', '$teambaas',
'$gebdagen', '$gebmaanden', '$gebjaren' '$wachtwoord');";
mysql_query($sql) or die("Er zijn problemen met de mysql database. Probeer
het op een ander moment opnieuw.");
echo "Het aanmelden is gelukt!";
}
else {
echo "Wachtwoord is niet hetzelfde!";
}
?>
Met vriendelijke groet,
Tim
Arnoud Galactus Engelfriet
21/09/03, 17:45
In article <bkkfjc$n1t$1@news.hccnet.nl>,
LinkWeb <timottens@hotmail.com> wrote:
>Ik ben bezig met inschijven.php , maar hij zet de gegevens niet in de
>database. Wie kan mij helpen? Dit is het scriptje:
><?php
>include "config.php";
>
>$gebruikersnaam = $_POST[gebruikersnaam];
>$email = $_POST[email];
Ik neem aan dat je 'in het echt' wel enige check doet of er
geen rare dingen in die variabelen staan. Vertrouw nooit iets
dat via het internet je script in komt.
>if ($wachtwoord1 == $wachtwoord2) {
>$sql = "INSERT INTO 'gebruikers' ('id', 'gebruikersnaam', 'email',
>'teamnaam', 'teambaas', 'gebdagen', 'gebmaanden', gebjaren, 'wachtwoord')
>VALUES ('', '$gebruikersnaam', '$email', '$teamnaam', '$teambaas',
>'$gebdagen', '$gebmaanden', '$gebjaren' '$wachtwoord');";
Als je enkele aanhalingstekens gebruikt, expandeert PHP niet
wat er daartussen staat. Je probeert dus nu de letterlijke
tekst "$gebruikersnaam" in het veld 'gebruikersnaam' te stoppen,
in plaats van de gebruikersnaam die opgegeven is.
Bovendien meen ik me te herinneren dat je met auto_increment
(ik neem aan dat die 'id' van jou auto_increment is) niets
hoeft te doen. Laat 'm dus gewoon weg in plaats van hem als
de lege string op te geven. Volgens mij heb je zo juist *geen*
auto_incremented ID maar steeds dezelfde ID met waarde ''.
Kun je anders uitleggen wat je probleem is? Wat gebeurt er
en hoe ziet je database er uit na die query?
Arnoud
--
Arnoud Engelfriet, Dutch patent attorney - Speaking only for myself
Patents, copyright and IPR explained for techies: http://www.iusmentis.com/
"Arnoud "Galactus" Engelfriet" <galactus@stack.nl> schreef in bericht
news:bkkguj$1l1e$1@toad.stack.nl...
> In article <bkkfjc$n1t$1@news.hccnet.nl>,
> LinkWeb <timottens@hotmail.com> wrote:
[knip]
> Kun je anders uitleggen wat je probleem is? Wat gebeurt er
> en hoe ziet je database er uit na die query?
Er wordt helemaal niks in de database gezet.
Arnoud Galactus Engelfriet
21/09/03, 20:00
In article <bkklkf$82t$1@news.hccnet.nl>,
LinkWeb <timottens@hotmail.com> wrote:
>"Arnoud "Galactus" Engelfriet" <galactus@stack.nl> schreef in bericht
>news:bkkguj$1l1e$1@toad.stack.nl...
>> Kun je anders uitleggen wat je probleem is? Wat gebeurt er
>> en hoe ziet je database er uit na die query?
>
>Er wordt helemaal niks in de database gezet.
En wat gebeurde er toen je die enkele quotes verving door
dubbele in de query?
Doe eens
echo $query;
direct voor je aanroep van mysql_query. Dan zie je wat je script
in de database zou willen stoppen.
Arnoud
--
Arnoud Engelfriet, Dutch patent attorney - Speaking only for myself
Patents, copyright and IPR explained for techies: http://www.iusmentis.com/
Maarten Wierda
21/09/03, 21:00
LinkWeb wrote:
> $gebruikersnaam = $_POST[gebruikersnaam];
Ik raad aan iets doen als
if (!empty(trim($_POST["gebruikersnaam"]))) // let op de quotes
{
$gebruikersnaam = $_POST["gebruikersnaam"];
}
En echo mysql_error() eens in die();
--
Cheers, Maarten Wierda
Q: What do you call someone who hangs around with musicians?
A: A drummer.
Daniel Tryba
22/09/03, 14:15
Arnoud "Galactus" Engelfriet <galactus@stack.nl> wrote:
>>$sql = "INSERT INTO 'gebruikers' ('id', 'gebruikersnaam', 'email',
>>'teamnaam', 'teambaas', 'gebdagen', 'gebmaanden', gebjaren, 'wachtwoord')
>>VALUES ('', '$gebruikersnaam', '$email', '$teamnaam', '$teambaas',
>>'$gebdagen', '$gebmaanden', '$gebjaren' '$wachtwoord');";
^?
De OP zou er goed aan doen om de foutmelding te onderzoeken welke mysql
terug stuurd, stop dus een mysql_erro() bij die die();
> Als je enkele aanhalingstekens gebruikt, expandeert PHP niet
> wat er daartussen staat. Je probeert dus nu de letterlijke
> tekst "$gebruikersnaam" in het veld 'gebruikersnaam' te stoppen,
> in plaats van de gebruikersnaam die opgegeven is.
Jamaar, de OP gebruikt toch ook " om de string samen te stellen.
$foo='bar';
"'$foo'" => 'bar'
'"$foo"' => '"foo"'
--
Daniel Tryba