Verfasst von Alice am 18.04.2009 - wurde schon 5946 mal gelesen
PHP
MySQL
Loading...
![]()
CREATE TABLE IF NOT EXISTS `askme` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`frage` text NOT NULL,
`antwort` text NOT NULL,
`f_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`a_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`status` enum('B','U') NOT NULL DEFAULT 'U',
`ip` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
);<?php // config.inc.php
//---------------------------
$host = "localhost"; // Adresse des Datenbankservers, fast immer localhost
$user = ""; // Dein MySQL Benutzername
$pass = ""; // Dein MySQL Passwort
$dbase = ""; // 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.");
?> <!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</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'); // DB-Verbindung einbinden
include('function.php'); // Funktion einbinden
$pfad = $_SERVER['PHP_SELF']; // generiert aktueller Pfad zur Datei
//------------------------------------------------------------------------
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
$unbe = mysql_query("SELECT id, frage, ip FROM askme WHERE status='U'");
$unbeantwortet = mysql_num_rows($unbe);
// ---------------------------------- 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";
$result = mysql_query("SELECT $show FROM askme WHERE status='B'"); // DB Abfrage aller Eintrage mit status = B
$beantwortete = mysql_num_rows($result); // Anzahl der beantworteten Fragen
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 zum Fragen einbinden -----------------------------------------------
include('ask.php');
// -------------------------------------------------------------------------------------------------
echo "<h1>Frage & Antwort ...</h1><br />"; // Headline ausgeben
// ---------------------- 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
include('navigation.php'); // Seitennavigation einbinden
// ---------------------- 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 -----------------------------------------------
$abfrage = mysql_query("SELECT $show FROM askme WHERE status='B' ORDER BY id DESC LIMIT $start,$links_per_page");
while ($row=mysql_fetch_array($abfrage)) { // Ausgabe der Fragen ...
extract($row);
echo "<div class=\"line\">\n";
echo "<strong>Frage:</strong><br />";
echo $frage; // Frage ausgeben
echo "<br /><br />";
echo "<strong>Antwort:</strong><br />";
echo $antwort; // Antwort ausgeben
echo "<div align=\"right\">";
echo "Gestellt am <strong>".$f_datum."</strong> | Beantwortet am <strong> ".$a_datum."</strong></div>\n";
echo "</div>\n <br />\n ";
} // 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";
?>
<h3>Grafixx - Askme <a href="http://alice-grafixx.de">Alice-Grafixx.de</a> <?php echo date('Y'); ?> | <a
href="login.php">Login</a></h3>
</div>
</body>
</html><?php // ask.php
// ---------------------------------- Wenn LOS gedrueckt --------------------------------------------
if (isset($_POST['go'])){ // sofern submit gedrueckt
$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
// pruefen ob IP schon eine Frage gestellt hat in den letzen 5 Minuten
$check_ip = mysql_query("SELECT id FROM askme
WHERE f_date > DATE_SUB(NOW(), INTERVAL 5 MINUTE) AND ip = '$visitorip'");
if(mysql_num_rows($check_ip) == 0){ // Wenn mit der IP noch keine Frage gestellt wurde
// Datenbankeintrag
$eintragen = mysql_query("INSERT INTO askme (id, ip, frage, f_date)
VALUES ('','$visitorip','$ask',now())");
// Wenn Frage erfolgreich in DB eingetragen
if ($eintragen){
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>Du hast schon ein Frage in den letzten 5 Minuten gestellt ...<br /><br />\n";
echo "Bitte versuch es spaeter nochmal ;)<br /></p>\n </div>\n";
} // close Fehlerausgeben
}// close empty
}// close isset submit
if(!$eintrag){
//-------------------------------------------------------------- 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
?><?php //login.php
session_start(); // startet die Session
//---------------------- Logindate --------------------------------- //
$grafixx_name = "USERNAME"; // Loginname angeben
$grafixx_pass = "PASSWORT"; // Loginpasswort angeben
//------------------------------------------------------------------ //
?>
<!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
if(isset($_POST['admin_login'])) { // sofern submit gedrueckt
$login_name = strip_tags($_POST['admin_name']); // Variable definieren
$login_pass = strip_tags($_POST['admin_pass']); // Variable definieren
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'];
echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">";
}
if($error == "1"){
echo "<h1>Error ...</h1>\n <p>$message</p>";
}
} // close isset [admin_login]
?>
<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>
<h3>Grafixx - Askme <a href="http://alice-grafixx.de">Alice-Grafixx.de</a> <?php echo date('Y'); ?></h3>
</div>
</body>
</html><?php // admin.php
include('login_check.php'); // Login-Check einbinden
include('config.inc.php'); // DB-Verbindung einbinden
include('function.php'); // Funktion einbinden
?>
<!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</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
// -----------------------------------------------------------------------------------
// Auflisten alle unbeantworteten Fragen
// -----------------------------------------------------------------------------------
$result = mysql_query("SELECT id, frage FROM askme WHERE status ='U'");
// ---------------------- 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
include('navigation.php'); // Seitennavigation einbinden
// ---------------------- ENDE Seitennavigationsdaten----------------------------------------------
echo "<h1>Unbeantwortete Fragen</h1>";
if($total_records < 1){ // Pruefen ob Fragen beantwortet werden muessen
echo "<p>Zur Zeit existieren keine unbeantworteten Fragen ...</p>";
}else{
$abfrage = mysql_query("SELECT id, frage FROM askme WHERE status ='U' ORDER BY id DESC LIMIT $start,$links_per_page");
while ($row=mysql_fetch_array($abfrage)) { // Ausgabe der Fragen ...
extract($row);
echo "<div class=\"line\">\n";
echo "<strong>Frage:</strong><br />";
echo $frage; // Frage ausgeben
echo "</div>\n <br />\n ";
echo "<div align=\"right\">\n
<a href=\"answer.php?id=$id\">[ beantworten ]</a>
<a href=\"delete.php?id=$id\" >[ loeschen ]</a></div>\n";
} // close while
// ---------------------- Seitennavigation ausgeben ------------------------------------------
echo "<div id=\"navigation\">\n";
echo "<span class=\"pages\">Seite $go von $pages</span>\n";
echo $link_string; // Ausgabe der Seitennavigation
echo "</div> \n";
} // close fragen vorhanden
echo "<h3>Grafixx - Askme <a href=\"http://alice-grafixx.de\">Alice-Grafixx.de</a> ".date('Y')." | ";
if(isset($_SESSION['login'])){ // Admin Logout
echo "<a href=\"logout.php\">logout</a>";
}
?>
</h3>
</div>
</body>
</html><?php // answer.php
include('login_check.php'); // Login-Check einbinden
include('config.inc.php'); // DB-Verbindung einbinden
include('function.php'); // Funktion einbinden
?>
<!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</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
$id = clean_it($_GET['id']); // Variable definieren und saeubern
if (!isset($_GET['id'])){ // Pruefen ob ID uebergeben wurde
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Es wurde keine ID uebergeben</p>\n</div>\n";
}else{ // Sofern ID uebergeben wurde
// Abfrage der Daten
$abfrage = mysql_query("SELECT frage,ip FROM askme WHERE id='$id'");
// Ausgabe der Daten
$row = mysql_fetch_object($abfrage);
echo "<h2>Frage ".$id." beantworten</h2>\n
<p><strong>Frage:</strong> ".$row->frage."\n";
echo "<small>von IP ".$row->ip."</small></p>\n";
if (isset($_POST['okay'])){ // Wenn auf absenden geklickt wurde
$antwort = clean_it($_POST['antwort']);
if (empty($_POST['antwort'])) {
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Bitte Danke Antwort eingeben ...</p></div>\n";
}else{
// Datenbankeintrag
$antworten = mysql_query("Update askme SET antwort ='$antwort', a_date = now(), status='B' WHERE id ='$id'");
// Wenn Frage erfolgreich beantwortet wurde
if ($antworten){
echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">"; // Weiterleitung => Login
}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 isset ID
echo "<h3>Grafixx - Askme <a href=\"http://alice-grafixx.de\">Alice-Grafixx.de</a> ".date('Y')." | ";
if(isset($_SESSION['login'])){ // Admin Logout
echo "<a href=\"logout.php\">logout</a>";
}
?>
</h3>
</div>
</body>
</html><?php // delete.php
include('login_check.php'); // Login-Check einbinden
include('config.inc.php'); // DB-Verbindung einbinden
include('function.php'); // Funktion einbinden
$id = clean_it($_GET['id']); // Variable definieren und saeubern
if (!isset($_GET['id'])){ // Pruefen ob ID uebergeben wurde
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Es wurde keine ID uebergeben</p>\n</div>\n";
}else{ // Sofern ID uebergeben wurde
$delete = mysql_query("DELETE FROM askme WHERE id='$id'"); // Frage Loeschen
if($delete){ // Wenn erfolgreich geloescht
echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin.php\">"; // Weiterleitung => admin.php
}else{ // Wenn nicht => Fehler ausgeben
echo "<div class=\"error\"><h2>Error ...</h2>\n";
echo "<p>Die Frage konnte nicht geloescht werden</p>\n</div>\n";
}// close $delete
} // close GET id
?><?php // logout.php session_start(); // startet die Session session_unset(); // Sessionvariable loeschen session_destroy(); // Session zerstoeren echo "<meta http-equiv=\"refresh\" content=\"0; URL=login.php\">"; // Weiterleitung => Login ?>
<?php // navigation.php
$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;
?><?php // function.php
// 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;
}
?><?php // login_check.php
session_start(); // startet die Session
if(!isset($_SESSION['login'])){ // wenn nicht eingelogt
echo "<meta http-equiv=\"refresh\" content=\"0; URL=login.php\">"; // Weiterleitung => Login
}
?>
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 ...