
Script
Ask&Answer
PHP
Loading...
<?php // config.inc.php //--------------------------- $host = "localhost"; // Adresse des Datenbankservers, fast immer localhost $user = "Benutzername"; // Dein MySQL Benutzername $pass = "deinPasswort"; // Dein MySQL Passwort $dbase = "Datenbankname"; // Name der Datenbank $connection = mysql_connect("$host","$user","$pass") OR DIE ("Keine Verbindung zu der Datenbank moeglich."); $db = mysql_select_db($dbase , $connection) OR DIE ("Auswahl der Datenbank nicht moeglich."); ?>
<?php session_start(); // startet die Session //---------------------- Logindate --------------------------------- // $grafixx_name = "USERNAME"; // Loginname angeben $grafixx_pass = "PASSWORT"; // Loginpasswort angeben //------------------------------------------------------------------ // ob_start(); // startet den Ausgabepuffer ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <title>Grafixx - Askme || Adminpanel</title> <meta http-equiv="Content-Language" content="de" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="imagetoolbar" content="no" /> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <div id="ram"> <h1 id="header">Grafixx - Askme</h1> <br /> <?php include('config.inc.php'); // Bindet Datei fuer DB-Verbindung ein $action = strip_tags($_GET['action']); $pfad = $_SERVER['PHP_SELF']; // generiert aktueller Pfad zur Datei // --- 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; } // -------------------------------- Logout -------------------------------------- if ($action == 'logout'){ session_unset(); session_destroy(); header("Location: $pfad"); } // ------------------------------------ Login --------------------------------------- if ($action == 'login'){ if(isset($_POST['admin_login'])) { $login_name = strip_tags($_POST['admin_name']); $login_pass = strip_tags($_POST['admin_pass']); if(empty($login_name)) { $message .= 'Bitte geben Sie ihren Usernamen ein ... <br />'; $error = "1"; } if(empty($login_pass)) { $message .= 'Bitte geben Sie ihr Passwort ein ... <br />'; $error = "1"; } if($login_name != $grafixx_name OR $login_pass != $grafixx_pass){ $message .= 'Zugriff verweigert ... <br />'; $error = "1"; } if($error != "1"){ // session handle----------------------------- $_SESSION['login'] = $_SERVER['REMOTE_ADDR']; header("Location: $pfad#asks"); } if($error == "1"){ echo "<h1>Error ...</h1>\n <p>$message</p>"; } } ?> <form action="" method="post"> <fieldset style="width: 300px"> <legend>Login</legend> <label for="user">Username: </label> <input type="text" name="admin_name" style="width: 250px" /> <label for="passwort">Passwort: </label> <input type="password" name="admin_pass" style="width: 250px" /> <br /><br /> <input type="submit" value=" Login " name="admin_login" /> </fieldset> </form> <?php } //------------------------------------- Login ENDE ----------------- echo"<h1>Frag mich ...</h1>"; // ALLE fragen zaehlen $alle = "SELECT id FROM askme"; $result_a= mysql_query($alle, $connection) or die (mysql_error()); $total = mysql_num_rows($result_a); // ALLE unbeantworteten fragen zaehlen $un = "SELECT id, frage, ip FROM askme WHERE status='U'"; $result_u= mysql_query($un, $connection) or die (mysql_error()); $unbeantwortet = mysql_num_rows($result_u); // ---------------------------------- Fragen auslesen -------------------------------------------- $show = "id, DATE_FORMAT(f_date, '%d.%m.%Y') AS f_datum, DATE_FORMAT(a_date, '%d.%m.%Y') AS a_datum, frage, antwort"; $q = "SELECT $show FROM askme WHERE status='B'"; $result= mysql_query($q, $connection) or die (mysql_error()); $beantwortete = mysql_num_rows($result); // beantwortete Fragen // ---------------------------------- Wenn LOS gedrueckt -------------------------------------------- if (isset($_POST['go'])){ $ask = clean_it($_POST['frage']); // Uebergebene Daten bereinigen if (empty($_POST['frage'])) { echo "<div class=\"tut\"><h1>Error ...</h1>\n"; echo "<p>Wenn du keine Frage stellst, kann ich dir auch nicht antworten ...</p></div>\n"; }else{ $visitorip = $_SERVER['REMOTE_ADDR']; // ip auslesen // Cookie setzen => Spamschutz -------------------------- $AktuellesDatum = date("d.m.Y H:i:s"); $Gueltigkeit = time()+300; setcookie ("askme", $AktuellesDatum, $Gueltigkeit); if(!isset($_COOKIE['askme'])) { // Wenn IP noch nicht vorhanden // Datenbankeintrag $askme = "INSERT INTO askme (id, ip, frage, f_date) VALUES ('','$visitorip','$ask',now())"; $eintrag= mysql_query($askme) or die (mysql_error()); // Wenn Frage erfolgreich in DB eingetragen if ($eintrag){ echo "<div class=\"error\"><h2>Wunderbar ...</h2>\n"; echo "<p>Die Frage wurde erfolgreich eingereicht ... </p></div>\n"; }else{ // Wenn nicht erfolgreich in DB eingetragen echo "Da lief was schief ...\n"; } }else{ // Fehler ausgeben, wenn schon gefragt echo "<div class=\"error\"><h1>Error ...</h1>\n"; echo "<p>Sie haben schon ein Frage in den letzten 5 Minuten gestellt ...<br /><br />\n"; echo "Bitte versuchen sie es spaeter nochmal.<br /></p>\n </div>\n"; } }// close empty }// close isset submit if ((!$eintrag) AND (!isset($_COOKIE['askme']))){ if ($total == '1'){ echo "<p>Es wurde bisher <strong> $total</strong> Frage gestellt"; }else{ echo "<p>Es wurden bisher <strong> $total</strong> Fragen gestellt"; } if($unbeantwortet == '1'){ echo ", <br /><strong> $unbeantwortet </strong> Frage davon ist noch unbeantwortet ...</p>"; }else{ echo ", <br /><strong> $unbeantwortet </strong> Fragen davon sind noch unbeantwortete ...</p>"; } //-------------------------------------------------------------- Formular um Frage zu stellen ?> <form method="post" action=""> <p>Frag auch du mich etwas ... <br /> <input type="text" name="frage" size="50"/> <input type="submit" value="Los!" name="go" /></p> </form> <?php } // close eintrag ?> <h1>Frage & Antwort ...</h1><br /> <?php // ---------------------- Seitennavigationsdaten ------------------------------------------- // $links_per_page = "5"; // Anzahl der Links die Pro Seite angezeigt werden sollen $p = "5"; // Anzahl der Links die in der Seitenavigation ausgegeben werden $total_records = mysql_num_rows($result); $pages = ceil($total_records / $links_per_page); // korrigieren der aktuellen Seite if(empty($_GET['go'])) { $go = 1; } elseif($_GET['go'] <= 0 || $_GET['go'] > $pages) { $go = 1; } else { $go = $_GET['go']; } // Linkkette $links = array(); if(($go - $p) < 1){ $prevOffset = $go - 1; }else { $prevOffset = $p; } if(($go + $p) > $pages) { $nextOffset = $pages - $go; }else { $nextOffset = $p; } $off = ($go - $prevOffset); if ($go- $prevOffset > 1){ $first = 1; $links[] = "<a href=\"".$pfad."?go=$first\" title=\"Zur ersten Seite springen\">« Erste ...</a>\n"; } if($go != 1){ $prev = $go-1; $links[] = "<a href=\"".$pfad."?go=$prev\" title=\"Zurueck zur letzen Seite\"> «</a>\n"; } for($i = $off; $i <= ($go + $nextOffset); $i++){ if ($i != $go){ $links[] = "<a href=\"".$pfad."?go=$i\" title=\"Seite $i anzeigen\">$i</a>\n"; }elseif($i == $pages) { // aktuelle Seite, braucht keinen Link $links[] = "<span class=\"current\">[ $i ]</span>\n"; } elseif($i == $go){ // aktuelle Seite, braucht keinen Link $links[] = "<span class=\"current\">[ $i ]</span>\n"; } } if($go != $pages){ $next = $go+1; $links[] = "<a href=\"".$pfad."?go=$next\" title=\"Weiter zur naechsten Seite\"> » </a>\n"; } if ($off+$prevOffset*2 < $pages){ // zur letzen Seite springen $last = $pages; $links[] = "<a href=\"".$pfad."?go=$last\" title=\"Zur letzen Seite springen\">... Letzte »</a>\n"; } $link_string = implode(" ", $links); // Packt alles in einen String $start = ($go-1) * $links_per_page; // ---------------------- ENDE Seitennavigationsdaten ---------------------------------------------------------- // // Pruefen ob Fragen vorhanden if(!$result || mysql_num_rows($result)<1) { echo "<p>Es sind bisher noch keine Fragen vorhanden ...</p>\n"; } else { // Datenbank-Abfrage ----------------------------------------------- $que = "SELECT $show FROM askme WHERE status='B' ORDER BY id DESC LIMIT $start,$links_per_page"; $results = mysql_query($que, $connection) or die (mysql_error()); while ($row=mysql_fetch_array($results)) { extract($row); $frage_d=$row['f_datum']; // Datum der Frage $antwort_d=$row['a_datum']; // Datum der Antwort ?> <div class="line"> <strong>Frage:</strong><br /> <?php echo $frage; // Frage ausgebn ?><br /><br /> <strong>Antwort:</strong><br /> <?php echo $antwort; // Antwort ausgeben ?> <div align="right"> Gestellt am <strong><?php echo $frage_d; ?></strong> | Beantwortet am <strong><?php echo $antwort_d; ?></strong></div> </div> <br /> <?php } // close while } // close nix vorhanden echo "<div id=\"navigation\">\n"; echo "<span class=\"pages\">Seite $go von $pages</span>\n"; echo $link_string; // Ausgabe der Seitennavigation echo "</div>\n"; //------------------- Wenn eingeloggt ------------------------------------------------ if(isset($_SESSION['login'])){ $ids = strip_tags($_GET['id']); // --------------------------------------- Frage beanworten -------------------------- if ($action == 'antwort'){ // Abfrage der Daten $quer = "SELECT frage,ip FROM askme WHERE id='$ids'"; $antwort= mysql_query($quer, $connection) or die (mysql_error()); // Ausgabe der Daten $ausgabe = mysql_fetch_array($antwort); $asks = $ausgabe['frage']; $who = $ausgabe['ip']; echo "<h1 id=\"doa\">Fragen Nummer $ids beantworten - IP $who</h1> <p><strong>Frage:</strong> $asks</p>"; if (isset($_POST['okay'])){ // Wenn auf absenden geklickt wurde $antwort = clean_it($_POST['antwort']); if (empty($_POST['antwort'])) { echo "<div class=\"error\"><h1>Error ...</h1>\n"; echo "<p>Bitte Danke Antwort eingeben ...</p></div>\n"; }else{ // Datenbankeintrag $ask = "Update askme SET antwort ='$antwort', a_date = now(), status='B' WHERE id ='$ids'"; $antworten= mysql_query($ask) or die (mysql_error()); // Wenn Frage erfolgreich beantwortet wurde if ($antworten){ header("Location: $pfad"); // Weiterleitung => Startseite }else{ // wenn nicht beantwortet wurde echo "Da lief was schief ...\n"; } }// close empty } // close Post submit ?> <form method="post" action=""> <textarea rows="8" name="antwort" cols="54" class="form"></textarea><br /> <input type="submit" value="Absenden" name="okay" class="button" /> </form> <?php }// close if $action //-------------------- Auflisten der noch unbeantworteten Fragen -------------------------------- while ($rowa = mysql_fetch_array($result_u)) { extract($rowa); ?><br /><br /> <h1 id="asks">Unbeantwortete Fragen</h1> <?php echo "<strong>Frage $id - von IP $ip</strong><br />\n"; echo "<p>$frage </p>\n"; echo "<div align=\"right\"> <a href=\"$pfad?action=antwort&id=$id#doa\">[ beantworten ]</a> <a href=\"$pfad?action=loeschen&id=$id#dol\" >[ loeschen ]</a></div>\n"; } //close while // ------------------------------------------------- Frage loeschen -------------------------- if ($action == 'loeschen'){ // nichtbeantworten der frage $quer = "DELETE FROM askme WHERE id='$ids'"; $antworten= mysql_query($quer) or die (mysql_error()); if ($antwort){ echo "<div class=\"error\"><h1 id=\"dol\">Prima ...</h1>\n <p>Frage <strong>$ids</strong> erfolgreich geloescht</p>\n</div>\n"; } } // close Post sub }// close eingeloggt ob_end_flush(); // leert/beendet den Ausgabepuffer ?> <h3>Grafixx - Askme <a href="http://alice-grafixx.de">Alice-Grafixx.de</a> <?php echo date('Y'); ?> | <?php // Admin Login / Logout if(isset($_SESSION['login'])){ echo "<a href=\"$pfad?action=logout\">logout</a>"; }else{ echo "<a href=\"$pfad?action=login\">Admin</a>\n"; } ?> </h3> </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 ...