Avatar billede ethernity Nybegynder
30. april 2002 - 17:37 Der er 5 kommentarer og
1 løsning

Nyhedssystem

Hejsa.
Jeg er ved at lave en hjemmeside, for en clan. Jeg vil gerne have sådan at alle usere kan skrive nyheder bare de er logget ind. Det må meget gerne være i PHP, da det er det jeg har mest kenskab til. Nogen der kan hjælpe mig med at lave sådan et?
I kan se hjemmesiden her: http://ethernity.d2g.com/sC/index.php# , men den er kun online når min computer står tændt.

På forhånd tak.
Hilsen Tommy aka ethernity
Avatar billede rdc Nybegynder
30. april 2002 - 19:48 #1
Du kan bruge det her:
Du skal bare følge brugervejledningen.
HUSK at ændre koden.
Du kan se et eksempel her: www.rdc.lir.dk/ jeg bruger det selv nemlig. Ind på rdc.lir.dk går du bare ind under admin delen under Gamle Nyheder, der kan du se hvordan det virker.
<?php
/*#############################################
# Nyhedssys af Jonas Delfs                    #
#                                            #
# Nyhedssys er frigivet under GNU/GPL        #
#                                            #
# Nyhedssys må frit benyttes så længe disse  #
# linier forbliver intakte                    #
#############################################*/


//Det eneste du skal gøre for at få nyhedssys til at køre,
//er at angive passwordet herunder (for at tilføje nyheder)
//og oprette en fil ved navn nyheder.txt og chmod den til 777
$passwd = "123";



//En funktion der laver URLs om til links
function url2link($str){ 
    $str = eregi_replace("(f|ht)tp://([a-z0-9@:%_.~#\-\?&-]+)((\=|[a-z0-9]|\?|&|\/|\.)+){0,}", "<a href='\\0' target='_blank'>\\0</a>", $str);
    $str = eregi_replace("[a-z0-9._-]+@[a-z0-9-]+(\.[a-z0-9-]+)+","<a href='mailto:\\0'>\\0</a>",$str);
    return $str;
}

echo "<html>\n";
echo "<head>\n";
echo "<title>Nyhedssys af Jonas Delfs</title>\n";
echo "<style type='text/CSS'>\n";
echo "A:link { color: #CCCCCC; text-decoration: underline; font-family: Verdana; font-size: 12px; }\n";
echo "A:visited { color: #CCCCCC; text-decoration: none; font-family: Verdana; font-size: 12px; }\n";
echo "A:active { color: #CCCCCC; text-decoration: none; font-family: Verdana; font-size: 12px; }\n";
echo "h1 { font-family: Arial; font-size: 25px; color: Black; }\n";
echo "body { background: #336699; }\n";
echo ".table { background: White; }\n";
echo ".tekst { color: Black; font-size: 12px; font-family: Verdana; }\n";
echo ".nyhedsoverskrift { color: Black; font-size: 13px; font-weight: bold; font-family: Verdana; }\n";
echo ".nyhedsdato { color: Black; font-size: 10px; font-family: Verdana; text-decoration: underline; }\n";
echo ".nyheder { color: Black; font-size: 12px; font-family: Verdana; }\n";
echo "</style>\n";
echo "</head>\n";
echo "<body>\n";

echo "<center>\n";
echo "<table border='0' cellspacing='0' width='500' bordercolor='#000000'>\n";
echo "  <tr>\n";
echo "      <td width='500'>\n";
echo "          <h1>Nyheder</h1>\n";
echo "          <center>\n";
echo "          <table border='2' cellspacing='0' width='500' bordercolor='#000000' class='table'>\n";
echo "              <tr>\n";
echo "                  <td width='500'>\n";

//Hvis formen er submittet på tilføj-siden
if ($action == "add" && $submit) {
    if ($password != $passwd) { //Hvis passwordet er forkert
        echo "<span class='tekst'>Du har indtastet et forkert password!</span>\n";
    }
   
    //Hvis overskrift og/eller nyhed mangler at blive udfyldt
    elseif(!$overskrift || !$nyhed){
        echo "<span class='tekst'>Du skal indtaste både overskrift og nyhed!</span>\n";
    }
   
    //Hvis alt er ok
    else{
   
        //Her definerer vi datoen
        $dato = date("d/m Y");
       
        //Her skifter vi linieskift ud med <br>
        $nyhed = preg_replace("/\r\n|\n\r|\n|\r/", "<br>", $nyhed);
       
        //Vi åbner filen
        $fp = fopen("nyheder.txt", "a");
       
        //Hvis det lykkedes at skrive nyheden i filen
        if(fputs($fp, "$dato|$overskrift|$nyhed\n")){
            echo "<span class='tekst'>Nyheden er tilføjet!</span><br><br><a href='".basename($PHP_SELF)."'>Til nyheder</a>\n";
        }
       
        //Hvis der opstod en fejl
        else{
            echo "<span class='tekst'>Der opstod en fejl, og nyheden blev <i>ikke</i> gemt!</span><br><br><a href='java script:history.back()'>Tilbage</a>\n";
        }
       
        //Så lukker vi filen igen
        fclose($fp);
    }
}

//Hvis formen ikke er submittet
elseif($action == "add"){

    //Her viser vi formen
    echo "                      <form action='".basename($PHP_SELF)."?action=add&submit=1' method='POST'><table>\n";
    echo "                      <tr><td><span class='tekst'>Password:</span></td><td><input type='password' name='password'></td></tr>\n";
    echo "                      <tr><td><span class='tekst'>Overskrift:</span></td><td><input type='text' name='overskrift'></td></tr>\n";
    echo "                      <tr><td valign='top'><span class='tekst'>Nyhed:</span></td><td><textarea name='nyhed' rows='4'></textarea></td></tr>\n";
    echo "                      <tr><td></td><td><input type='submit' value=' Gem '></td></tr>\n";
    echo "                      </table></form>\n";
}

//Hvis man ikke er gået hen på tilføj-siden, viser vi nyhederne
else{

    //Læser filen med nyheder ind i et array
    $file = file("nyheder.txt");
   
    //Vender fil-array'et, så vi får de nyeste nyheder øverst
    $file_reversed = array_reverse($file);
   
    //Sætter en variable der tjekker om det er første gang vores foreach-løkke køres
    $first = 1;
   
    //Løb nyheds-array'et igennem form nyheder
    foreach($file_reversed as $line){
       
        //Split linien med |, så vi får en dato, en overskrift og en nyhed ud af den
        list($dato,$overskrift,$nyhed) = explode("|",$line);
       
        //Hvis det ikke er første gang løkken køres, skrives en vandret linie ud på skærmen
        !$first ? print "                      <hr size='1' color='#000000' noshade>\n" : "";
       
        //Nu skriver vi den pågældende nyhed ud
        echo "                      <span class='nyhedsoverskrift'>$overskrift</span><br>\n";
        echo "                      <span class='nyhedsdato'>$dato</span><br><br>\n";
        echo "                      <span class='nyheder'>".url2link($nyhed)."</span>\n";
       
        //Vi sætter vores "tjek-variabel" til false
        $first = 0;
    }
   
}

//Her afslutter vi vores tabeller
echo "                  </td>\n";
echo "              </tr>\n";
echo "          </table>\n";
echo "          </center>\n";
echo "      </td>\n";
echo "  </tr>\n";
echo "</table>\n";
echo "</center>\n";

//Hvis man ikke er på tilføj-siden, viser vi et link til den
$action ? "" : print "<center><a href='".basename($PHP_SELF)."?action=add'>Tilføj</a></center>\n";

//Vi afslutter lige documentet på korrekt vis
echo "</body>\n";
echo "</html>\n";
?>
MVH/
RDC
Avatar billede rdc Nybegynder
30. april 2002 - 19:49 #2
Forresten, det bruger ikke MySQL men istedet en txt fil som databse.
Avatar billede tipsen Nybegynder
01. maj 2002 - 00:45 #3
[SPAM]: Det hedder "eternity"...
Avatar billede ethernity Nybegynder
01. maj 2002 - 15:59 #4
mange tak rdc, vil prøve om jeg kan få det til at virke.

tipsen: ørhm, ikke mit nick? ved godt evighed staves eternity.
Avatar billede ethernity Nybegynder
01. maj 2002 - 16:01 #5
rdc, når der står:
//og oprette en fil ved navn nyheder.txt og chmod den til 777
hvad er det der "chmod den til 777" ?
Avatar billede rdc Nybegynder
01. maj 2002 - 19:48 #6
Chmod den til 777 vil sige at når du opretter en txt fil ved navn nyheder.txt så skal du højre klikke oven på den i dit ftp program.
Følg den her brugervejledning:
http://www.the-gnu.dk/chmod.php
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