Avatar billede xsix Nybegynder
15. juli 2007 - 23:05 Der er 16 kommentarer og
1 løsning

Gæstebogs fejl

Jeg har lige lavet en tagwall efter en tutorial, men hver gang man tilføjer en meddelelse, kommer det ikke frem i gæstebogen, og kan heller ikke finde det i databasen.
Jeg har siddet og kigget på det i en times tid, og jeg kan slet ikke se hvad der kan være galt, håber der er nogen af jer som kan.

Jeg benytter mig af 3 sider.

add.php (det er den side jeg bruger til at tilføje nye beskeder:

<?php
    require_once('connect.php');
   
    if (isset($_POST['submitBtn'])) {
        $name    = (isset($_POST['name'])) ? addslashes(htmlentities($_POST['name'])) : '' ;
        $comment  = (isset($_POST['comment'])) ? addslashes(htmlentities($_POST['comment'])) : '' ;
        $actDate  = date("d-m-Y H:i:s");
       
        //Minimum name and comment length.
        if ((strlen($name) > 2) && (strlen($comment) > 5)){
            $sql = "INSERT INTO guestbook (name,text,insertdate) VALUES (";
            $sql .= "'".$name."','".$comment."','".$actDate."')";
            mysql_query($sql);
        }
       
        header("Location: guestbook.php");
    }
    else {

?>

  <h1>Add comment</h1>
  <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="gbook">
    <table>
      <tr><th>Name:</th><td><input name="name" /></td></tr>
      <tr><th>Comment:</th>
          <td><textarea name="comment" cols=30 rows=5></textarea></td>
      </tr>
      <tr><td colspan="2" align="center">
          <input type="submit" name="submitBtn" value="Add comment"/></td>
      </tr>
    </table> 
</form>
<?php } ?>   




connect.php
Det er den side jeg bruger til databaseforbindelse, men den virker fint, kommer ingen fejl frem, og har brugt den før hvor den virkede.




guestbook.php (det er så selve gæstebogen)

<?php
    require_once('connect.php');

    $sql = "SELECT * FROM guestbook ORDER BY insertdate DESC";
    $result = mysql_query($sql);
?>


    <a href="add.php">Add a comment</a>
    <h1>Guestbook</h1>
    <br/><table>   
<?php while ($row = mysql_fetch_assoc($result)) { ?>
        <tr><th><?php echo $row['name']." - ".$row['insertdate']; ?></th></tr>
        <tr><td><?php echo nl2br($row['text']); ?></td></tr>
<?php } ?>
    </table>   



Og her er et billed af min database:
http://www.peecee.dk/uploads/0707/db.jpg
Avatar billede erikjacobsen Ekspert
15. juli 2007 - 23:07 #1
Tutorial?? Ikke for noget, men det sted du har fundet den, skal du nok generelt holde dig fra - med mindre du har masser af tid til at finde deres fejl.

Start med at ændre

    mysql_query($sql);

til

    mysql_query($sql) or die(mysql_error();

og se hvad du får af fejl.
Avatar billede erikjacobsen Ekspert
15. juli 2007 - 23:07 #2
Ok, skal være:

    mysql_query($sql) or die(mysql_error());
Avatar billede xsix Nybegynder
15. juli 2007 - 23:18 #3
Har ellers haft meget glæde af det sted jeg fandt den, alt har virket fint indtil den her.

Sql Error siger det her:
Unknown column 'name' in 'field list'
Avatar billede xsix Nybegynder
15. juli 2007 - 23:18 #4
Haha hvor er jeg dum, jeg skrev navn på dansk og ikke name i databasen :S
Avatar billede xsix Nybegynder
15. juli 2007 - 23:20 #5
Nu virker det, men ved datoen skriver den
0000-00-00 00:00:00 hver gang
Avatar billede erikjacobsen Ekspert
15. juli 2007 - 23:26 #6
Man kan lære dårlige vaner, som hævner sig siden hen.

Feltet er vel en DATETIME ?  Så skal du indsætte som:  2007-07-15 23:29:31
Avatar billede xsix Nybegynder
15. juli 2007 - 23:35 #7
Ja det er en datetime.
Avatar billede xsix Nybegynder
16. juli 2007 - 13:59 #8
Er der nogen som kan se hvorfor den skriver 0000-00-00 00:00:00 hver gang ved dato og tidspunkt?
Avatar billede masik7 Nybegynder
16. juli 2007 - 15:53 #9
Enten hvis du ikke indsætter noget i feltet, eller det er det forkerte format
Avatar billede masik7 Nybegynder
16. juli 2007 - 16:54 #10
Prøv med  date("Y-m-d H:i:s");
Avatar billede windcape Praktikant
16. juli 2007 - 16:57 #11
Avatar billede xsix Nybegynder
16. juli 2007 - 18:00 #12
Tusind tak masik7, det virkede :D

Smid et svar og du får pointene.
Avatar billede windcape Praktikant
16. juli 2007 - 18:08 #13
*siger noget om hvor dumt date() er i forhold til NOW()*
Avatar billede xsix Nybegynder
16. juli 2007 - 19:32 #14
Har godt hørt noget om at now() skulle være bedre, men min database er lavet til date() tror jeg, og jeg er stadig nybegynder, så er ikke meget for at lave om på når nu det virker.
Avatar billede windcape Praktikant
16. juli 2007 - 22:14 #15
nej, din database er lavet til NOW() hvis du har brugt et DATETIME felt.

At bruge php til at generere dato'en er bare unødvendig overload, og rodet kode.
Avatar billede masik7 Nybegynder
16. juli 2007 - 23:18 #16
Svar ;-). Bare del pointene mellem mig og windcape, hvis det er
Avatar billede windcape Praktikant
16. juli 2007 - 23:19 #17
nej tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester