Avatar billede illuzion Nybegynder
22. april 2005 - 01:34 Der er 7 kommentarer og
1 løsning

Mit script driller, hvad er fejlen?

Jeg sidder hed og roder med et nyheds system til min side.. Det er ikke noget problem at tilføje nyheder, og vise nyhederne. Men lige så snart jeg prøver at koble mit kommentar system til, går den helt galt.
På forsiden bliver alle nyheder vist, ved hver nyhed er der så et link til en side hvor man kun skal kunne se den specifikke nyhed, og med mulighed for at kommentere den.

/Siden kan ses her http://illuzion.wido.dk/test/cssproject/

Forsiden:
<?
include("inc.config.php");
include("functions.php");
?>
<?
include("functions.php");
//viser gemte nyheder
$result = mysql_query("SELECT * FROM `news` ORDER BY idx DESC");
while($row = mysql_fetch_array($result)) {

echo('<div id="news">
<div class="news">
<h2><p class="nlink"><a href="?id=full.news&idx=' . $row[idx] . '">' . $row[title] . '</a></p></h2>
    <p class="boks">' . $row[content] . '</p>
    </div>
    <p class="ndato">'. strftime("%d/%m-%y - %H:%M", $row[dato]) . ' | <span class="nlink"><a href="?id=full.news&idx=' . $row[idx] . '">Kommentarer (' . $row[comments] . ')</a></span></p>
</div>');
}
?>

Nyhed med kommentar system:
<?
include("inc.config.php");
include("functions.php");
?>
<?
$result = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM news WHERE idx=".$_GET['idx']."");
while($row = mysql_fetch_array($result)) {
//viser gemte nyheder
echo('<div id="news">
<div class="news">
<h2>' . $row[title] . '</h2>
    <p class="boks">' . $row[content] . '</p>
    </div>
    <p class="ndato">'. strftime("%d/%m-%y - %H:%M", $row[dato]) . ' | <a href="?id=full.news&idx=' . $row[idx] . '">Kommentarer (' . $row[comments] . ')</a></p>
</div>');

//viser gemte kommentarer
$result = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM comments WHERE parent=".$_GET['idx']." ORDER BY id DESC");
while ($row = mysql_fetch_assoc($result)) {
echo('<div id="comment">
<p class="id">' . $row[idx] . '.
<span class="navn"><a href=' . $row[hp] . '>' . $row[navn] . '</a> sagde: </span></p><p class="besked">
' . $row[content] . ' </p><p class="dato">'. strftime("%d/%m-%y - %H:%M", $row[dato]) . '</p></div>
');
}
}
?>

<br /><br />
<a id="form"></a>
<form  method="POST" action="newsform.php">
<input type="hidden" name="referer" value="comment">
<input type="hidden" name="parent" value="<?php echo $_GET['idx']; ?>">
 
  <input class="input" type="text" name="navn" size="25" /> Navn<br />
 
  <input class="input" type="text" name="email" size="25" /> Email (Bliver ikke vist, er kun til validation)<br />
 
  <input class="input" type="text" name="hp" size="25" /> Hp<br />
 
  <textarea class="textarea" rows="8" name="hilsen" cols="50"></textarea>
  <br />
  <br />
  <input class="submit" type="submit" value="Submit" name="submit" />
</form>

Formen som smider nyheden i en mysql tabel:
<?
include("inc.config.php");
include("functions.php");
?>
<?

if($_POST['referer'] == 'tilfoj') {
$navn = $_POST['navn'];
$title = $_POST['title'];
$musik = $_POST['musik'];
$image = $_POST['image'];
$parent = $_POST['parent']
$content = stripslashes(nl2br($_POST['content']));
$dato = time();

mysql_query("INSERT INTO `news` (`navn`,`title`,`content`,`dato`, `musik`, `image`, `parent`) VALUES ('" . $navn . "','" . $title . "','" . $content . "','" . $dato . "','" . $musik . "','" . $image . "','" . $parent . "')");
header("Location: /");
}
?>

<?

if($_POST['referer'] == 'comment' && $_POST['email'] != "") {
        $email=trim($email);
        $s=substr_count($email,"@");
        $d=substr_count($email,".");
        $m=substr_count($email," ");
        if ($s==1 && $d>=1 && $m==0) {
            $email_ok = "ok";               
        } else {
            header("Location: ?id=full.news&idx=".$_POST['parent']);;
            echo "Please type a valid email adress...<br>";
        }
    } else {
        header("Location: ?id=full.news&idx=".$_POST['parent']);;
        echo "Please type an email adress...<br>";
    }
    if ($email_ok == "ok"){
$navn = $_POST['navn'];
$email = $_POST['email'];
$hp = $_POST['hp'];
$parent = $_POST['parent']
$content = stripslashes(nl2br($_POST['content']));
$dato = time();
mysql_query("INSERT INTO `comments` (`navn`,`content`,`dato`, `hp`, `email`, `parent`) VALUES ('" . $navn . "','" . $content . "','" . $dato . "','" . $hp . "','" . $email . "','" . $parent . "')");
header("Location: ?id=full.news&idx=".$_POST['parent']);;
}
?>

---

Ved godt det var en ordentlig smørre, men ville blive meget glad hvis der var en eller flere venlige personer som kan hjælpe mig med mit problem :)..
Avatar billede hmortensen Nybegynder
22. april 2005 - 05:25 #1
Det tyder på en SQL fejl. Prøv at sætt en or die på:

$result = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM news WHERE idx=".$_GET['idx']) or die(mysql_error());
Avatar billede busschou Praktikant
22. april 2005 - 10:00 #2
Jeg er ikke haj i MySql
Men giver det dig ikke problemer at formatere datoen og så referere til den som "date"
Det ville jeg mene var et reserveret ord
Avatar billede illuzion Nybegynder
22. april 2005 - 11:15 #3
Okay, nu har jeg prøvet at ændre lidt efter hvad i har sagt, så nu ser koden sådan ud:
<?
include("inc.config.php");
include("functions.php");
?>
<?
$result = mysql_query("SELECT * FROM news WHERE idx=".$_GET['idx']."")
or die(mysql_error());
while($row = mysql_fetch_array($result)) {
//viser gemte nyheder
echo('<div id="news">
<div class="news">
<h2>' . $row[title] . '</h2>
    <p class="boks">' . $row[content] . '</p>
    </div>
    <p class="ndato">'. strftime("%d/%m-%y - %H:%M", $row[dato]) . ' | <a href="?id=full.news&idx=' . $row[idx] . '">Kommentarer (' . $row[comments] . ')</a></p>
</div>');

//viser gemte kommentarer
$result = mysql_query("SELECT * FROM comments WHERE parent=".$_GET['idx']." ORDER BY id DESC")
or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
echo('<div id="comment">
<p class="id">' . $row[idx] . '.
<span class="navn"><a href=' . $row[hp] . '>' . $row[navn] . '</a> sagde: </span></p><p class="besked">
' . $row[content] . ' </p><p class="dato">'. strftime("%d/%m-%y - %H:%M", $row[dato]) . '</p></div>
');
}
}
?>

<br /><br />
<a id="form"></a>
<form  method="POST" action="newsform.php">
<input type="hidden" name="referer" value="comment">
<input type="hidden" name="parent" value="<?php echo $_GET['idx']; ?>">
 
  <input class="input" type="text" name="navn" size="25" /> Navn<br />
 
  <input class="input" type="text" name="email" size="25" /> Email (Bliver ikke vist, er kun til validation)<br />
 
  <input class="input" type="text" name="hp" size="25" /> Hp<br />
 
  <textarea class="textarea" rows="8" name="content" cols="50"></textarea>
  <br />
  <br />
  <input class="submit" type="submit" value="Submit" name="submit" />
</form>

Nu kan den sagtens vise nyheden når man åbner den i full news delen, men hvis man prøver at tilføje en kommentar siger den:
Parse error: parse error, unexpected T_VARIABLE in /customers/wido.dk/wido.dk/httpd.www/illuzion/test/cssproject/newsform.php on line 42

Comment delen i newsform er:
<?

if($_POST['referer'] == 'comment' && $_POST['email'] != "") {
        $email=trim($email);
        $s=substr_count($email,"@");
        $d=substr_count($email,".");
        $m=substr_count($email," ");
        if ($s==1 && $d>=1 && $m==0) {
            $email_ok = "ok";               
        } else {
            header("Location: ?id=full.news&idx=".$_POST['parent']);;
            echo "Please type a valid email adress...<br>";
        }
    } else {
        header("Location: ?id=full.news&idx=".$_POST['parent']);;
        echo "Please type an email adress...<br>";
    }
    if ($email_ok == "ok"){
$navn = $_POST['navn'];
$email = $_POST['email'];
$hp = $_POST['hp'];
$parent = $_POST['parent']
$content = stripslashes(nl2br($_POST['content']));
$dato = time();
mysql_query("INSERT INTO `comments` (`navn`,`content`,`dato`, `hp`, `email`, `parent`) VALUES ('" . $navn . "','" . $content . "','" . $dato . "','" . $hp . "','" . $email . "','" . $parent . "')");
header("Location: ?id=full.news&idx=".$_POST['parent']);
}
?>

/ Skal lige siges at jeg har fjernet det der hedder parent i news delen, da den ikke var til nogen nytte (:
Avatar billede busschou Praktikant
22. april 2005 - 11:19 #4
hvad står der  i linje 42 i newsform.php?
Avatar billede illuzion Nybegynder
22. april 2005 - 11:31 #5
der står $content = stripslashes(nl2br($_POST['content']));
Avatar billede busschou Praktikant
22. april 2005 - 11:33 #6
du mangler et simikolon ; i linjen oven over!
Avatar billede illuzion Nybegynder
22. april 2005 - 12:14 #7
Ihh utroligt :p. Slå fejl, kan jo ske.

Nu virker det! Tusind tak for hjælpen! :D
Avatar billede busschou Praktikant
22. april 2005 - 12:16 #8
det var så lidt da :o) godt det virker
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