Verfasst von Alice am 26.05.2008 - wurde schon 10941 mal gelesen
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 ...