Newssript via PHP / Mysql

Features:
- News Anzeigen
- News Hinzufügen ( Wysiwy Editor )
- News Ändern
- News Löschen

- Kommentare Schreiben
- Kommentare Anzeigen
- Kommentare Löschen


----------------------------

In diesem Tutorial erkläre ich euch wie man ein Newsscript programmiert!

Also ich fange jetzt mal ganz einfach an. Hie rist die news.php in der alle News gelistet werden.

die Datei:

news.php

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php echo $title; ?></title>
</head>
<body>
</body>
</html>
<?php
require('config.php');
echo "<link href='style.css' rel='stylesheet' type='text/css'>";
$result = mysql_query("SELECT id,titel,text,autor from news ORDER by id DESC")
or die("<div align='center'>Error</div>");
$anzahl = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){
527 = $row['id'];
$titel = $row['titel'];
$text = $row['text'];
$autor = $row['autor'];
$date = $row['date'];

$ausgabe.="
<div align='center'>
<table width='50%' border='0' cellpadding='2' cellspacing='2'>
<!--DWLayoutTable-->
<tr>
<td width='755' height='25' valign='top'><a href='news_show.php?id=527'>$titel</a></td>
</tr>
</table>
</div>

";
}

echo $ausgabe;
echo "
<style type='text/css'>
<!--
.Stil2 {
color: #000000;
font-weight: bold;
font-size: 12px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
-->
</style>
<div align='center' class='Stil2'>
<h5>Insgesamt sind $anzahl News in der Datenbank eingetragen</h5>
<hr>
<br>
<a href='news_admin.php'>News Hinzufügen</a><br>
[$copyright<br>
<br>
</div>

";
?>


Die News werden aus der Datenbank ausgelesen und dann in einer Variable gespeichert.

Jetzt folt die news_show.php die benötigt wird um die News ganz anzueigen. Hier befindet sich auch das Kommentarmodul.


<?php
require('config.php');
require('smilies.php');

echo "<link href='style.css' rel='stylesheet' type='text/css'>";
$title = "News Anzeigen von ID: 527";
echo "<title>$title</title>";

if(is_numeric($_GET['id'])){
$result = mysql_query("SELECT id,titel,text,newsimg,autor from news WHERE id = 527")
or die (mysql_error());
$anzahl = mysql_num_rows($result);
while($row = mysql_fetch_array($result)){
527 = $row['id'];
$titel = $row['titel'];
$text = $row['text'];
$autor = $row['autor'];

$ausgabe = "
<style type='text/css'>
<!--
.Stil5 {font-size: 16px}
-->
</style>
<table width='100%' border='0' cellpadding='0' cellspacing='0'>
<!--DWLayoutTable-->
<tr>
<td height='25' colspan='3' valign='top' class='Stil5'><a href='news_show.php?id=527'>$titel</a></td>
</tr>
<tr>
<td height='25' colspan='3' valign='top'>$text</td>
</tr>
<tr>
<td width='942' height='25'>&nbsp;</td>
<td width='49' valign='top'>Autor:</td>
<td width='254' valign='top'>$autor</td>
</tr>
</table>
";
echo $ausgabe;
}
echo "
<table width='100%' border='0' cellpadding='0' cellspacing='0' class='comment1'>
<!--DWLayoutTable-->
<tr>
<td width='1245' height='23' valign='top' background='img/comment.jpg'><strong>Kommentare</strong></td>
</tr>
</table>
";
include('comments.php');
echo "<div align='center'><a href='news.php'>Zurück</a></div><br>";
}
?>


Jetzt folgen die Kommentare:

// comments.php


<link href='style.css' rel='stylesheet' type='text/css'>
<?php
include('config.php');
if(is_numeric($_GET['id'])){
$result = mysql_query("SELECT cid, comment, autor from comments WHERE newsid = 527") or die(mysql_error());
$anzahl = 0;
while($row = mysql_fetch_array($result)){
$newsid = $row['id'];
$cid = $row['cid'];
$comment = $row['comment'];
$autor = $row['autor'];
$ipadresse = $row['ip'];
$anzahl++;
$ausgabe1.="
<style type='text/css'>
<!--
.Stil1 {color: #FFFFFF}
.Stil2 {
font-size: 16px;
font-weight: bold;
color: #000000;
}
.Stil3 {color: #000000}
.Stil4 {font-size: 18px}
.Stil5 {font-size: 14px}
-->
</style>
<br>
<table width='100%' border='0' cellpadding='0' cellspacing='0' class='comment'>
<!--DWLayoutTable-->
<tr>
<td width='1017' height='25' valign='top'><table width='100%' border='0' cellpadding='0' cellspacing='0' background='img/comment_header.jpg'>
<!--DWLayoutTable-->
<tr>
<td width='881' height='25' valign='top' background='img/comment_header.jpg' class='Stil1'><span class='Stil2'>$anzahl) <a href='../users.php?id=527'>$autor</a> | IP: $ipadresse</span></td>
<td width='136' valign='top' background='img/comment_header.jpg'><span class='Stil3'> <a href='comments.php?do=del&cid=$cid'>L&ouml;schen</a> | <a href='comments.php?do=del&cid=$cid&login&$login'>Editieren</a></span></td>
</tr>
</table></td>
</tr>
<tr>
<td height='25' valign='top' bgcolor='#F4F4F4'>$comment</td>
</tr>
</table>
<div align='center' class='Stil4'></div>

";
}
echo $ausgabe1;
}
include('comments_add.php');
foreach($_POST as $key=>$element){
${"c_".$key} = $element;
}
if($_GET['action']=='eintragen'){
if(isset($_POST['submit'])){
$newcomment = "INSERT INTO comments (newsid, autor, comment, ip) VALUES ('$c_newsid', '$c_name', '$c_comment', '$c_ipadresse')";
mysql_query($newcomment) or die(mysql_error());
echo "<div align='center' class='Stil4'>Erfolgreich! <a href='news.php'>Zurück zu den Kommentaren</a></div>";
}
}
if($_GET['do']=='del' && $_GET['cid']==$cid){
mysql_query("DELETE FROM comments WHERE cid = $cid") or die (mysql_error());
echo "<a href='news.php'>Zurück zu den News</a>";
}
?>


comments.add php

Diese datei wird benötigt das das Kommentarformulat angezeigt werden kann.

<?php $ipadresse= ''.$_SERVER["REMOTE_ADDR"]."
"; ?>

<form method="POST" action="comments.php?action=eintragen">
<div align="left">
<table width="682" border="0" cellpadding="2" cellspacing="0" id="1">
<!--DWLayoutTable-->
<tr>
<td width="199" height="26" valign="top">Name:</td>
<td width="475" valign="top"><input name="name" type="text" size="75">
</td>
</tr>
<tr>
<td height="346" valign="top">Kommentar Text: </td>
<td valign="top"><textarea name="comment" cols="75" rows="20"></textarea>
</td>
</tr>
<tr>
<td height="26" valign="top">Newsid:</td>
<td valign="top"><input name="newsid" type="text" value="<?php echo 527; ?>" readonly="true"></td>
</tr>
<tr>
<td height="25" valign="top">IP-Adresse:</td>
<td valign="top"><input name="ipadresse" type="text" value="<?php echo $ipadresse; ?>" readonly="true"></td>
</tr>
<tr>
<td height="2"></td>
<td></td>
</tr>
</table>
<div align="center">
<input name="submit" type="submit" value="submit">
</div>
</div>
</form>


Und jetzt folgt noch die wichtigste datei, die news_admin.php. Hier könnt ihr mittels Wysiwyg Editor eure News erstellen. Den Editor bekommt ihr unter: http://www.fckeditor.net/

//news_admin.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<?php
include('config.php');
$title = "News Admin - News Manager v0.1";
echo "<title>$title</title>";

foreach($_POST as $key=>$element){
${"w_".$key} = $element;
}
$fehler=FALSE;
if($_GET['do']=='enter'){
if(empty($_POST['titel'])){
$error1 = "*Bitte Titel einfügen!";
$fehler=TRUE;
}
if(empty($_POST['autor'])){
$error2 = "*Bitte Autor einfügen!";
$fehler=TRUE;
}
if(isset($_POST['submit'])&&(!empty($_POST['submit']))&&(!$fehler)){
mysql_query("INSERT INTO `news` (`id`, `text`, `autor`, `titel`, `newsimg`, `cat`) VALUES ('$w_id', '$w_FCKeditor1', '$w_autor', '$w_titel'
,'$w_newsimg','$w_cat')");
echo "<div align='center><a href='news.php'>Zur Newsübersicht</a></div>";
} else { $error_fatal = "Bitte alle Felder ausfüllen"; }
if(isset($_POST['reset'])){
unset($_POST); }
}

?>
<style type="text/css">
<!--
@import url("style.css");
.Stil3 {color: #FF9900}
-->
</style>
<form method="POST" action="news_admin.php?do=enter">
<table width="100%" border="1">
<!--DWLayoutTable-->
<tr>
<td width="106" height="26">News Titel: </td>
<td width="895" valign="top"><input name="titel" type="text" size="100">
<?php echo $error1; ?></td>
</tr>
<tr>
<td height="26">News Autor: </td>
<td valign="top"><input name="autor" type="text" size="100">
<?php echo $error2; ?></td>
</tr>
<tr>
<td height="346">News Text: </td>
<td valign="top"><p>
<?php
include("../fckeditor/fckeditor.php");
$oFCKeditor = new FCKeditor('FCKeditor1') ;
$oFCKeditor->BasePath = '../fckeditor/';
$oFCKeditor->Value = '';
$oFCKeditor->Create() ;
?>&nbsp;
</p></td>
</tr>
<tr>
<td height="25" valign="top">Kategorie:</td>
<td valign="top"><input name="cat" type="text" size="100" value="cat"></td>
</tr>
<tr>
<td height="33"></td>
<td>&nbsp;</td>
</tr>
</table>
<br>
<div align="center">
<input type="submit" name="submit" value="Senden">
<input type="reset" name="reset" value="Zur&uuml;cksetzen">
</div>
</form>
<br>

Kommentare

unkie
unkie am Dienstag, 5. Juli 2005 um 20:24

[list]
[*]Die Sort-Funktion geht nicht! Sieht zumindestens so aus!
[*]Wo ist die Smilie.php o.O
[/list]

Warden
Warden am Donnerstag, 7. Juli 2005 um 09:08

das hat noch nicht gefunkt :-(

Wie ich schon sagte, es is ein verdammt einfach Newsscript! Ich habs aber schon weiterentwicheklt mit Kommentar Funktion usw

Warden
Warden am Donnerstag, 7. Juli 2005 um 09:11

ICH HAB DAS WICHTIGSTE VERGESSSSSEN!
:(

Die Datenbank infos :-(

Markus René Einicher
Markus René Einicher am Sonntag, 24. Juli 2005 um 20:17

und eine ordentliche Einleitung was dieses News-Skript überhaupt tut.

Warden
Warden am Freitag, 29. Juli 2005 um 00:24

Ich entwickle dieses newsscript gerade weiter zu einem kleinen CMS. Ich stelle es bald online zum Testen :P

www.itpro-forum.de

cruz
cruz am Mittwoch, 4. Januar 2006 um 14:46

da sind einige fatale fehler wenn man sich dieses script anschaut