13. september 2005 - 20:18
Der er
12 kommentarer
Kunne tilføje kommentare
Ja, jeg står med et lillebitte newsscript, som hverken kræver MySQl eller noget. Jeg vil bare gerne have sådan at man kan skrive en comment..? Hvordan gør jeg? Jeg bruger fopen til at hente nyhederne, som bliver skrevet til en .txt fil.
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
13. september 2005 - 20:35
#1
F.eks. sådan? $handle = fopen ("dinFil.txt", "a"); // Åben filen for "append". fwrite($handle, "Din kommentar - placeres sidst i filen."); fclose($handle);
15. september 2005 - 12:17
#2
Helt så simpelt er det vist ikke, da jeg forstår det således at filen indeholder mere end én nyhed. Altså ville du skulle håndtere både hvilken nyhed, og hvilke kommentarer der er til nyheden. Endvidere ville jeg, tror jeg, gemme kommentarer i en seperat fil.
15. september 2005 - 15:31
#3
Ja, alle nyhederne ligger i en .txt fil som hedder news.txt. jeg ader så nyhed via php site, og den bliver skrevet til news.txt, så på index.php har jeg en kode der bruger fopen news.txt og så viser den nyhederne..
15. september 2005 - 17:16
#4
Hvis kommentarer til en enkelt nyhed, inde mellem en masse andre, ikke bare skal placeres sidst i tekst-filen, så bliver du nødt til at beskrive strukturen for os.
15. september 2005 - 19:09
#5
Det er her jeg skriver nyheden..: <? 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> Og sådan her loader jeg den på siden: <?PHP $data = file('news.txt'); $data = array_reverse($data); foreach ($data as $element) { $element = trim($element); $pieces = explode("|", $element); echo "<b>Posted by " . $pieces[1] . "</b> on " . $pieces[0] . "<BR>" . $pieces[2] . "<BR><BR>"; } ?>
15. september 2005 - 19:17
#6
Det var nu mere strukturen af tekstfilen jeg efterspurgte :^)
15. september 2005 - 19:17
#7
Med den struktur news.txt har, vil jeg mene det ikke lader sig gøre, og tilføje kommentarer, der knytter sig til de enkelte nyheder.
15. september 2005 - 19:19
#8
nielle - Den er bygget op med en masse |'s til at adskille forskellige sektioner, uden at man kan se hvad der er hvad. Der bliver så talt op i et array, og ud fra det skriver man nyheden til siden
15. september 2005 - 22:37
#9
Præsic som stalle siger. Den er bygget op med |. Men det er ikke muligt at kunne tilføje kommentare?
15. september 2005 - 22:50
#10
Du skal i hvert fald have en eller anden slags id på nyhederne, hvis der skal kunne kobles kommentarer på dem. Ellers er der ikke noget at "hænge" kommentarene på. Og jeg vil da stadig væk gerne se et eksempel på en tekst-fil. Ikke hele filen, blot nok til at få et indtryk af hvordan strukturen er.
19. september 2005 - 21:43
#11
19. september 2005 - 22:04
#12
Takker. :^) Du bliver som sagt nødt til at indføre en eller anden form for unikt id pr. nyhed i din fil. Ellers kan du ikke sammenkoble kommentarer med den nyhed som de høre til.
Vi tilbyder markedets bedste kurser inden for webudvikling