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

gastenboek computotaal 12

pinquin2804
20 antwoorden
  • Ik heb het gastenboek gemaakt dat in nr 12 staat, maar hij geeft bij mij een fout aan in regel 23 het voorbeeld is te zien op www.pinquin.nl en dan gastenboek. Dit is het script:

    <html>
    <body>
    <center><h1>Gastenboek</h1></center>
    <form action="?pagina=plaatsbericht" method="post">
    <table border="0">
    <tr><td>Naam:&nbsp;</td><td><input type="text" name="afzender"></td></tr>
    <tr><td>Email:&nbsp;</td><td><input type="text" name="email"></td></tr>
    <tr><td>URL:&nbsp;</td><td><input type="text" name="url"></td></tr>
    <tr><td>Bericht:&nbsp;</td><td><textarea name="bericht" cols="40" rows="5"></textarea></td></tr>
    <tr><td><input type="submit" value="plaats bericht"></td><td><input type="reset" value="reset"></td></tr>
    </table>
    </form>
    <br>

    <?php
    $db = mysql_connect("localhost", "*******", "******");
    mysql_select_db("********");

    $berichten_query = mysql_query("
    SELECT afzender, email, url, bericht, berichtdatum FROM gastenboek
    ORDER BY berichtdatum DESC LIMIT 30");

    :o !!!regel 23!!! while ($record = mysql_fetch_assoc ($berichten_query))
    {
    echo("Afzender: {$record['afzender']}<br>");
    if(strlen($record['email']) > 0)
    {
    echo("Email: {$record['email']}<br>");
    }
    if(strlen($record['url']) > 0)
    {
    echo("URL: <a href='{$record['url']}'>{$record['url']}</a><br>");
    }
    echo("Bericht: {$record['bericht']}<br>");
    echo("Berichtendatum: {$record['berichtdatum']}<br>");
    echo("<br>");
    }
    ?>
    </body>
    </html>

    is er iemand die mij hier mee kan helpen?

    bij voorbaat dank,

    pinquin2804
  • Net onder regel 23 staat:

    [code:1:b06576509f]
    {
    echo("Afzender: {record['afzender']}<br>");
    if(strlen($record['email']) > 0)[/code:1:b06576509f]

    Maak daar eens:
    [code:1:b06576509f]
    {
    echo("Afzender: {$record['afzender']}<br>");
    if(strlen($record['email']) > 0)
    [/code:1:b06576509f]

    van. Je was bij de record het $ teken gebruikt. Ik weet niet of het nu wel werkt, maar je weet maar nooit.
  • Helaas…. :( dit was niet de fout die ik heb gemaak.

    toch bedankt.
  • gastenboek[u:be5cae00b7][i:be5cae00b7][b:be5cae00b7]z[/b:be5cae00b7][/i:be5cae00b7][/u:be5cae00b7] ?
  • Dank je wel, maar ook dit was helaas niet de fout. :(
  • Heb je al eens geprobeerd om je query rechtstreeks uit te voeren op de database? Wat krijg je dan terug?
    Of om een query te gebruiken die alleen constante waarden retourneert? (bijv: SELECT 'test', 'test@test.nl', 'http://test.nl/', 'bla', '2003-12-02'[/color:25e0ba7369]).
  • mss dat er wat fout is met je db. Heb je al wel deze query uitgevoerd?

    [code:1:ce6dd7ac17]CREATE TABLE berichten (
    bericht_is INT AUTO_INCREMENT PRIMARY KEY,
    afzender VARCHAR(50),
    email VARCHAR(50),
    url VARCHAR(50),
    bericht TEXT,
    berichtdatum DATETIME
    );[/code:1:ce6dd7ac17]

    [code:1:ce6dd7ac17]INSERT INTO berichten
    (afzender, email, url, bericht, berichtdatum)
    VALUES
    ('piet', 'piet@piet.nl', 'http://www.piet.nl', 'een test bericht', NOW());

    enz…[/code:1:ce6dd7ac17]
  • :o[code:1:7f04b6490c]$berichten_query = mysql_query("
    SELECT afzender, email, url, bericht, berichtdatum FROM gastenboek
    ORDER BY berichtendatum DESC LIMIT 30");[/code:1:7f04b6490c]Waarom staat hier eigenlijk één maal bericht[b:7f04b6490c]en[/b:7f04b6490c][/color:7f04b6490c]datum en een maal berichtdatum!… :wink:
  • das een goeie!

    nog niet gezien
  • [quote:eb66c1e419="stierenoog"]mss dat er wat fout is met je db. Heb je al wel deze query uitgevoerd?

    [code:1:eb66c1e419]CREATE TABLE berichten (
    bericht_is INT AUTO_INCREMENT PRIMARY KEY,
    afzender VARCHAR(50),
    email VARCHAR(50),
    url VARCHAR(50),
    bericht TEXT,
    berichtdatum DATETIME
    );[/code:1:eb66c1e419]

    [code:1:eb66c1e419]INSERT INTO berichten
    (afzender, email, url, bericht, berichtdatum)
    VALUES
    ('piet', 'piet@piet.nl', 'http://www.piet.nl', 'een test bericht', NOW());

    enz…[/code:1:eb66c1e419][/quote:eb66c1e419]

    De query is goed uitgevoerd en ik heb ook ook gegevens ingevoerd, maar er komt helemaal niets te staan behalve dan de fout melding.
  • [quote:c5b65908e3="jossan"]:o[code:1:c5b65908e3]$berichten_query = mysql_query("
    SELECT afzender, email, url, bericht, berichtdatum FROM gastenboek
    ORDER BY berichtendatum DESC LIMIT 30");[/code:1:c5b65908e3]Waarom staat hier eigenlijk één maal bericht[b:c5b65908e3]en[/b:c5b65908e3][/color:c5b65908e3]datum en een maal berichtdatum!… :wink:[/quote:c5b65908e3]

    :oops: typ foutje. thnx
  • [quote:6445659aea]typ foutje. thnx[/quote:6445659aea]

    maar is dat ook de oplossing???
  • Ik zie zojuist dat het opgelost is :D
  • de fout is nu weg, maar als ik het formulier invul, dan geeft ie aan dat ik geen naam heb ingevult, wat kan hier het probleem zijn.
    Hier de plaatsbericht.php:

    <?php
    if(strlen($_post['afzender']) < 1 || strlen($_post['bericht']) < 1)
    {
    echo("Je hebt geen naam of bericht opgegeven. <a href='?pagina=gastenboek'>Terug naar het gastenboek</a>");
    }
    else
    {
    $db = mysql_connect("localhost", "********", "*******");
    mysql_select_db("******");

    $afzender = mysql_escape_string(strip_tags($_post['afzender']));
    $email = mysql_escape_string(strip_tags($_post['email']));
    $url = mysql_escape_string(strip_tags($_post['url']));
    $bericht = mysql_escape_string(strip_tags($_post['bericht']));

    mysql_query("
    INSERT INTO gastenboek
    (afzender, email, url, berichten, berichtendatum)
    VALUES
    ('($afzender)', '($email)', '($url)', '($bericht)', NOW())
    ");

    header ("location: http://www.pinquin.nl/?pagina=gastenboek");
    }
    ?>
  • [code:1:a64c14dd7c] mysql_query("
    INSERT INTO gastenboek
    (afzender, email, url, berichten, berichtendatum)
    VALUES
    ('($afzender)', '($email)', '($url)', '($bericht)', NOW())
    "); [/code:1:a64c14dd7c]

    verander in
    [code:1:a64c14dd7c] mysql_query("
    INSERT INTO berichten
    (afzender, email, url, bericht, berichtdatum)
    VALUES
    ('($afzender)', '($email)', '($url)', '($bericht)', NOW())
    "); [/code:1:a64c14dd7c]

    helpt mss

    Daardoor kan je wss ook niet posten nu….
  • [quote:54914169d2="Annie"]Heb je al eens geprobeerd om je query rechtstreeks uit te voeren op de database? Wat krijg je dan terug?
    Of om een query te gebruiken die alleen constante waarden retourneert? (bijv: SELECT 'test', 'test@test.nl', 'http://test.nl/', 'bla', '2003-12-02'[/color:54914169d2]).[/quote:54914169d2]

    hij geeft alleen de berichten weer die ik met sql heb ingevoerd. krijg geen foutmeldingen meer alleen er kan geen bericht worden ingevoerd
  • [quote:a7111fa0af="stierenoog"][code:1:a7111fa0af] mysql_query("
    INSERT INTO gastenboek
    (afzender, email, url, berichten, berichtendatum)
    VALUES
    ('($afzender)', '($email)', '($url)', '($bericht)', NOW())
    "); [/code:1:a7111fa0af]

    verander in
    [code:1:a7111fa0af] mysql_query("
    INSERT INTO berichten
    (afzender, email, url, bericht, berichtdatum)
    VALUES
    ('($afzender)', '($email)', '($url)', '($bericht)', NOW())
    "); [/code:1:a7111fa0af]

    helpt mss

    Daardoor kan je wss ook niet posten nu….[/quote:a7111fa0af]

    Ik heb een nieuwe table gemaakt (berichten) heb ik ook iets ingezet en in plaatsbericht.php en gastenboek.php
    [code:1:a7111fa0af]INSERT INTO berichten[/code:1:a7111fa0af]
    en
    [code:1:a7111fa0af]SELECT afzender, email, url, bericht, berichtdatum FROM berichten
    ORDER BY berichtdatum DESC LIMIT 30");[/code:1:a7111fa0af]
    veranderd, maar er kan nog steeds niets worden gepost
  • Allereerst. Moet het niet $_POST zijn in plaats van $_post?

    Ten tweede. Probeer bij problemen eerst een paar standaard debugtechnieken om het probleem te lokaliseren.
    In dit geval: je geeft aan dat je de melding krijgt dat de naam of het bericht niet is ingevuld. Een aantal mogelijke aanknopingspunten:
    [list:84c1a627e7]
    [*:84c1a627e7]Schrijf de inhoud van de variabelen in kwestie naar het scherm(bijv. [i:84c1a627e7]$_POST['afzender'][/i:84c1a627e7]), zodat je kan controleren of er ook iets in zit. Of print de complete collectie (print_r($_POST)).
    [*:84c1a627e7]Controleer de method van je <form>. Is deze POST of GET? M.a.w. hoe krijgt je script zijn input?
    [*:84c1a627e7]Controleer de namen van je form-inputs (let op case-sensitivity)
    [*:84c1a627e7]Kijk in je code of er bewerkingen zijn op de variabelen die van invloed kunnen zijn. Is dit het geval, schakel deze dan tijdelijk uit of geef een waarde terug waarvan het gedrag bekend is.
    [/list:u:84c1a627e7]
  • Bedankt voor de tips :D
  • maar gek genoeg werkt het nog steeds niet. :-?

Beantwoord deze vraag

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