Verfasst von Alice am 04.05.2009 - wurde schon 50248 mal gelesen
PHP
Newssystem
Kommentare
Funktion
Script
Loading...
![]()
Verfasst von Alice am 04.05.2009 - wurde schon 50248 mal gelesen
PHP
Newssystem
Kommentare
Funktion
Script
<?php // config.inc.php
//---------------------------
$host = "localhost"; // Adresse des Datenbankservers, fast immer localhost
$dbuser = ""; // Dein MySQL Benutzername
$dbpass = ""; // Dein MySQL Passwort
$dbase = ""; // Name der Datenbank
//---------------------------
$connection = mysql_connect($host,$dbuser,$dbpass) OR DIE ("Keine Verbindung zu der Datenbank moeglich.");
$db = mysql_select_db($dbase , $connection) OR DIE ("Auswahl der Datenbank nicht moeglich.");
error_reporting(E_ALL ^ E_NOTICE);
//-----------------------------------------------------------------------------------------------
// Funktion um die DB-Eintraege zu pruefen => SQL Injektions
//-----------------------------------------------------------------------------------------------
function clean_it($dirty){
// Auswirkungen von magic_quotes_gpc zuruecksetzen, wenn ON
if (get_magic_quotes_gpc()) {
$clean = mysql_real_escape_string(stripslashes(htmlspecialchars($dirty)));
}else{
$clean = mysql_real_escape_string(htmlspecialchars($dirty));
}
return $clean;
}
// Funktion zum Fehler ausgeben
function get_error($var){
$fehler = "<div class=\"error\"><h2>Error ...</h2>\n<p>".$var."</p>\n</div>\n";
return $fehler;
}
// Funktion um no error ausgeben
function get_okay($var){
$fehler = "<div class=\"no_error\"><h2>Prima ...</h2>\n<p>".$var."</p>\n</div>\n";
return $fehler;
}
//-----------------------------------------------------------------------------------------------
// Blaetterfunktion => Seitennavigation
//-----------------------------------------------------------------------------------------------
function get_navi($go, $total, $pfad, $ausgabe = false, $ende = 10, $p = 3){
//-----------------------------------------------------------------------------------------------
// $pfad => Dateipfad
// $total => Anzahl der in DB
// $ende => Anzahl der Datensaetze die Pro Seite angezeigt werden sollen
// $p => Anzahl der Links die in der Seitenavigation ausgegeben werden
// $ausgabe = false => Seitennavigation NICHT ausgeben oberhalb der DB Abfrage
//-----------------------------------------------------------------------------------------------
$seiten = ceil($total / $ende); // Berechnet die Seitenanzahl insgesamt
if(!isset($go)){ // korrigieren der aktuellen Seite
$go = 1; // Sofern $go nicht uebergeben wurde
}elseif($go <= 0 || $go > $seiten){
$go = 1; // Variable definieren
}else{ // Wenn Obiges nicht zutraf
$go = clean_it($go); // Variable definieren
}
$links = array(); // Linkkette bilden
// Seite die vor der aktuellen Seite kommt definieren
if(($go - $p) < 1){ $davor = $go - 1; }else { $davor = $p; }
// Seite die nach der aktuellen Seite kommt definieren
if(($go + $p) > $seiten){ $danach = $seiten - $go; }else{ $danach = $p; }
$off = ($go - $davor); // Variable definieren
if ($go- $davor > 1){ // Link definieren => Zur Erste Seite springen
$first = 1;
$links[] = "<a href=\"".$pfad."".$first."\" title=\"Zur ersten Seite springen\">« Erste ...</a>\n";
}
if($go != 1){ // Link definieren => eine Seite zurueck blaettern
$prev = $go-1;
$links[] = "<a href=\"".$pfad."".$prev."\" title=\"Eine Seite zurueck blaettern\">«</a>\n";
}
for($i = $off; $i <= ($go + $danach); $i++){ // einzelne Seitenlinks erzeugen
if ($i != $go){ // Link definieren
$links[] = "<a href=\"".$pfad."".$i."\">$i</a>\n";
}elseif($i == $seiten) { // aktuelle Seite, ein Link ist nicht erforderlich
$links[] = "<span class=\"current\">$i</span>\n";
}elseif($i == $go){ // aktuelle Seite, ein Link ist nicht erforderlich
$links[] = "<span class=\"current\">$i</span>\n";
} // close if $i
}// close for
if($go != $seiten){ // Link definieren => eine Seite weiter blaettern
$next = $go+1;
$links[] = "<a href=\"".$pfad."".$next."\" title=\"Eine Seite weiter blaettern\">»</a>\n";
}
if($seiten - $go - $p > 0 ){ // Link definieren => Zur letzen Seite springen
$last = $seiten;
$links[] = "<a href=\"".$pfad."".$last."\" title=\"Zur letzten Seite springen\">... Letzte »</a>\n";
}
$start = ($go-1) * $ende; // Berechne den Startwert fuer die DB
$link_string = implode(" ", $links); // Zusammenfuegen der einzelnen Links zu einem String
// -------------------------------------- Seitennavigation ausgeben ----------------------------
if($ausgabe == true){
echo "<div id=\"navigation\">\n";
echo "<span class=\"pages\">Seite $go von $seiten</span>\n";
echo $link_string; // Ausgabe der Seitennavigation
echo "</div> \n";
} //close ausgabe
// -------------------------------------- Seitennavigation ende --------------------------------
return array($start, $ende);
} // close function
//-----------------------------------------------------------------------------------------------
// BB Code funktion
//-----------------------------------------------------------------------------------------------
function bbcode($bb){
$php_header = '<div class="php">';
$php_footer = '</div>';
// PHP Code zwischenspeichern
$c = md5(time());
preg_match_all("/\[ php \](.*?)\[\/ php \]/si", $bb, $results);
for($i=0;$i<count($results[1]);$i++) {
$bb = str_replace($results[1][$i], $c.$i.$c, $bb);
}
// Formatierung
$search[] = '[b]';
$search[] = '[/b]';
$search[] = '[i]';
$search[] = '[/i]';
$search[] = '[u]';
$search[] = '[/u]';
$search[] = '[quote]';
$search[] = '[/quote]';
$search[] = '[left]';
$search[] = '[/left]';
$search[] = '[right]';
$search[] = '[/right]';
$search[] = '[center]';
$search[] = '[/center]';
$search[] = '[ code ]';
$search[] = '[/ code ]';
$replace[] = '<b>';
$replace[] = '</b>';
$replace[] = '<i>';
$replace[] = '</i>';
$replace[] = '<u>';
$replace[] = '</u>';
$replace[] = '<blockquote>';
$replace[] = '</blockqoute>';
$replace[] = '<div style="text-align: left">';
$replace[] = '</div>';
$replace[] = '<div style="text-align: right">';
$replace[] = '</div>';
$replace[] = '<div style="text-align: center">';
$replace[] = '</div>';
$replace[] = '<pre class="code">';
$replace[] = '</pre>';
$bb = str_replace($search, $replace, $bb);
$search = array();
$replace = array();
$bb = preg_replace("/\[color=(.*)\](.*)\[\/color\]/Usi", "<span color=\"\1\">\2</span>", $bb);
$bb = preg_replace("/\[email=(.*)\](.*)\[\/email\]/Usi", "<a href=\"mailto:\1\">\2</a>", $bb);
$bb = preg_replace("/\[url=(.*)\](.*)\[\/url\]/Usi", "<a href=\"\1\">\2</a>", $bb);
$bb = preg_replace("/\[img\](.*)\[\/img\]/Usi", "<img src=\"\1\" alt=\"\" \>", $bb);
$bb = nl2br($bb);
// PHP Code highlighten
for($i=0;$i<count($results[1]);$i++) {
ob_start();
highlight_string(trim(html_entity_decode($results[1][$i])));
$ht = ob_get_contents();
ob_end_clean();
$all = $php_header.$ht.$php_footer;
$bb = preg_replace("/\[ php \]".$c.$i.$c."\[\/ php \]/siU", $all, $bb);
}
function get_bbcode($wo){ // BBCode Funktion
$bb = '<div class="bbcode">';
$bb.= '<img onclick="add(\'[b] [/b]\');" style="cursor:pointer" src="images/bold.png" alt="fett" title="fett" />';
$bb.= '<img onclick="add(\'[i] [/i]\');" style="cursor:pointer" src="images/italic.png" alt="krusiv" title="krusiv" />';
$bb.= '<img onclick="add(\'[u] [/u]\');" style="cursor:pointer" src="images/underline.png" alt="unterstrichen" title="unterstrichen" />';
$bb.= '<img onclick="add(\'[left] [/left]\');" style="cursor:pointer" src="images/left.png" alt="links ausrichten" title="links ausrichten" />';
$bb.= '<img onclick="add(\'[center] [/center]\');" style="cursor:pointer" src="images/center.png" alt="zentriert" title="zentriert" />';
$bb.= '<img onclick="add(\'[right] [/right]\');" style="cursor:pointer" src="images/right.png" alt="rechts ausrichten" title="rechts ausrichten" />';
$bb.= '<img onclick="add(\'[url=] [/url]\');" style="cursor:pointer" src="images/link.png" alt="Link einfuegen" title="Link einfuegen"/>';
$bb.= '<img onclick="add(\'[email=] [/email]\');" style="cursor:pointer" src="images/email.png" alt="Email Adresse einfuegen" title="Email Adresse einfuegen" />';
$bb.= '<img onclick="add(\'[img] [/img]\');" style="cursor:pointer" src="images/img.png" alt="Bild einfuegen" title="Bild einfuegen" />';
if($wo != "comi"){
$bb.= '<img onclick="add(\'[video] [/video]\');" style="cursor:pointer" src="images/video.png" alt="Video Einfuegen" title="Video Einfuegen" />';
}
$bb.= '<img onclick="add(\'[quote] [/quote]\');" style="cursor:pointer" src="images/zitat.png" alt="Zitat einfuegen" alt="Zitat einfuegen" />';
$bb.= '<img onclick="add(\'[code]0[/code]\');" style="cursor:pointer" src="images/code.png" alt="Code einfuegen" title="Code einfuegen" />';
$bb.= "<img onclick='add(\"[p h p] [/p h p] \");' style='cursor:pointer' src='images/php.png' alt='PHP Code einfuegen title="PHP Code einfuegen" />';
$bb.= '</div>';
echo $bb;
}
?><?php // header.php
session_start(); // Session starten
include('config.inc.php'); // DB-Verbindung einbinden
//ob_start(); // startet den Ausgabepuffer
$pfad = $_SERVER['SCRIPT_NAME']; // aktuellen Dateipfad ermitteln
if(!isset($_SESSION['login']) AND (basename($pfad) != 'admin.php')){ // Sofern NICHT eingeloggt
header("Location: admin.php"); // Weiterleitung
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GrafixxNews</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Content-Language" content="de" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="ram">
<div id="header">
<ul id="navi">
<li><a href="admin.php">Home</a></li>
<li><a href="admin.php">News</a></li>
<li><a href="cats.php">Kategorien</a></li>
<li><a href="show_comments.php">Kommentare</a></li>
</ul>
<h1>GrafixxNews</h1>
</div>
<div id="content"><?php
echo "</div>";
include("sidebar.php");
ob_end_flush(); // leert den Ausgabepuffer
?>
<div id="footer">
<p><a href="http://unnecessary.de">GrafixxNews</a> - <a href="http://alice-grafixx.de" titel="Photoshop Community">
Alice-Grafixx.de</a></p>
</div>
</body>
</html><?php // sidebar.php
echo "<div id=\"sidebar\">\n";
isset($_GET['action']) ? $action = clean_it($_GET['action']) : $action = ''; // Variable definieren
if(isset($_POST['submit_login'])){
$log_user = clean_it($_POST['log_user']); // Variable definieren
$log_pass = clean_it($_POST['log_pass']); // Variable definieren => MD5 Verschluesselung
$login = mysql_query("SELECT id FROM user WHERE name='$log_user' AND passwort='$log_pass'");
if(mysql_num_rows($login) > 0){ // korrekt eingeloggt
$row = mysql_fetch_object($login); // DATEN aus DB
$_SESSION['login'] = $row->id; // Session zuweisen
$_SESSION['user'] = $log_user; // Session zuweisen
header("Location: admin.php"); // Weiterleitung
}else{
echo get_error(' Logindaten fehlerhaft ...');
}
}
//--------------------------------------------------------
// Wenn Eingeloggt
//--------------------------------------------------------
if(isset($_SESSION['login'])){
echo "<h2>Welcome ".$_SESSION['user']."<small>";
echo "<a href=\"?action=logout\">Logout</a></small></h2>";
echo "<p><a href=\"post_news.php\" class=\"the_button\">Neuen Artikel verfassen</a></p>";
echo "<br />";
//--------------------------------------------------------
// Letzte Kommentare
//--------------------------------------------------------
echo "<h2>Neusten Kommentare</h2>\n";
$new_comi = mysql_query("SELECT id, name, comment, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM comments ORDER BY id DESC LIMIT 3");
if(mysql_num_rows($new_comi)<1){
echo "<p>Derzeit existieren keine Kommentare...</p>";
}
echo "<ul class=\"list\">";
// News ausgeben ausgeben
while($row_c = mysql_fetch_object($new_comi)){
echo "<li><strong>".$row_c->id.".</strong>";
echo substr($row_c->comment, 0, 80)." [..] <br />\n";
echo "<div class=\"right\">\n";
echo "<a href=\"edit_comments.php?id=".$row_c->id."\">Bearbeiten</a> \n";
echo "<a href=\"edit_comments.php?action=loeschen&id=".$row_c->id."\">[x]</a>\n";
echo "</div>\n ";
echo "<small>".$row_c->name." » <span class=\"green\">".$row_c->datum."</span></small>\n";
echo "</li>\n";
} // close while
echo "</ul>";
//--------------------------------------------------------
// Logout
//--------------------------------------------------------
if($action == 'logout'){
session_unset(); // Sessionvariable loeschen
session_destroy(); // Session zerstoeren
header("Location: admin.php"); // Weiterleitung
}
}else{
?>
<form action="" method="post">
<fieldset>
<legend><span class="blue">Grafixx</span> Login</legend>
<label>Name</label>
<input type="text" name="log_user" /><br />
<label>Passwort</label>
<input type="password" name="log_pass" />
<br /><br />
<input type="submit" value="Login" name="submit_login" class="button"/>
</fieldset>
</form>
<?php } /* Close login */ ?>
</div>
</div>
<?php // admin.php
include('header.php'); // header einbunden
if(isset($_SESSION['login'])){ // Sofern eingeloggt
echo "<h2>NewsArtikel</h2>\n";
// DB Abfragen
$abfrage = mysql_query("SELECT id FROM news");
$total = mysql_num_rows($abfrage); // Anzahl aller Zeilen in DB ermitteln
// ---------------------- Seitennavigationsdaten --------------------------------------------------
$per_page = "10"; // Anzahl der Links die Pro Seite angezeigt werden sollen
$p = "3"; // Anzahl der Links die in der Seitenavigation ausgegeben werden
isset($_GET['go']) ? $go = clean_it($_GET['go']) : $go = ''; // Variable definieren
// Blaetterfunktion aufrufen
list ($start, $ende) = get_navi($go, $total, $pfad.'?go=', false, $per_page, $p);
// ---------------------- ENDE Seitennavigationsdaten----------------------------------------------
$abfrage = mysql_query("SELECT id, title, news, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM news ORDER BY id DESC LIMIT $start,$ende");
if($total < 1){ // Pruefen ob Eintraege vorhanden
echo "<p>Bisher existieren keine Newsartikel ...</p>";
}else{
echo "<ul class=\"list\">";
// News ausgeben ausgeben
while($row = mysql_fetch_object($abfrage)){
// Anzahl der Kommentare ermitteln
$comments = mysql_query("SELECT id FROM comments WHERE news_id='$row->id'");
$com_num = mysql_num_rows($comments); // Anzahl der Kommentare
echo "<li>";
echo "<div class=\"right\">\n";
echo "<a href=\"post_news.php?action=edit&id=".$row->id."\">Bearbeiten</a> \n";
echo "<a href=\"post_news.php?action=loeschen&id=".$row->id."\">[x]</a>\n";
echo "</div>\n ";
echo "<strong><span class=\"green\">".$row->id.".</span> ".$row->title."</strong>\n";
echo "<p>".substr($row->news, 0, 80)." [...]</p>\n";
echo "<small>".$row->datum." » <a href=\"show_comments.php?id=".$row->id."\">".$com_num." Kommentar(e)</a>\n";
echo "</small>\n </li>\n";
} // close while
echo "</ul>\n<br /><br />";
// ---------------------- Seitennavigation ausgeben ------------------------------------------
// Blaetterfunktion aufrufen = > Ausgeben
get_navi($go, $total, $pfad.'?go=', true, $per_page, $p);
} // close Eintrage vorhanden
//------------------------------------------------------------------------------
}else{ // Sofern nicht eingeloggt ...
echo "<h2>Zugriff verweigert ...</h2>";
echo "<p>Du musst eingeloggt sein, um diese Seite aufrufen zu koennen ...</p>";
} // close eingeloggt
include('footer.php'); // Footer einbinden
?><?php // post_news.php
include('header.php'); // header einbunden
//------------------------------------------------------------------------------
if(isset($_GET['id'])){ // Sofern ID uebergeben wurde
$id = clean_it($_GET['id']); // Variable definieren
// DB Abfrage der Daten
$abfrage = mysql_query("SELECT title, news, cat FROM news WHERE id='$id'");
$row = mysql_fetch_object($abfrage);
}
//------------------------------------------------------------------------------
// Newseintrag loeschen
//------------------------------------------------------------------------------
isset($_GET['action']) ? $action = clean_it($_GET['action']) : $action = ''; // Variable definieren
if($action == 'loeschen'){
// Artikel loeschen
$delete = mysql_query("DELETE FROM news WHERE id='$id'");
// Kommentare zu diesem Artikel loeschen
$delete_com = mysql_query("DELETE FROM comments WHERE news_id='$id'");
if($delete AND $delete_com){ // Wenn Loeschung nicht erfolgt
header("Location: admin.php"); // Weiterleitung
}else{ // Wenn Eintrag nicht geloescht wurde => Fehlermeldung
echo get_error('Der Eintrag konnte leider nicht geloescht werden! ".mysql_error()."');
}
}
//------------------------------------------------------------------------------
// Formular auswerten
//------------------------------------------------------------------------------
if(isset($_POST['submit'])){ // Sofern Eintragen gedrueckt
$title = clean_it($_POST['title']); // Variable definieren
$news = clean_it($_POST['news']); // Variable definieren
$autor = clean_it($_SESSION['user']); // Variable definieren
if(empty($title) || empty($news) || empty($autor)){ // pruefen ob alles ausgefuellt wurde
echo get_error('Bitte Danke alle benoetigten Felder ausfuellen!');
}else{ // wenn alles ausgefuellt wurde
// Kategorien
if(empty($_POST['new_cat'])){$cat = clean_it($_POST['cat']);}else{$cat = clean_it($_POST['new_cat']);}
if(($_GET['action']) == 'edit'){ // Wenn action == edit
$eintragen = mysql_query("UPDATE news SET autor='$autor', title='$title', news='$news', cat = '$cat' WHERE id='$id' ");
}else{ // wenn action = new
$eintragen = mysql_query("INSERT INTO news (autor, title, news, cat, date) VALUES ('$autor','$title','$news','$cat', now())");
}// close action
if($eintragen){ // Sofern Eintrag geklappt hat
header("Location: admin.php"); // Weiterleitung
}else{ // Wenn Eintrag nicht geklappt hat => Fehlermeldung
echo get_error('Der Eintrag war leider nicht erfolgreich! ".mysql_error()."');
}
}// close empty
}// close isset
//------------------------------------------------------------------------------
if($action == 'edit'){ // Headline fuers Formular ermitteln
$headline = "Artikel ".$id." bearbeiten";
}else{
$headline = "Artikel verfassen";
}// close Headline ermitteln
//------------------------------------------------------------------------------
// Formular ausgeben
//------------------------------------------------------------------------------
?>
<script type="text/javascript">
/* Funtionn BBCode */
var n = 1;
function add(code) {
document.getElementById('bbcode').news.value += " " + code ;
}
</script>
<form action="" method="post" id="bbcode">
<fieldset>
<legend><?php echo $headline; ?></legend>
<label>Titel</label>
<input type="text" name="title" value="<?php echo $row->title; ?>" />
<br /><br />
<label>Kategorie</label>
<?php // wenn vorhandene - Kategorien auslesen
$query = mysql_query("SELECT DISTINCT cat FROM news WHERE cat != ''");
if(mysql_num_rows($query) != '0'){
echo "<select name=\"cat\" size=\"1\">\n";
echo "<option value=\"\">Kategorie waehlen</option>";
echo "<option value=\"\">---------------------</option>";
while($rows = mysql_fetch_object($query)){
echo "<option value=\"".$rows->cat."\">".$rows->cat."</option>";
}
echo "</select><br />\n";
}
?>
<input name="new_cat" type="text" value="<?php echo $row->cat;?>"/> <small>
Neue Kategorie erstellen</small>
<br /><br />
<?php get_bbcode('admin'); /* BBCode ausgeben */ ?>
<textarea rows="10" cols="85" name="news"><?php echo $row->news;?></textarea>
<br /><br />
<input type="submit" value="Eintragen" name="submit" class="button"/>
</fieldset>
</form>
<?php
include('footer.php');
?><?php // show_comments.php
include('header.php'); // header einbinden
if(isset($_GET['id'])){ // Wenn ID uebergeben wurde, alle Kommentare zu dieser news_ID ausgeben
$id = clean_it($_GET['id']); // Variable definieren
echo "<h2>Kommentare zu Artikel ".$id."</h2>\n";
// News auslesen
$result = mysql_query("SELECT id, name, url, comment, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM comments WHERE news_id ='$id'");
$pfad = "show_comments.php?id=".$id."&go="; // URL => Seitennavigation
}else{
echo "<h2>Kommentare</h2>\n";
// News auslesen
$result = mysql_query("SELECT id, name, url, comment, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM comments");
$pfad = "show_comments.php?go=";
}
$total = mysql_num_rows($result); // Anzahl aller Zeilen in DB ermitteln
// ---------------------- Seitennavigationsdaten --------------------------------------------------
$per_page = "5"; // Anzahl der News die Pro Seite ausgegeben werden sollen
$p = "5"; // Anzahl der Links die in der Seitenavigation ausgegeben werden
isset($_GET['go']) ? $go = clean_it($_GET['go']) : $go = ''; // Variable definieren
// Blaetterfunktion aufrufen = > Ausgeben
list ($start, $ende) = get_navi($go, $total, $pfad, false, $per_page, $p);
// ---------------------- ENDE Seitennavigationsdaten----------------------------------------------
if(isset($_GET['id'])){
$abfrage = mysql_query("SELECT id, name, url, comment, email, ip, DATE_FORMAT(date, '%d.%m.%Y') AS datum
FROM comments WHERE news_id ='$id' ORDER BY date DESC LIMIT $start, $ende");
}else{
$abfrage = mysql_query("SELECT id, name, url, comment, email, ip, DATE_FORMAT(date, '%d.%m.%Y') AS datum
FROM comments ORDER BY date DESC LIMIT $start, $ende");
}
if($total < 1){ // Pruefen ob Eintraege vorhanden
echo "<p>Zur Zeit existieren keine Kommentare ...</p>";
}else{
echo "<ul class=\"list\">";
// Kommentare ausgeben ausgeben
while($row = mysql_fetch_object($abfrage)){
if(empty($row->url)){ // Pruefen ob Website angegeben
$autor = $row->name; // Variable definieren
}else{ // Wenn Website angegeben
$autor = "<a href=\"".$row->url."\">".$row->name."</a>";
}
echo "<li>";
echo "<div class=\"right\">\n";
echo "<a href=\"edit_comments.php?id=".$row->id."\">Bearbeiten</a> \n";
echo "<a href=\"edit_comments.php?action=loeschen&id=".$row->id."\">[x]</a>\n";
echo "</div>\n ";
echo "<p>".substr($row->comment, 0, 80)." [...]</p>\n";
echo "<small>von ".$autor." - ".$row->email." am ".$row->datum." | ".$row->ip."\n";
echo "</small>\n </li>\n";
} // close while
echo "</ul>\n<br />";
// -------------------------------------- Seitennavigation ausgeben ----------------------------
// Blaetterfunktion aufrufen = > Ausgeben
get_navi($go, $total, $pfad, true, $per_page, $p);
// -------------------------------------- Seitennavigation ende --------------------------------
} // close Eintrage vorhanden
include('footer.php'); // footer einbinden
?><?php // edit_comments.php
include('header.php'); // header einbunden
//------------------------------------------------------------------------------
$id = clean_it($_GET['id']); // Variable definieren
//------------------------------------------------------------------------------
// Kommentar loeschen
//------------------------------------------------------------------------------
if(($_GET['action']) == 'loeschen'){
$delet = mysql_query("DELETE FROM comments WHERE id='$id' ");
if($delet){ // Wenn Loeschung nicht erfolgt
header("Location: show_comments.php"); // Weiterleitung
}else{ // Wenn Eintrag nicht geloescht wurde => Fehlermeldung
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Der Eintrag konnte leider nicht geloescht werden! ".mysql_error()."</p>\n</div>\n";
}
}
//------------------------------------------------------------------------------
// Kommentar bearbeiten
//------------------------------------------------------------------------------
if(isset($_POST['submit'])){ // Sofern Eintragen gedrueckt
$name = clean_it($_POST['name']); // Variable definieren
$email = clean_it($_POST['email']); // Variable definieren
$url = clean_it($_POST['url']); // Variable definieren
$comment = clean_it($_POST['comment']); // Variable definieren
if(empty($name) || empty($email) || empty($comment)){ // pruefen ob alles ausgefuellt wurde
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Bitte Danke alle benoetigten Felder ausfuellen!</p>\n</div>\n";
}else{ // wenn alles ausgefuellt wurde
$eintragen = mysql_query("UPDATE comments SET name='$name', email='$email', url='$url', comment='$comment' WHERE id='$id' ");
if($eintragen){ // Sofern Eintrag geklappt hat
header("Location: show_comments.php"); // Weiterleitung
}else{ // Wenn Eintrag nicht geklappt hat => Fehlermeldung
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Da lief was schief ... ".mysql_error()."</p>\n</div>\n";
}
}// close empty
}// close isset
// Kommentar aus DB holen
$abfrage = mysql_query("SELECT name, email, url, comment FROM comments WHERE id='$id'");
$row = mysql_fetch_object($abfrage);
//------------------------------------------------------------------------------
// Formular ausgeben
//------------------------------------------------------------------------------
?>
<script type="text/javascript">
/* Funtionn BBCode */
var n = 1;
function add(code) {
document.getElementById('bbcode').comment.value += " " + code ;
}
</script>
<form action="" method="post" id="bbcode">
<fieldset>
<legend>Kommentar bearbeiten</legend>
<label>Name</label>
<input type="text" name="name" value="<?= $row->name; ?>" /><br />
<label>Email</label>
<input type="text" name="email" value="<?= $row->email; ?>" /><br />
<label>URL</label>
<input type="text" name="url" value="<?= $row->url; ?>" /><br />
<?php get_bbcode('admin'); /* BBCode ausgeben */ ?>
<textarea rows="5" cols="80" name="comment"><?= $row->comment; ?></textarea>
<br /><br />
<input type="submit" value="Speichern" name="submit" class="button" />
</fieldset>
</form>
<?php
include('footer.php');
?><?php // cats.php
include('header.php'); // header einbinden
//------------------------------------------------------------------------------
// Kategorie Bearbeiten
//------------------------------------------------------------------------------
if($_GET['action'] == 'edit'){
if(isset($_POST['submit']) && !empty($_POST['cat'])){ // Sofern speichern gedrueckt
// DB Updaten
$update = mysql_query("UPDATE news SET cat = '".clean_it($_POST['cat'])."' WHERE cat = '".clean_it($_GET['cat'])."' ");
if($update){
header("Location: cats.php"); // Weiterleitung
}
} // close submit
?>
<form action="" method="post" id="bbcode">
<fieldset>
<legend>Kategorie bearbeiten</legend>
<input type="text" name="cat" value="<?php echo clean_it($_GET['cat']); ?>" />
<input type="submit" value="Speichern" name="submit" class="button"/>
</fieldset>
</form>
<?php
//------------------------------------------------------------------------------
// Kategorie loeschen
//------------------------------------------------------------------------------
}else if($_GET['action'] == 'delete'){
// DB Updaten
$update = mysql_query("UPDATE news SET cat = '' WHERE cat = '".clean_it($_GET['cat'])."' ");
if($update){
header("Location: cats.php"); // Weiterleitung
}
//------------------------------------------------------------------------------
// Kategorien auflisten
//------------------------------------------------------------------------------
}else{
echo "<h2>Kategorien</h2>\n";
// DB Abfrage
$abfrage = mysql_query("SELECT DISTINCT cat FROM news WHERE cat != ''");
$total = mysql_num_rows($abfrage); // Anzahl aller Zeilen in DB ermitteln
if($total < 1){ // Pruefen ob Eintraege vorhanden
echo "<p>Zur Zeit existieren keine Kategorien ...</p>";
}else{
echo "<ul class=\"list\">";
// Kategorien ausgeben ausgeben
while($row = mysql_fetch_object($abfrage)){
echo "<li>";
echo "<div class=\"right\">\n";
echo "<a href=\"cats.php?action=edit&cat=".urlencode($row->cat)."\">Bearbeiten</a> \n";
echo "<a href=\"cats.php?action=delete&cat=".urlencode($row->cat)."\">[x]</a>\n";
echo "</div>\n ";
echo "<p>".$row->cat."</p></li>\n";
} // close while
echo "</ul>\n<br />";
} // close Eintrage vorhanden
}// close $action
include('footer.php'); // footer einbinden
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GrafixxNews</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Content-Language" content="de" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="ram">
<div id="header">
<h1>GrafixxNews</h1>
</div>
<div id="content">
<?php // news.php
include('config.inc.php'); // DB-Verbindung einbinden
// Sofern Kategorie angegeben
if(isset($_GET['cat'])){
$where = "WHERE cat = '".clean_it($_GET['cat'])."'";
echo "<h2 class=\"blue\">Abgelegtes unter '".clean_it($_GET['cat'])."'</h2>";
$pfad = "news.php?cat=".urlencode(clean_it($_GET['cat']))."go=";
}else{
$pfad = "news.php?go=";
}
// News auslesen
$abfrage = mysql_query("SELECT id FROM news ".$where."");
$total = mysql_num_rows($abfrage); // Anzahl aller Zeilen in DB ermitteln
// ---------------------- Seitennavigationsdaten --------------------------------------------------
$per_page = "5"; // Anzahl der News die Pro Seite ausgegeben werden sollen
$p = "5"; // Anzahl der Links die in der Seitenavigation ausgegeben werden
isset($_GET['go']) ? $go = clean_it($_GET['go']) : $go = ''; // Variable definieren
// Blaetterfunktion aufrufen
list ($start, $ende) = get_navi($go, $total, $pfad, false, $per_page, $p);
// ---------------------- ENDE Seitennavigationsdaten----------------------------------------------
$abfrage = mysql_query("SELECT id, autor, title, cat, news, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM news ".$where." ORDER BY date DESC LIMIT $start,$ende");
// News ausgeben ausgeben
while($row = mysql_fetch_object($abfrage)){
// Anzahl der Kommentare ermitteln
$comments = mysql_query("SELECT id FROM comments WHERE news_id='$row->id'");
$com_num = mysql_num_rows($comments); // Anzahl der Kommentare
echo "<div class=\"news\">\n";
echo "<h2>".$row->title."\n <small>verfasst von ".$row->autor." am ".$row->datum." | \n";
if(!empty($row->cat)){ // sofern Kategorie angegeben
echo "abgelegt unter: <a href=\"news.php?cat=".urlencode($row->cat)."\">".$row->cat."</a> | \n";
}
echo "<a href=\"comments.php?id=".$row->id."\">Kommentare ".$com_num."</a></small>\n </h2>";
if(isset($_GET['cat'])){ // Kategorieseite nur einen Auszug ausgeben
$max_show = "250"; // max 450 Zeichen anzeigen
if (strlen($row->news) > $max_show){ // sofern $news mehr als 450 Zeichen enthaelt
echo "<p>".bbcode(substr($row->news, 0, strpos($row->news, ".", 120 )+1 ))."\n";
// Ab 150 Zeichen nach nem punkt suchen und alles das was davor enthalten ist ausgeben
echo "<a href=\"comments.php?id=".$row->id."\" class=\"right\">read more...</a>\n";
echo "<br style=\"clear: right;\" /></p>"; // link ausgeben
}else{ // komplett ausgeben
echo "<p>".bbcode($row->news)."</p>";
}
}else{
echo "<p>".bbcode($row->news)."</p>";
}
echo "</div>\n";
} // close while
// -------------------------------------- Seitennavigation ausgeben ----------------------------
get_navi($go, $total, $pfad, true, $per_page, $p);
// -------------------------------------- Seitennavigation ende --------------------------------
?>
</div>
</div>
<div id="footer">
<p class="right">Valid <a href="http://validator.w3.org/check/referer" title="This page validates as XHTML 1.0 Transitional">
<abbr title="eXtensible HyperText Markup Language">XHTML</abbr></a> |
Valid <a href="http://jigsaw.w3.org/css-validator/check/referer" title="CSS ist valide!"><abbr title="Cascading Style Sheets">
CSS</abbr></a> </p>
<p><a href="http://unnecessary.de">GrafixxNews</a> - <a href="http://alice-grafixx.de">
Alice-Grafixx.de</a></p>
</div>
</body>
</html><?php // comments.php
include('config.inc.php'); // DB-Verbindung einbinden
ob_start(); // startet den Ausgabepuffer
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>GrafixxNews</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />
<meta http-equiv="Content-Language" content="de" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="ram">
<div id="header">
<h1>GrafixxNews</h1>
</div>
<div id="content">
<?php
if(!isset($_GET['id'])){ // Sofern keine ID uebergeben wurde => Fehlermeldung
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Es wurde keine ID uebermittelt ...</p>\n</div>\n";
}else{ // Wenn ID uebergeben wurde
$id = clean_it($_GET['id']); // Variable definieren
$pfad = "comments.php?id=".$id."&go="; // aktuellen Dateipfad ermitteln
// Artikel abrufen
$artikel = mysql_query("SELECT id, autor, title, news, DATE_FORMAT(date, '%d.%m.%Y') AS datum FROM news WHERE id='$id'");
// Artikel ausgeben ausgeben
while($row = mysql_fetch_object($artikel)){
echo "<div class=\"news\">\n";
echo "<h2>".$row->title."</h2>\n";
echo "<p>".bbcode($row->news)."</p>";
echo "</div>\n";
} // close while
echo "<h2>Kommentare</h2>";
// Kommentare abfragen
$result = mysql_query("SELECT id FROM comments WHERE news_id='$id'");
$total = mysql_num_rows($result); // Anzahl aller Zeilen in DB ermitteln
// ---------------------- Seitennavigationsdaten --------------------------------------------------
$per_page = "5"; // Anzahl der News die Pro Seite ausgegeben werden sollen
$p = "5"; // Anzahl der Links die in der Seitenavigation ausgegeben werden
isset($_GET['go']) ? $go = clean_it($_GET['go']) : $go = ''; // Variable definieren
list ($start, $ende) = get_navi($go, $total, $pfad, false, $per_page, $p);
// ---------------------- ENDE Seitennavigationsdaten----------------------------------------------
$abfrage = mysql_query("SELECT id, name, email, url, comment, DATE_FORMAT(date, '%d.%m.%Y') AS datum
FROM comments WHERE news_id='$id' ORDER BY date DESC LIMIT $start,$ende");
if($total < 1){ // Pruefen ob Eintraege vorhanden
echo "<p>Bisher sind noch keine Kommentare vorhanden ...</p>";
}else{
echo "<ul class=\"list\">";
// Kommentare ausgeben ausgeben
while($row = mysql_fetch_object($abfrage)){
if(empty($row->url)){ // Pruefen ob Website angegeben
$autor = $row->name; // Variable definieren
}else{ // Wenn Website angegeben
$autor = "<a href=\"".$row->url."\">".$row->name."</a>";
}
$default = "http://www.deine-seite.de/default.jpg"; // Standard GRAVATAR Icon - BITTE ANGEBEN
$grav_url = "http://www.gravatar.com/avatar/".md5(strtolower(trim($row->email)))."?d=".urlencode($default)."&s=40";
echo "<li>\n";
echo "<img src='".$grav_url."' alt='' class='go_left'/>";
echo "<p>".bbcode($row->comment)."</p>\n";
echo "<small>schreib ".$autor." am ".$row->datum."\n";
echo "</small>\n </li>\n";
} // close while
echo "</ul>\n<br />";
// -------------------------------------- Seitennavigation ausgeben ----------------------------
// Blaetterfunktion aufrufen = > Ausgeben
get_navi($go, $total, $pfad, true, $per_page, $p);
// -------------------------------------- Seitennavigation ende --------------------------------
} // close Eintrage vorhanden
//------------------------------------------------------------------------------
// Kommentar verfassen
//------------------------------------------------------------------------------
if(isset($_POST['submit'])){ // Sofern Submit gedrueckt
$name = clean_it($_POST['name']); // Variable definieren
$email = clean_it($_POST['email']); // Variable definieren
$url = clean_it($_POST['url']); // Variable definieren
$comment = clean_it($_POST['comment']); // Variable definieren
$math = clean_it($_POST['math']); // Variable definieren
$ip = clean_it($_SERVER['REMOTE_ADDR']);// Variable definieren
if(empty($name) || empty($email) || empty($comment) || empty($math)){ // pruefen ob alles Benoetigte ausgefuellt wurde
echo get_error('Bitte Danke alle benoetigten Felder ausfuellen!');
}else{ // wenn alles Benoetigte ausgefuellt wurde
if($math != 7){ // Antispam-Rechnung pruefen
echo get_error('Die hast die Rechenaufgabe nicht korrekt geloest!');
}else{ // Wenn richtig gerechnet wurde
if (!(eregi("^.+@.+\..+$", $email))){ // Email Adresse auf korrektheit pruefen
echo get_error('Du hast keine korrekte E-Mail Adresse angegeben!');
}else{ // Sofern ne korrekte Email Adresse angegeben wurde
// Abfragen ob schon ein Kommentar in den letzen 2 Min zu diesem Artikel verfasst wurde...
$check_ip = mysql_query("SELECT id FROM comments WHERE ip='$ip' AND news_id='$id' AND date > now() - INTERVAL 2 MINUTE ");
if(mysql_num_rows($check_ip) > 1){ // sofern schon ein Kommentar in den letzen 2 Minuten => Warnung
echo get_error('Du hast schon einen Kommentar in den letzen 2 Minuten hinterlassen!<br />
Probier es doch spaeter noch mal ;)');
}else{ // sofern noch kein Kommentar in den letzen 2 Min verfasst
$eintragen = mysql_query("INSERT INTO comments (name, email, url, comment, news_id, date, ip)
VALUES ('$name','$email', '$url', '$comment', '$id', now(), '$ip')");
if($eintragen){ // Sofern Eintrag geklappt hat
header("Location: ".$pfad."?id=".$id.""); // Weiterleitung
}else{ // Wenn Eintrag nicht geklappt hat => Fehlermeldung
echo get_error(' Der Eintrag war leider nicht erfolgreich! ".mysql_error()."');
}
} // close check_ip
} // close check email
} // close Antispam
}// close empty
}// close isset
//------------------------------------------------------------------------------
// Formular ausgeben
//------------------------------------------------------------------------------
?>
<br /><br />
<script type="text/javascript">
/* Funtionn BBCode */
var n = 1;
function add(code) {
document.getElementById('bbcode').comment.value += " " + code ;
}
</script>
<form action="" method="post" id="bbcode">
<fieldset>
<legend>Kommentar hinterlassen</legend>
<label>Name</label>
<input type="text" name="name" value="<?= $name; ?>" /><br />
<label>Email</label>
<input type="text" name="email" value="<?= $email; ?>" /><br />
<label>URL</label>
<input type="text" name="url" value="<?= $url; ?>" /><br />
<?php get_bbcode('comi'); /* BBCode ausgeben */ ?>
<textarea rows="5" cols="50" name="comment"><?= $comment; ?></textarea>
<br /><br />
<label>AntiSpam</label>
Die Summe aus 5 + 2 = <input type="text" name="math" style="width: 50px"/><br /><br />
<input type="submit" value="Eintragen" name="submit" class="button"/>
</fieldset>
</form>
</div>
<?php
}// close ID uebergeben
ob_end_flush(); // leert den Ausgabepuffer
?>
</div>
<div id="footer">
<p><a href="http://unnecessary.de">GrafixxNews</a> - <a href="http://alice-grafixx.de" titel="Photoshop Community">
Alice-Grafixx.de</a></p>
</div>
</body>
</html>
Du musst angemeldet sein, um einen Kommentar zu hinterlassen...
Du bist noch kein Mitglied von Alice-Grafixx.de?
Dann kannst du dich hier kostenlos registrieren ...