Avatar billede mr-mycom Nybegynder
15. juni 2005 - 14:56 Der er 8 kommentarer og
1 løsning

Loade textfil

Ja, jeg har fundet sådan et smart newssystem på nettet, og har også fået sat det hele op. For at skrive en nyhed skal jeg så gå ind på den url www.x.xx/addnews.php så skriver jeg så nyheden, og den gemmer den så i en tekstfil (news.txt) den ligger så i en anden sti på siden nemlig: www.x.xx/news.txt. Mit spørgsmål er så, nu har jeg jo nyheden over i textfilen, men hvordan får jeg den over på mit site www.x.xx/index altså ind på selve forsiden. Jeg har brug for at loade  nyheden der står i tekstfilen, men hvordan?
Avatar billede jakobdo Ekspert
15. juni 2005 - 15:08 #1
Du kan bruge fopen og læse filen ind...
Men har du hørt om databaser?
Det vil være langt nemmere at håndtere nyheder i sådan en fætter.
Avatar billede jakobdo Ekspert
15. juni 2005 - 15:09 #2
Kig evt. også på denne funktion: http://dk2.php.net/manual/en/function.file-get-contents.php
Hvis altså ikke du hellere vil bruge DB.
Avatar billede mr-mycom Nybegynder
15. juni 2005 - 15:10 #3
Jeg har ikke sat mig ind i databaser..!? Er det svært, og hvor lang tid skal jeg forvente at rode med det, inden ejg så har mit site oppe at køre..!?
Avatar billede jakobdo Ekspert
15. juni 2005 - 15:26 #4
databaser er ikke sådan bare lige...
SÅ hvis du er under tidspres, så tag filen.
Men jeg synes du skal kigge på php/mysql løsningen når du har tid.
Avatar billede mr-mycom Nybegynder
15. juni 2005 - 15:30 #5
Det vil ejg gøre når jeg får tid..

Men altså den skriver jeg skal bruge den her til at vise filen på mit site..:
<?PHP
$data = file('news.txt');
$data = array_reverse($data);
foreach($data as $element) {
    $element = trim($element);
    $pieces = explode("|", $element);
    echo $pieces[2] . "<BR>" . "<b>Posted by " . $pieces[1] . " on " . $pieces[0] . "</b><BR><BR>";
}
?>

Men hvis jeg nu vil bruge fopen?

Kan du give et eks.?
Avatar billede jakobdo Ekspert
15. juni 2005 - 20:18 #6
Funktionen file som du allerede bruger, er lettere end fopen.
Virker det kode du har der ikke?

Eller ønsker du ny funktionalitet?
Avatar billede mr-mycom Nybegynder
16. juni 2005 - 13:41 #7
Her har du hele koden..!

<?
if($action == "edit" && isset($HTTP_POST_VARS['password'])) {
    //obviously you should change this password on the next line
    if($HTTP_POST_VARS['password'] == "editpass") {
        //First let's recompile that line with the pipe symbols so we can reinsert it
        $line = $HTTP_POST_VARS['date'] . "|" . $HTTP_POST_VARS['name'];
        $line .= "|" . $HTTP_POST_VARS['news'];
        $line = str_replace("\r\n","<BR>",$line);
        $line .= "\r\n";
        $data = file('news.txt');
        $data[$id] = $line;
        //the next line makes sure the $data array starts at the beginning
        reset($data);
        //now we open the file with mode 'w' which truncates the file
        $fp = fopen('news.txt','w');
        foreach($data as $element) {
            fwrite($fp, $element);
        }
        fclose($fp);
        echo "Item Edited!<BR><BR>\n";
        echo "<a href=\"$PHP_SELF\">Go Back</a>\n";
        exit;
    } else {
        echo "Bad password!\n";
        exit;
    }
}
if($action == "edit") {
    $data = file('news.txt');
    $element = trim($data[$id]);
    $pieces = explode("|", $element);
    //the next line is to reverse the process of turning the end of lines into breaking returns
    $news = str_replace("<BR>","\r\n",$pieces[2]);
    echo "Make the changes you would like and press save.<BR>\n";
    echo "<FORM ACTION=\"$PHP_SELF?action=edit\" METHOD=\"POST\" NAME=\"editform\">\n";
    echo "Name:<BR>\n";
    echo "<INPUT TYPE=\"text\" SIZE=\"30\" NAME=\"name\" value=\"".$pieces[1]."\"><BR>\n";
    echo "The News:<BR>\n";
    echo "<TEXTAREA NAME=\"news\" COLS=\"40\" ROWS=\"5\">".$news."</TEXTAREA><BR><BR>\n";
    echo "Password:<BR>\n";
    echo "<INPUT TYPE=\"password\" SIZE=\"30\" NAME=\"password\"><BR>\n";
    echo "<INPUT TYPE=\"hidden\" NAME=\"date\" VALUE=\"".$pieces[0]."\">\n";
    echo "<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">\n";
    echo "<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Save\"><BR>\n";
    echo "</FORM>\n";
    exit;
}
if($action == "delete" && isset($HTTP_POST_VARS['password'])) {
    //obviously you should change this password on the next line
    if($HTTP_POST_VARS['password'] == "deletepass") {
        $data = file('news.txt');
        //this next line will remove the single news item from the array
        array_splice($data,$id,1);
        //now we open the file with mode 'w' which truncates the file
        $fp = fopen('news.txt','w');
        foreach($data as $element) {
            fwrite($fp, $element);
        }
        fclose($fp); 
        echo "Item deleted!<BR><BR>\n"; 
        echo "<a href=\"$PHP_SELF\">Go Back</a>\n";
        exit;
    } else {
        echo "Bad password!\n";
        exit;
    }
}
if($action == "delete") {
    echo "<H2>You are about to delete the following news item.</H2>\n";
    $data = file('news.txt');
    $element = trim($data[$id]);
    $pieces = explode("|", $element);
    echo $pieces[2] . "<BR>" . "<b>Posted by " . $pieces[1] . " on " . $pieces[0] . "</b>\n";
    echo "<BR><BR>\n";
    echo "Are you sure you want to delete this news item? If so, enter the password and click on Delete.<BR>\n";
    echo "<FORM ACTION=\"$PHP_SELF?action=delete\" METHOD=\"POST\" NAME=\"deleteform\">\n";
    echo "Password:<BR>\n";
    echo "<INPUT TYPE=\"password\" SIZE=\"30\" NAME=\"password\"><BR>\n";
    echo "<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$id\">\n";
    echo "<INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Delete\"><BR>\n";
    echo "</FORM>\n";
    exit;
}
echo "<H1><u>Current News</u></H1>\n";
$data = file('news.txt');
//next line removed to make everything else easier in the admin script
//$data = array_reverse($data);
foreach($data as $key=>$element) {
    $element = trim($element);
    $pieces = explode("|", $element);
    echo $pieces[2] . "<BR>" . "<b>Posted by " . $pieces[1] . " on " . $pieces[0] . "</b>\n";
    echo " <a href=\"$PHP_SELF?action=delete&id=$key\">Delete</a>\n";
    echo " <a href=\"$PHP_SELF?action=edit&id=$key\">Edit</a>\n";
    echo "<BR><BR>\n";
}
echo "<HR>\n";
echo "<H1><u>Add News</u></H1>\n";
if($HTTP_POST_VARS['submit']) {
    if($HTTP_POST_VARS['password'] == 'pass') {
        if(!$HTTP_POST_VARS['name']) {
            echo "You must enter a name";
            exit;
        }
        if(!$HTTP_POST_VARS['news']) {
            echo "You must enter some news";
            exit;
        }
        if(strstr($HTTP_POST_VARS['name'],"|")) {
            echo "Name cannot contain the pipe symbol - |";
            exit;
        }
        if(strstr($HTTP_POST_VARS['news'],"|")) {
            echo "News cannot contain the pipe symbol - |";
            exit;
        }
        $fp = fopen('news.txt','a');
        if(!$fp) {
            echo "Error opening file!";
            exit;
        }
        $line = date("m.d.y") . "|" . $HTTP_POST_VARS['name'];
        $line .= "|" . $HTTP_POST_VARS['news'];
        $line = str_replace("\r\n","<BR>",$line);
        $line .= "\r\n";
        fwrite($fp, $line);
        if(!fclose($fp)) {
            echo "Error closing file!";
            exit;
        }
        echo "<b>News added!</b>\n"; 
    } else {
        echo "Bad Password";
    }
}
?>
<FORM ACTION="<?=$PHP_SELF?>" METHOD="POST" NAME="newsentry">
Your name:<BR>
<INPUT TYPE="text" SIZE="30" NAME="name"><BR>
The News:<BR>
<TEXTAREA NAME="news" COLS="40" ROWS="5"></TEXTAREA><BR><BR>
News Password:<BR>
<INPUT TYPE="password" SIZE="30" NAME="password"><BR>
<INPUT TYPE="submit" NAME="submit" VALUE="Post it!"><BR>
</FORM>
Avatar billede mr-mycom Nybegynder
17. juni 2005 - 13:48 #8
Fik hjælp af en anden, problemet var bare at mit dokument var et HTML dokument :D:D:D:D:D IM A DUMMIE Tak for hjælpen ellers
Avatar billede jakobdo Ekspert
23. juni 2005 - 09:44 #9
Det var så lidt! :o)
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