Avatar billede da9el Nybegynder
05. april 2004 - 08:51 Der er 14 kommentarer og
1 løsning

Oversigt til artikel system!!

Jeg har lavet et artikel system udfra:

http://www.webcafe.dk/artikler/php/phpmysqlgaestebog/

Alle bedskederne kommer bare ud i en lang smøre. Jeg vil have at der kommer en oversigt, hvor man kan læse lidt af artiklen også trykke på den for at læse resten.
Nogle der ved hvad, der skal stå i dokumentet, eller kender et andet system???
Daniel
Avatar billede hmortensen Nybegynder
05. april 2004 - 10:21 #1
SELECT id, LEFT(nyhed,20) FROM table

<a href="laeshelenyhed.php?id=<?=$id?>">Læs mere</a>
Avatar billede da9el Nybegynder
05. april 2004 - 10:23 #2
Skal jeg bare sætte det ind i et tomt dokument??
Daniel
Avatar billede hmortensen Nybegynder
05. april 2004 - 10:24 #3
Prøv at kopiere din kode ind, så skal jeg sætte det ind for det...
Avatar billede da9el Nybegynder
05. april 2004 - 10:24 #4
Jeg har fundet et ekssempel på det: www.hakombat.tk
Avatar billede da9el Nybegynder
05. april 2004 - 10:26 #5
Der er mange filer skal jeg bare filer. Skal jeg bare sætte gbog.php ind??
Daniel
Avatar billede hmortensen Nybegynder
05. april 2004 - 10:26 #6
Bare den som lister nyhederne
Avatar billede da9el Nybegynder
05. april 2004 - 10:28 #7
<td><h1 align=center>Artikler</h1></td>


<?php

#####################################################################
#                                                                  #
#  Dette er en simpel gæstebog, stillet til rådighed af webcafe.dk  #
#        Skidtet er klampret sammen af claus@webclaus.com          #
#                                                                  #
#  Gennemgang af kode samt installationsvejledning finder du på:    #
#                                                                  #
#      http://webcafe.dk/artikler/php/phpmysqlgaestebog/          #
#                                                                  #
#####################################################################

require("./gbog-ting/mysql-funktioner.php");
require("./gbog-ting/design-funktioner.php");
require("./gbog-ting/indstillinger.php");

#
# Vi skal have fat i vores variabler, uanset hvilken version af PHP der bruges
#

if(is_array($HTTP_GET_VARS)) {
  $start_nr = $HTTP_GET_VARS['start_nr'];
} elseif (is_array($_GET)) {
  $start_nr = $_GET['start_nr'];
}
#
# Når folk kigger på gBogen første gang har de ikke noget $start_nr, så vi giver dem et nul,
# så de starter med det nyeste indlæg.
# Hvis en skuummel gæst selv prøver at sætte $start_nr kan den ende med at blive under nul,
# når man bruger navigationen. Hvis den er under nul laver vi den også om til nul, så
# mysql ikke begynder at brokke sig over ugyldigt input
#

if(!$start_nr || $start_nr < 0) {
  $start_nr = 0;
}

#
# Udskriver den første stump HTML
#

echo top("");

#
# Vi henter to ting ud af MySQL - først og fremmest alle de indlæg vi skal kigge på
# men også en hurtig optælling af, hvor mange indlæg der er ialt. Det sidste skal vi
# bruge når vi bygger "frem"- og "tilbage"-links.
#
# Der er ingen grund til at åbne databasen endnu - vi skal først lige have bygget
# de to forespørgsler.
#

$sql = "select id, navn, epost, overskrift, date_format(tid, '%e/%c %Y') as tiden, besked from gaestebog order by tid desc limit $start_nr, $antal_ad_gangen";
$taeller_sql = "select count(*) as antal from gaestebog";

#
# Nu åbner vi databasen, hiver informationerne ud og lukker med det samme igen.
# Det er god skik at en forbindelse til database ikke er åben længere end højst nødvendigt.
#
# Abstraktionerne fra mysql-funktioner.php sørger for alt det grove arbejde og fejlhåndtering - dejligt.
#

aabn_forbindelse_og_vaelgdb();
$resultat = sql_spoerg_og_faa_svar($sql);
$optaelling = sql_spoerg_og_faa_svar($taeller_sql);
luk_forbindelse();

#
# Så går vi igang med at bygge navigationen
# Først bruger vi extract til at få $antal ud til behandling.
# Vi looper ikke igennem resultatet, da vi ved der kun er een række,
# så vi tilgår den direkte ved $optaelling[0].
#

extract($optaelling[0]);

#
# Skal der laves et links til flere indlæg?
#

if($antal > ($start_nr + $antal_ad_gangen)) {
   
    $naeste_start_nr = $start_nr + $antal_ad_gangen;
    $naeste_nav = "<a href=\"$PHP_SELF?start_nr=$naeste_start_nr\">N&aelig;ste</a>";

} else {

    $naeste_nav = "<span class=\"doedt-link\">N&aelig;ste</span>";

}

#
# Skal der laves link til forrige indlæg?
#

if($start_nr > 0 && ($start_nr - $antal_ad_gangen) < $antal) {

    $forrige_start_nr = $start_nr - $antal_ad_gangen;
    $forrige_nav = "<a href=\"$PHP_SELF?start_nr=$forrige_start_nr\">Forrige</a>";

} else {

    $forrige_nav = "<span class=\"doedt-link\">Forrige</span>";

}

#
# Her sætter vi det hele sammen i en tabel vi kan bruge til at sætte ind på siden.
#

$nav = "<table width=\"$tabel_bredde\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">
    <tr><td align=\"left\" width=\"33%\">$forrige_nav</td>
    <td align=\"center\" width=\"34%\"><a href=\"skriv.php\">Skriv</a></td>
    <td align=\"right\" align=\"33%\">$naeste_nav</td></tr>
    </table>";

#
# Og skriver tabellen ud med det samme:
#

echo "$nav <p />";

#
# Her begynder det egentlig interesante - vi looper os igennem de enkelte indlæg
# og skriver dem ud til skærmen.
#
# Hvis forespørgslen ikke har returneret nogle resultater, springer vi alt dette over.
#

if(count($resultat) < 1) {

  echo "Der er ingen indl&aelig;g i gBogen";

} else {

  for($i=0;$i<count($resultat);$i++) {

    #
    # Med extract får vi smidt værdierne i variabler
    #
   
    extract($resultat[$i]);

    #
    # Vi brugte addslashes() da vi lagde tingene i databasen så for at få det til
    # at se læseligt ud, fjerne vi dem igen med stripslashes()
    #

    $besked = stripslashes($besked);
    $navn = stripslashes($navn);
    $epost = stripslashes($epost);
    $overskrift = stripslashes($overskrift);

    #
    # Hvis der ikke må bruges HTML fjerner vi lige alle tags med htmlentities()
    #

    if($html_p != "t") {
        $navn = htmlentities($navn);
        $epost = htmlentities($epost);
        $besked = htmlentities($besked);
        $overskrift = htmlentities($overskrift);
    }

    #
    # For at vi får linjeskift i HTML også, bruger vi nl2br til at skifte alle \n
    # ud med <br>

    $besked = nl2br($besked);

    #
    # Vi laver et simpelt check: Hvis eposten indeholder et snabel-a, så laver
    # vi det til en mailto:
    #
    # Dette er dog ingen garanti for, at eposten er gyldig.
    #

    if(ereg("@", $epost)) {
        $navn = "<a href=\"mailto:$epost\">$navn</a>";
    }

    #
    # Så er alt klart til browseren og vi spytter en tabel ud med denne besked.
    # Hvis du vil ændre markant i udseendet af din gæstebog, så er det
    # i blokken herunder det foregår. Du skal bare beholde de givne navne i
    # <input>-tagsene.
    #
    # Vi hopper lige ud af PHP-mode lidt, så vi er fri for at escape alle gåseøjnene.
    #

?>

  <table width="<?php echo $tabel_bredde; ?>" cellpadding="0" cellspacing="0" border="0">
        <tr><td class="gbog-baggrund" width="100%" align="center">

            <table border="0" cellpadding="3" cellspacing="0" width="100%">
                <tr><td background="afbaggrund.gif" width="100%"><?php echo $tiden; ?></td></tr>
            </table>

        </td></tr><tr><td class="gbog-baggrund" align="center" width="100%">

            <table border="0" cellpadding="8" cellspacing="0" width="100%">
                <tr><td class="gbog-bund" width="100%"><p>
                <?php echo $besked; ?></p>
                <p align="right"><a class="slet" href="<?php echo "slet.php?id=$id&start_nr=$start_nr"; ?>">slet</a></p></td></tr>
         
            <table border="0" cellpadding="3" cellspacing="0" width="100%">
                <tr><td background="bundbaggrund.bmp" width="100%">Artikel af: <strong><?php echo $navn; ?></strong></td></tr>
            </table> 
  </table>

        </td></tr>
    </table><p />

<?php

  #
  # Vi hopper tilbage i PHP-mode.
  #
  # Her slutter loopet og PHP springer tilbage og går hele turen igennem med den næste
  # besked. Når der ikke er flere indlæg i denne omgang går PHP videre.
  #

  }

  #
  # Endelig skriver vi frem- og tilbage-links på i bunden af siden også.
  #

  echo $nav;

  #
  # Her slutter if-else-konstruktionen der fanger, om der er nogle indlæg overhovedet.
  #

}

#
# Og spytter den sidste stump HTML ud.
#

echo bund();
?>
Avatar billede hmortensen Nybegynder
05. april 2004 - 10:40 #8
<td><h1 align=center>Artikler</h1></td>


<?php

#####################################################################
#                                                                  #
#  Dette er en simpel gæstebog, stillet til rådighed af webcafe.dk  #
#        Skidtet er klampret sammen af claus@webclaus.com          #
#                                                                  #
#  Gennemgang af kode samt installationsvejledning finder du på:    #
#                                                                  #
#      http://webcafe.dk/artikler/php/phpmysqlgaestebog/          #
#                                                                  #
#####################################################################

require("./gbog-ting/mysql-funktioner.php");
require("./gbog-ting/design-funktioner.php");
require("./gbog-ting/indstillinger.php");

#
# Vi skal have fat i vores variabler, uanset hvilken version af PHP der bruges
#

if(is_array($HTTP_GET_VARS)) {
  $start_nr = $HTTP_GET_VARS['start_nr'];
} elseif (is_array($_GET)) {
  $start_nr = $_GET['start_nr'];
}
#
# Når folk kigger på gBogen første gang har de ikke noget $start_nr, så vi giver dem et nul,
# så de starter med det nyeste indlæg.
# Hvis en skuummel gæst selv prøver at sætte $start_nr kan den ende med at blive under nul,
# når man bruger navigationen. Hvis den er under nul laver vi den også om til nul, så
# mysql ikke begynder at brokke sig over ugyldigt input
#

if(!$start_nr || $start_nr < 0) {
  $start_nr = 0;
}

#
# Udskriver den første stump HTML
#

echo top("");

#
# Vi henter to ting ud af MySQL - først og fremmest alle de indlæg vi skal kigge på
# men også en hurtig optælling af, hvor mange indlæg der er ialt. Det sidste skal vi
# bruge når vi bygger "frem"- og "tilbage"-links.
#
# Der er ingen grund til at åbne databasen endnu - vi skal først lige have bygget
# de to forespørgsler.
#

//Her er sat LEFT() ind, som returnere antal karaktere speciferet efter feltnavnet.
$sql = "select id, navn, epost, overskrift, date_format(tid, '%e/%c %Y') as tiden, LEFT(besked,50) AS besked from gaestebog order by tid desc limit $start_nr, $antal_ad_gangen";
$taeller_sql = "select count(*) as antal from gaestebog";

#
# Nu åbner vi databasen, hiver informationerne ud og lukker med det samme igen.
# Det er god skik at en forbindelse til database ikke er åben længere end højst nødvendigt.
#
# Abstraktionerne fra mysql-funktioner.php sørger for alt det grove arbejde og fejlhåndtering - dejligt.
#

aabn_forbindelse_og_vaelgdb();
$resultat = sql_spoerg_og_faa_svar($sql);
$optaelling = sql_spoerg_og_faa_svar($taeller_sql);
luk_forbindelse();

#
# Så går vi igang med at bygge navigationen
# Først bruger vi extract til at få $antal ud til behandling.
# Vi looper ikke igennem resultatet, da vi ved der kun er een række,
# så vi tilgår den direkte ved $optaelling[0].
#

extract($optaelling[0]);

#
# Skal der laves et links til flere indlæg?
#

if($antal > ($start_nr + $antal_ad_gangen)) {
   
    $naeste_start_nr = $start_nr + $antal_ad_gangen;
    $naeste_nav = "<a href=\"$PHP_SELF?start_nr=$naeste_start_nr\">N&aelig;ste</a>";

} else {

    $naeste_nav = "<span class=\"doedt-link\">N&aelig;ste</span>";

}

#
# Skal der laves link til forrige indlæg?
#

if($start_nr > 0 && ($start_nr - $antal_ad_gangen) < $antal) {

    $forrige_start_nr = $start_nr - $antal_ad_gangen;
    $forrige_nav = "<a href=\"$PHP_SELF?start_nr=$forrige_start_nr\">Forrige</a>";

} else {

    $forrige_nav = "<span class=\"doedt-link\">Forrige</span>";

}

#
# Her sætter vi det hele sammen i en tabel vi kan bruge til at sætte ind på siden.
#

$nav = "<table width=\"$tabel_bredde\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">
    <tr><td align=\"left\" width=\"33%\">$forrige_nav</td>
    <td align=\"center\" width=\"34%\"><a href=\"skriv.php\">Skriv</a></td>
    <td align=\"right\" align=\"33%\">$naeste_nav</td></tr>
    </table>";

#
# Og skriver tabellen ud med det samme:
#

echo "$nav <p />";

#
# Her begynder det egentlig interesante - vi looper os igennem de enkelte indlæg
# og skriver dem ud til skærmen.
#
# Hvis forespørgslen ikke har returneret nogle resultater, springer vi alt dette over.
#

if(count($resultat) < 1) {

  echo "Der er ingen indl&aelig;g i gBogen";

} else {

  for($i=0;$i<count($resultat);$i++) {

    #
    # Med extract får vi smidt værdierne i variabler
    #
   
    extract($resultat[$i]);

    #
    # Vi brugte addslashes() da vi lagde tingene i databasen så for at få det til
    # at se læseligt ud, fjerne vi dem igen med stripslashes()
    #

    $besked = stripslashes($besked);
    $navn = stripslashes($navn);
    $epost = stripslashes($epost);
    $overskrift = stripslashes($overskrift);

    #
    # Hvis der ikke må bruges HTML fjerner vi lige alle tags med htmlentities()
    #

    if($html_p != "t") {
        $navn = htmlentities($navn);
        $epost = htmlentities($epost);
        $besked = htmlentities($besked);
        $overskrift = htmlentities($overskrift);
    }

    #
    # For at vi får linjeskift i HTML også, bruger vi nl2br til at skifte alle \n
    # ud med <br>

    $besked = nl2br($besked);

    #
    # Vi laver et simpelt check: Hvis eposten indeholder et snabel-a, så laver
    # vi det til en mailto:
    #
    # Dette er dog ingen garanti for, at eposten er gyldig.
    #

    if(ereg("@", $epost)) {
        $navn = "<a href=\"mailto:$epost\">$navn</a>";
    }

    #
    # Så er alt klart til browseren og vi spytter en tabel ud med denne besked.
    # Hvis du vil ændre markant i udseendet af din gæstebog, så er det
    # i blokken herunder det foregår. Du skal bare beholde de givne navne i
    # <input>-tagsene.
    #
    # Vi hopper lige ud af PHP-mode lidt, så vi er fri for at escape alle gåseøjnene.
    #

?>

  <table width="<?php echo $tabel_bredde; ?>" cellpadding="0" cellspacing="0" border="0">
        <tr><td class="gbog-baggrund" width="100%" align="center">

            <table border="0" cellpadding="3" cellspacing="0" width="100%">
                <tr><td background="afbaggrund.gif" width="100%"><?php echo $tiden; ?></td></tr>
            </table>

        </td></tr><tr><td class="gbog-baggrund" align="center" width="100%">

            <table border="0" cellpadding="8" cellspacing="0" width="100%">
                <tr><td class="gbog-bund" width="100%"><p>
                <?php echo $besked; ?>... <a href="laeshelenyheden.php?id=<?php echo $id; ?>">Læs mere</a></p>
                <p align="right"><a class="slet" href="<?php echo "slet.php?id=$id&start_nr=$start_nr"; ?>">slet</a></p></td></tr>
         
            <table border="0" cellpadding="3" cellspacing="0" width="100%">
                <tr><td background="bundbaggrund.bmp" width="100%">Artikel af: <strong><?php echo $navn; ?></strong></td></tr>
            </table> 
  </table>

        </td></tr>
    </table><p />

<?php

  #
  # Vi hopper tilbage i PHP-mode.
  #
  # Her slutter loopet og PHP springer tilbage og går hele turen igennem med den næste
  # besked. Når der ikke er flere indlæg i denne omgang går PHP videre.
  #

  }

  #
  # Endelig skriver vi frem- og tilbage-links på i bunden af siden også.
  #

  echo $nav;

  #
  # Her slutter if-else-konstruktionen der fanger, om der er nogle indlæg overhovedet.
  #

}

#
# Og spytter den sidste stump HTML ud.
#

echo bund();
?>



------laeshelenyhenden.php
<?php
require("./gbog-ting/mysql-funktioner.php");
require("./gbog-ting/design-funktioner.php");
require("./gbog-ting/indstillinger.php")

$sql = "select id, navn, epost, overskrift, date_format(tid, '%e/%c %Y') as tiden, besked from gaestebog WHERE id='".$_GET[id]."'";
aabn_forbindelse_og_vaelgdb();
$resultat = sql_spoerg_og_faa_svar($sql);
luk_forbindelse();

så kan du bare ta det fra den anden side til at udskrive med....
Avatar billede da9el Nybegynder
05. april 2004 - 10:42 #9
skal jeg bare slette alt det andet??
Avatar billede hmortensen Nybegynder
05. april 2004 - 10:43 #10
Nej nej

Nu udlæser den de første 50 tegn fra nyhederne og et link til at læse mere
Avatar billede da9el Nybegynder
05. april 2004 - 10:48 #11
Hvad mener du så med at bare ta det fra den anden side??

Og jeg har prøvet at sætte slt sammen ind men det virker ikke prøv og se siden her:
www.ntimesartikel.1go.dk/gbog.php
Avatar billede hmortensen Nybegynder
05. april 2004 - 11:10 #12
------laeshelenyhenden.php
<?php
require("./gbog-ting/mysql-funktioner.php");
require("./gbog-ting/design-funktioner.php");
require("./gbog-ting/indstillinger.php")

$sql = "select id, navn, epost, overskrift, date_format(tid, '%e/%c %Y') as tiden, besked from gaestebog WHERE id='".$_GET[id]."'";
aabn_forbindelse_og_vaelgdb();
$resultat = sql_spoerg_og_faa_svar($sql);
luk_forbindelse();

-----laeshelenyheden.php------


Det er en anden side....
Avatar billede da9el Nybegynder
05. april 2004 - 11:15 #13
Avatar billede da9el Nybegynder
05. april 2004 - 14:03 #14
.
Avatar billede da9el Nybegynder
21. april 2004 - 15:56 #15
Lukker
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