Avatar billede Hannahh Nybegynder
21. april 2010 - 12:39 Der er 4 kommentarer

Blogsystem med kommentarer - kommentarformular forbinder ikke til ID?

Jeg er i gang med et simpelt blogsystem i PHP/MySql.
Jeg har to tabeller i min database: tblBlog og tblBlog_comments.

Blogsystemet fungerer sådan, at man på forsiden ser alle blogindlæg som en lang liste, hvor der er et link "Kommentarer ()", hvori paranteserne er angivet hvor mange kommentarer der er til. Hvis man klikker på "Kommentarer ()" kommer man ind - via et id - på en side hvor man ser det ene blogindlæg og de kommentarer der hører til.

Det hele er bundet sammen med id'et blogid.

Mit problem er, når jeg poster en kommentar i min kommentar formular, får den alle oplysninger med - Navn, Email, Tekst, Dato, men ikke blogid, som afgører i hvilket blogindlæg kommentaren skal vises.
Det virker dog upåklageligt hvis jeg manuelt indsætter kommentarer i PHPmyadmin (online site med oversigt over ens databaser).

Jeg har forsøgt med næsten alle metoder, men intet har virket, når man poster en kommentar modtager den ikke det id, der ellers er angivet i adresselinien (f.eks: post.php?blogid=2).

Koderne

comment.php:

<?php
include('connect.php');
//i connect.php er der oprettet forbindelse til databasen

$blogid = $_GET[blogid];
$select = mysql_query("SELECT * FROM tblBlog WHERE fldBlogId = '$blogid'") or die(mysql_error());
$vis = mysql_fetch_array($select);

    print "<div style='border: 2px solid black'>";
    print "<h4>" . $vis['fldOverskrift'] . "</h4>";
    print "<p>" . $vis['fldTekst'] . "</p>";
    print "<p style='color:gray;'>" . $vis['fldDatoTid'] . "Blogid:" . $vis['fldBlogId'] . "</p>";
    print "</div>";
    print "<br />";

$select_comments = mysql_query("SELECT * FROM tblBlog_comments WHERE fldBlogId = '$blogid'") or die(mysql_error());

while($row = mysql_fetch_array($select_comments))
{
    print "<h4>" . $row['fldNavn'] . "</h4>";
    print "<h4>" . $row['fldMail'] . "</h4>";
    print "<p>" . $row['fldComment'] . "</p>";
    print "<p style='color:gray;'>" . $row['fldDatoTid'] . "</p>";
    print "<hr />";

}
?>

<form action="post.php?mode=comm" method="post">
//her er angivet post-action, som refererer til post.php
Navn: <input type="text" name="navn" /><br>
E-mail: <input type="text" name="mail" /><br>
<textarea name="comment">
Avatar billede showsource Seniormester
21. april 2010 - 12:44 #1
?
<input type="hidden" name="blogid" value="". $blogid .""/>
Avatar billede Hannahh Nybegynder
21. april 2010 - 12:51 #2
Altså sammen med resten af formularen?
Avatar billede showsource Seniormester
21. april 2010 - 15:08 #3
Ja, i den formular hvor man kan poste en kommentar.

Jeg er ikke så meget for at du ikke tjekker blogid, samt undlader at bruge ' eller "

Og at du ikke tjekker der rent faktisk hentes et row fra db.
På samme måde ville jeg ved post af kommentar, starte med at tjekke der rent faktisk er et tilsvarende id i db.
Avatar billede Hannahh Nybegynder
22. april 2010 - 08:55 #4
Jeg er heller ikke helt færdig med systemet endnu - sikkerhedstjek o.l. vil jeg putte ind bagefter, nu skal jeg først have det til at virke.
Men prøvede din ide, og det virkede at indsætte blogid'et via formularen :D
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

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