Avatar billede syngredk Nybegynder
01. juli 2005 - 17:14 Der er 12 kommentarer og
1 løsning

udskriv side - hent ID

Hej,

måske er der et klogt hoved som kan hjælpe mig med nogen af mine små finesser på min hjemmeside. Jeg vil gerne havde, at når man er inde på en bestemt nyhed at man kan vælge at printe nyheden/siden ud.

- news.display.php (viser nyheden)
- news.print.php (print siden)


--->
news.display.php ser således ud:

<?php
include('inc.config.php');
$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news WHERE id=".$_GET['id']."");
$row = mysql_fetch_assoc($query);

function LinkedText($text)
{
  $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a target=\"new\" href=\"\\0\">\\0</a>",
          ereg_replace("www[^<>[:space:]]+[[:alnum:]/]", "http://\\0",
          str_replace("http://www", "www", $text)));
  return $text;
}

echo '<h2>'.$row['title'].'</h2>';
echo '<p><b>'.$row['synopsis'].'</b></p>';
echo empty($row['image']) ? '' : '<p align="center"><img src="files/'.$row['image'].'" class="image">';
echo '</p>';
echo LinkedText(nl2br(htmlspecialchars($row['text'])));
echo '<br><br><p>Skrevet af '.$row['author'].', '.$row['date'].'</p>';
echo '<a href="java script:window.scrollTo(0,0)">Til toppen</a> | Fortæl en ven | <a href="news.print.php?id='.$row['id'].'>Udskriv siden'</a>;
echo '<div class="hr"></div>';


$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM comments WHERE parent=".$_GET['id']." ORDER BY id ASC");
if (mysql_num_rows($query) > 0) {
    echo '<a name="Kommentarer"></a><h2>Kommentarer</h2>';
    while ($row = mysql_fetch_assoc($query)) {
        echo empty($row['email']) ? htmlspecialchars($row['name']) : '<a href="mailto:'.$row['email'].'">'.htmlspecialchars($row['name']).'</a>';
        echo '&nbsp;('.$row['date'].')<br><br>';
        echo LinkedText(nl2br(htmlspecialchars($row['text'])));
        echo '<div class="hr"></div>';
    }
}
?>


Fejlen ligger nok i denne linie, men kan ikke lige hitte ud af hvor den nærmere bestemt er:
echo '<a href="java script:window.scrollTo(0,0)">Til toppen</a> | Fortæl en ven | <a href="news.print.php?id='.$row['id'].'>Udskriv siden'</a>;

Når man klikker på print, skulle den gerne åbne samme ID som nyheden man er inde på.

Håber at nogen kan hjælpe, systemet kan også ses her:
http://www.syngre.dk/news.display.php?id=52

Lige nu, er den linie som giver fejl ikke lagt ud, da siden så ikke kan vises.

// Peter
Avatar billede rtfm_now Nybegynder
01. juli 2005 - 17:24 #1
1. Der står ikke "udskriv siden" nogle steder på dit link.

2. Du har faktisk postet den forkerte source, drop news.print.php herind , så kigger vi på den.
Avatar billede syngredk Nybegynder
01. juli 2005 - 17:26 #2
1 -> Står at den ikke er lagt ud på nettet, da den så ikke fungere men den er vist på ovenstående kildekode

news.print.php ser således ud:

<?php
include('inc.config.php');
$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news WHERE id=".$_GET['id']."");
$row = mysql_fetch_assoc($query);

function LinkedText($text)
{
  $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a target=\"new\" href=\"\\0\">\\0</a>",
          ereg_replace("www[^<>[:space:]]+[[:alnum:]/]", "http://\\0",
          str_replace("http://www", "www", $text)));
  return $text;
}

echo '<h2>'.$row['title'].'</h2>';
echo '<p><b>'.$row['synopsis'].'</b></p>';
echo empty($row['image']) ? '' : '<p align="center"><img src="files/'.$row['image'].'" class="image">';
echo '</p>';
echo LinkedText(nl2br(htmlspecialchars($row['text'])));
echo '<br><br><p>Skrevet af '.$row['author'].', '.$row['date'].'</p>';
echo '<div class="hr"></div>';


$query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM comments WHERE parent=".$_GET['id']." ORDER BY id ASC");
if (mysql_num_rows($query) > 0) {
    echo '<a name="Kommentarer"></a><h2>Kommentarer</h2>';
    while ($row = mysql_fetch_assoc($query)) {
        echo empty($row['email']) ? htmlspecialchars($row['name']) : '<a href="mailto:'.$row['email'].'">'.htmlspecialchars($row['name']).'</a>';
        echo '&nbsp;('.$row['date'].')<br><br>';
        echo LinkedText(nl2br(htmlspecialchars($row['text'])));
        echo '<div class="hr"></div>';
    }
}
?>
Avatar billede syngredk Nybegynder
01. juli 2005 - 17:27 #3
Avatar billede rtfm_now Nybegynder
01. juli 2005 - 17:30 #4
1. Hov missede sidste linje ;)

2. news.print.php er absolut ikke optimal.

Du børe gøre brug af: www.php.net/isset

Prøv med noget code ala. dette her (som news.print.php):

<?php

include('inc.config.php');

function LinkedText($text)
{
  $text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a target=\"new\" href=\"\\0\">\\0</a>",
          ereg_replace("www[^<>[:space:]]+[[:alnum:]/]", "http://\\0",
          str_replace("http://www", "www", $text)));
  return $text;
}

if(isset($_GET'id']))
{
  $id = addslashes($_GET['id']); // Lidt sikkerhed for ikke at få SQl-injection
  $query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM news WHERE id=".$id."");
  $row = mysql_fetch_assoc($query);
 
  echo '<h2>'.$row['title'].'</h2>';
  echo '<p><b>'.$row['synopsis'].'</b></p>';
  echo empty($row['image']) ? '' : '<p align="center"><img src="files/'.$row['image" class="image">';
  echo '</p>';
  echo LinkedText(nl2br(htmlspecialchars($row['text'])));
  echo '<br><br><p>Skrevet af '.$row['author'].', '.$row['date'].'</p>';
  echo '<div class="hr"></div>';

  $query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM comments WHERE parent=".$id." ORDER BY id ASC");
  if (mysql_num_rows($query) > 0) {
      echo '<a name="Kommentarer"></a><h2>Kommentarer</h2>';
      while ($row = mysql_fetch_assoc($query)) {
          echo empty($row['email']) ? htmlspecialchars($row['name']) : '<a href="mailto:'.$row['email'].'">'.htmlspecialchars($row['name']).'</a>';
          echo '&nbsp;('.$row['date'].')<br><br>';
          echo LinkedText(nl2br(htmlspecialchars($row['text'])));
          echo '<div class="hr"></div>';
      }
  }
?>
Avatar billede rtfm_now Nybegynder
01. juli 2005 - 17:30 #5
Fjern dette her kode, hvis du ikke vil have kommentarerne:

  echo '<div class="hr"></div>';

  $query = mysql_query("SELECT *,DATE_FORMAT(date,'%e/%c-%Y %T') AS date FROM comments WHERE parent=".$id." ORDER BY id ASC");
  if (mysql_num_rows($query) > 0) {
      echo '<a name="Kommentarer"></a><h2>Kommentarer</h2>';
      while ($row = mysql_fetch_assoc($query)) {
          echo empty($row['email']) ? htmlspecialchars($row['name']) : '<a href="mailto:'.$row['email'].'">'.htmlspecialchars($row['name']).'</a>';
          echo '&nbsp;('.$row['date'].')<br><br>';
          echo LinkedText(nl2br(htmlspecialchars($row['text'])));
          echo '<div class="hr"></div>';
      }
Avatar billede syngredk Nybegynder
01. juli 2005 - 17:34 #6
rtfm_now -->

Din nr. 2 med udskrivningssiden fungere ikke hvis du prøver at se den nu, så brokker den sig over en linie fejl
Avatar billede rtfm_now Nybegynder
01. juli 2005 - 17:36 #7
ups, havde glemt et [

if(isset($_GET['id']))  er den rettede linje (13)
Avatar billede syngredk Nybegynder
01. juli 2005 - 17:42 #8
hehe, hjalp ikke så meget :-)
Avatar billede syngredk Nybegynder
01. juli 2005 - 17:44 #9
giver fejl i nr. 21
Avatar billede rtfm_now Nybegynder
01. juli 2005 - 17:59 #10
Linje 21:

echo empty($row['image']) ? '' : '<p align="center"><img src="files/'.$row['image" class="image">';

Og det er nu din fejl ;) Denne gang var det ] og .' som er glemt.
Prøv med denne her linje istedet:

echo empty($row['image']) ? '' : '<p align="center"><img src="files/'.$row['image'].'" class="image">';

Hvis du ikke har en editor med syntax highlighter kan jeg anbefale www.context.cx
Avatar billede syngredk Nybegynder
01. juli 2005 - 23:14 #11
retter den lige og prøver.

Men forstår ikke at jeg skal havde rettet i news.print.php som ellers virkede uden problemer før hen. Det var nu mere link-funktionen i news.display.php ? Men de hænger måske sammen eller?
Avatar billede rtfm_now Nybegynder
02. juli 2005 - 00:27 #12
Det hænger sådan sammen at hvis du ikke laver et isset check ville en ordenligt konfiguret php installation fejle.

Din måde at linke på har er fin fin.
Avatar billede syngredk Nybegynder
17. juli 2005 - 14:23 #13
- kan ikke helt få det til at funge på ovenstående måde, så jeg laver som det har været tidligere..
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