Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[PHP, SQL] error bij invoegen formdata in mysql database

InZane
3 antwoorden
  • Beste forumleden,

    Ik ben bezig met het maken van een website voor een plaatselijke kapsalon.

    Bij deze site is het noodzakelijk dat gebruikers zich kunnen inschrijven voor een nieuwsbrief.

    echter hierbij heb ik een probleem.


    allereerst de website.. Een test prototype staat op mijn domein: www.planetdust.nl/active (nog niet 100% crossbrowser)

    de 2 betreffende pagina's zijn:
    -index.html (hierop staat het formulier)
    -nieuwsbrief.php ( hier wordt de inschrijving verwerkt)


    allereerst mijn formulier:



    [code:1:2590d9bb47]
    <form name="form1" id="form1" method="post" action="nieuwsbrief.php">
    <table width="300" border="0">
    <tr>
    <td><p class="style1"><strong>Naam</strong></p></td>
    <td><input name="naam" type="text" id="naam" size="40" maxlength="40" /></td>
    </tr>
    <tr>
    <td><p class="style1"><strong>Email</strong></p></td>
    <td><input name="email" type="text" id="email2" size="40" maxlength="40" /></td>
    </tr>
    <tr>
    <td><input type="submit" name="Submit" value="Verzend" /></td>

    </tr>
    </table>
    </form>
    [/code:1:2590d9bb47]

    de broncode van nieuwsbrief.php volgt nu:
    [code:1:2590d9bb47]
    <?php
    // variabelen initialiseren:
    $username = "username";
    $password = "wachtwoord";
    $host="localhost";
    $dbnaam="active";
    $db=mysql_connect("localhost", "username", "wachtwoord" ) or die (mysql_error());
    mysql_select_db($dbnaam, $db) or die (mysql_error());

    if (empty($_POST)){
    // eerst controleren of pagina wel is aangeroepen vanuit formulier
    echo("U heeft geen gegevens ingevuld");
    exit();
    }else{
    // OK, Query opbouwen met variabelen in $_POST
    $query = "INSERT INTO nieuwsbrief (naam, email)";
    $query .= "VALUES ('";
    $query .= $_POST["naam"] ."', '" ;
    $query .= $_POST["email"] ."', '" ;
    $result = mysql_query($query) or die ("FOUT: " . mysql_error());
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <title>Kapsalon Active Echt</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="css/style2.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
    <!–
    .style1 {color: #FF9900}
    –>
    </style>
    </head>

    <body>
    <div id="holder">
    <div id="logo">
    <div align="center"></div>
    </div>
    <div id="nav">
    <ul>
    <li><a href="index.html">Home |</a> <a href="informatie.html">Informatie | </a><a href="team.html">Ons Team |</a></li>
    <li><a href="product.html">Productlijn |</a></li>
    <li><a href="foto.html">Foto's |</a></li>
    <li><a href="contact.html">Contact</a></li>
    </ul>
    </div>
    <div id="fotolinks">
    <h1>::Nieuwsbrief</h1>


    <h2>Uw gegevens zijn succesvol toegevoegd aan onze database.</h2>
    <p>
    <?php
    echo("De volgende gegevens zijn ingevoegd:<br>
    ");
    echo("naam: <b>". $_POST["voornaam"] . "</b><br>");
    echo("email: <b>". $_POST["achternaam"] . "</b><br>");
    ?>
    </p>




    </h2>
    </div>
    <div id="content"></div>
    <div id="footer2">&copy; Active kappers </div>
    <div id="footer">Designed by Tony Schreurs </div>
    </div>
    </body>
    </html>
    [/code:1:2590d9bb47]


    steeds bij het submitten van het formulier volgt de volgende melding:

    FOUT: You have an error in your SQL syntax near ''' at line 1[b:2590d9bb47]

    heeft iemand een idee of een tip waar deze fout aan kan liggen.. het ziet er naar uit alsof ik ergens een syntaxis fout gemaakt heb.. maar ik zie hem zelf nergens zitten..


    alvast vriendelijk bedankt voor evt suggesties :)[/b:2590d9bb47]
  • Laat de query eens uitprinten voordat ie uitgevoerd wordt. Maakt vaak veel duidelijk. Het sterft van de aanhalingstekens, dus kan er best eens ergens een te veel of te weinig staan.
  • dat had ik idd beter eerst kunnen doen ja..

    ik kwam erachter dat de volgende regel fout was.

    [code:1:95e6b7d498]
    $query .= $_POST["email"] ."', '" ;
    [/code:1:95e6b7d498]

    de goede regel moest zijn:

    [code:1:95e6b7d498]
    $query .= $_POST["email"] ."');" ;
    [/code:1:95e6b7d498]

    Uiteindelijk ben ik er via trial en error uitgekomen. Ik ben absoluut niet into scripting etc.

    Zelfs deze hele code heb ik via een boek van me.. (php4.2 van kassenaar)

    zodoende heb ik stuk code uit het boek ge-edit naar hetgeen dat ik nodig had.

    toch bedankt :)

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.