Опростена система за новини
Сега ще се научим как да си направим олекотена система за новини. Урока е преведен специално за Web-tourist.
- Започваме със създаването на един празен документ с име news.php. Когато го качвате през ФТП клиента задайте пермишъна(CHMOD) на 777 иначе скрипта няма да работи.
- Продължаваме на татък като създаваме файла add.php
<?php
if (!isset($_POST['news'])) {
?>
<h1>Add to the News Page</h1>
<table>
<FORM action="add.php" method="POST">
<tr>
<td align=right>Title:</td>
<td><INPUT TYPE="TEXT" name="title"></td>
</tr>
<tr>
<td align=right valign=top>News:</td>
<td><TEXTAREA WRAP=VIRTUAL NAME="news" COLS=50 ROWS=15></TEXTAREA></td>
</tr>
<tr>
<td></td>
<td><INPUT TYPE="SUBMIT" name="submit" value="Submit"></td>
</tr>
</FORM>
</table>
<?php
} else {
$title = $_POST['title'];
$news = $_POST['news'];
$da = getdate();
$date="$da[weekday] $da[mday] $da[month] $da[year]";
$news = ("$title|$date|$news\n");
$file = fopen("news.php", "r");
$read = fread($file, filesize("news.php"));
fclose($file);
$newsfile = fopen("news.php", "w");
$news=stripslashes($news);
fwrite($newsfile, "$news$read");
fclose ($newsfile);
echo "News added";
}
?>Този документ служи за постване на новите новини.
- Сега си правим един файл – delete.php който служи за триене на новини,ако искате да триете.
<?php
$posts = file("news.php");
if (!isset($_GET['delete'])) {
echo "<h1>Delete a News Post</h1>";
$i = 0;
while ($i <= count($posts)-1) {
$tempnews = (explode('|', $posts[$i], 3));
echo "<hr><p><b>$tempnews[0]</b> - $tempnews[1]</p><p>$tempnews[2]</p>";
echo "<a href=\"delete.php?delete=$i\">Delete the above post</a></p>";
$i++;
}
} else {
$todelete = $_GET['delete'];
$posts[$todelete]="";
$finishedoutput = implode("", $posts);
$blah = fopen("news.php", "w");
fwrite($blah, "$finishedoutput");
fclose ($blah);
echo "<h1>News post removed</h1>";
echo "$posts[$todelete]";
echo "<p><a href=\"delete.php\">Click here to delete another</a></p>";
}
?>Следва да си направим документа – allnews.php – той показва всички новини от news.php със специфично оформление.
<?php
echo "<h1>All News</h1>";
$allnews = file("news.php");
$i = 0;
while ($i <= count($allnews)-1) {
$tempnews = (explode('|', $allnews[$i], 3));
echo "<hr><p><b>$tempnews[0]</b> - $tempnews[1]</p><p>$tempnews[2]</p>";
$i++;
}
echo "<hr>";
?>Сега правим документа – latest.php
<?php
echo "<h1>Latest News</h1>";
$allnews = file("news.php");
$i = 0;
while ($i <= 2) {
$tempnews = (explode('|', $allnews[$i], 3));
if ($tempnews[1] != "") {
echo "<hr><p><b>$tempnews[0]</b> - $tempnews[1]</p><p>$tempnews[2]</p>";
}
$i++;
}
echo "<hr>";
echo "<p><a href=\"allnews.php\">View All News</a></p>";
?>последния документ който правим е rss.php
<?php
header('Content-type: text/xml');
echo "<?xml version=\"1.0\"?>\n";
echo "<rss version=\"2.0\">\n";
echo " <channel>\n";
echo " <title>YOUR WEBSITE TITLE</title>\n";
echo " <link>YOUR WEBSITE URL</link>\n";
echo " <description>YOUR WEBSITE DESCRIPTION</description>\n";
echo " <language>en-us</language>\n";
echo " <generator>PHP RSS Generator</generator>\n";
echo " <managingEditor>E-MAIL ADDRESS OF EDITOR</managingEditor>\n";
echo " <webMaster>E-MAIL ADDRESS OF WEBMASTER</webMaster>\n";
$allnews = file("news.php");
$i = 0;
while ($i <= count($allnews)-1) {
$tempnews = (explode('|', $allnews[$i], 3));
$actualtitle = htmlentities(strip_tags($tempnews[0]));
$actualdescription = htmlentities(strip_tags($tempnews[2]));
$pubDate = strftime("%a, %d %b %Y %T GMT", strtotime($tempnews[1]));
echo " <item>\n";
echo " <title>$actualtitle</title>\n";
echo " <link>http://YOUR WEBSITE ADDRESS/allnews.php</link>\n";
echo " <guid>http://YOUR WEBSITE ADDRESS/allnews.php</guid>\n";
echo " <pubDate>$pubDate</pubDate>\n";
echo " <description>$actualdescription</description>\n";
echo " </item>\n";
$i++;
}
echo " </channel>\n";
echo "</rss> ";
?>С това системата е готова!


