@ All ich denke mal Morgen mittag/abend könntet ihr damit rechnen, bisdahin versuche ich noch einwenig daran zu arbeiten...
Gästebuch by Ololberto
- Raphael
- Geschlossen
- Erledigt
-
-
@ All ich denke mal Morgen mittag/abend könntet ihr damit rechnen, bisdahin versuche ich noch einwenig daran zu arbeiten...
Wie gesagt, versuch es mal mit http://forum.sa-mp.de/off-topi…by-ololberto-4#post981575
Ansonsten viel Spaß beim PHP lernen -
Habe es wieder hochgeladen,
Dauert nur bisschen, bis das alles läuft//Edit
Hier wieder der neue Link
http://raphael1994.co.de/ -
ich würde die neuesten kommentare ganz oben anzeigen
-
Ja, das werde ich morgen machen,
Wollte schon lange im Bett Liegen -
Gut
Reload-Sperre klappt, Name und Text werden überprüft. Allerdings ist jetzt in den Posts dieses \ drin (weil die anführungszeichen escaped werden)
Weiß nicht,oder
ist ja doch irgendwie doppelt gemoppelt. evt mal versuchen, wieder eins von beiden wegzumachen...
-
Probiers mit http://de.php.net/manual/de/function.strip-tags.php (strip_tags)
-
wie bekomme ich das raus mit den du hast schon was gepostet ?
-
So, ich hab mich da mal dran gesetzt und was zusammengeschrieben. Ist wahrscheinlich auch nicht der Renner, funktioniert aber weitesgehend.
Das ganze besteht aus vier Dateien:
1. index.php - Hier spielt sich alles ab
2. safe/dblogin.inc.php - Hier ist der Login für die Datenbank drin (ausgelagert weil sicherer)
3. safe/.htaccess - Verhindert den Zugriff auf die Login-Datei
4. style.css - Ein bisschen CSS2 und 3 sind, wie es da steht, im Ordner "safe".
Ich will nicht so viel erklären. Ich poste den Code, ihr stellt die Fragen, schreibt eure Meinung, Rückmeldung, Fehlerbericht, whatever.
Erstellt in eurer Datenbank eine Tabelle:
CodeCREATE TABLE guestbook ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(16), text TEXT ) DEFAULT CHARACTER SET utf8;
Und hier die Dateien...
index.php
PHP
Alles anzeigen<?php session_start(); $_SESSION["eingetragen"] = (isset($_SESSION["eingetragen"]) && $_SESSION["eingetragen"]) ? true : false; require "safe/dblogin.inc.php"; // Datei für Datenbank-Login ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de"> <head> <title>Mein Gästebuch</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <link rel="stylesheet" href="style.css"> </head> <body> <!-- PHP Anfang --> <h1>Willkommen!</h1> <h3>Hinterlasse doch eine Nachricht in meinem Gästebuch :)</h3> <form method="POST" action="index.php"> <div class="form"> Name: <input type="text" name="name" maxlength="16" value="<?php echo (isset($_POST['name'])) ? $_POST['name'] : ''; ?>" /> <br /><br /> Nachricht:<br /> <textarea style="width: 400px;" rows="7" name="text"><?php echo (isset($_POST['text'])) ? $_POST['text'] : ''; ?></textarea> <input type="submit" value="Absenden" name="send" /> </div> </form> <?php //Formular auswerten if(isset($_POST['send'])){ if(isset($_POST['name'])){ $name = $_POST['name']; if(strlen($name) >= 3 && strlen($name) <= 16) { if(isset($_POST['text'])){ $text = $_POST['text']; $text = htmlspecialchars(addslashes($text)); if(strlen($text) >= 10 && strlen($name) <= 200) { if(!$_SESSION["eingetragen"]) { // Name und Text in die Tabelle 'test' Eintragen $mysql_befehl = "INSERT INTO guestbook VALUES('', '$name','$text')"; $mysql_input = mysqli_query($db, $mysql_befehl); $_SESSION["eingetragen"] = true; if($mysql_input){ echo "<span class=\"success\">Erfolgreich Eingetragen!</span>"; } } else { echo "<span class=\"error\">Du hast schon einen Eintrag verfasst.</span>"; } } else { echo "<span class=\"error\">Der Text muss mindestens 10, darf aber höchstens 200 Zeichen lang sein.</span>"; } } } else { echo "<span class=\"error\">Der Name muss mindestens 3, darf aber höchstens 16 Zeichen lang sein.</span>"; } } } ?> <h3 style="margin-top: 50px; text-align: left;">Bisherige Einträge</h3> <?php //Datensätze ausgeben $content = "SELECT * FROM guestbook ORDER BY id DESC"; $mysql_content = mysqli_query($db, $content); while($into = mysqli_fetch_assoc($mysql_content)) { echo '<div class="entrybox"><b style="color: yellow;">'.str_pad($into['id'], 2, "0", STR_PAD_LEFT).'.</b> <strong>'.$into['name'].'</strong>:<p class="entry">'.stripslashes(nl2br($into['text'])).'</p></div>'."\n"; } ?> </body> </html>
safe/dblogin.inc.php
PHP
Alles anzeigen<?php $dbuser = ""; // Datenbank-Nutzer $dbpass = ""; // Datenbank-Passwort $dbbank = ""; // Datenbank-Tabelle $dbhost = "localhost"; // Datenbank-Host // Zu MySQL connecten $db = @mysqli_connect($dbhost, $dbuser, $dbpass) or die("Es konnte keine Verbindung mit der Datenbank hergestellt werden."); mysqli_set_charset($db, "utf8"); // Hier wird der Name der Datenbank eingegeben: @mysqli_select_db($db, $dbbank) or die("Es konnte keine Verbindung mit der Datenbank hergestellt werden."); ?>
safe/.htaccess
style.css
Code
Alles anzeigen//edit: copyrights entfernt, die werden hier wohl weniger gebraucht :P body { background-color: #111; color: #eee; font-family: sans-serif, Arial; text-align: center; } h3 { border-bottom: 1px solid #ccc; } input, textarea { background: #ccc; border: 1px solid grey; font-family: sans-serif, Arial; } textarea { font-size: 14px; } .form { margin: auto; width: 400px; text-align: left; } .form input { float: right; } .entrybox { text-align: left; background: #121212; padding: 10px; width: 500px; } .entry { margin: 0; padding: 0; background: #101010; } .error { color: red; } .success { color: green; } .error, .success { font-weight: bold; }
Grüße, Pupskuchen
-
Habe nal alles so hochgeladen, nur komt nun dieser Error
//Edit
Jetzt geht's, habe den Ordner safe Falsch Geschrieben, habe SaVe anstatt SaFe GeschriebenThx @ Pupskuchen, das Design gefällt mir auch
Danke -
-
Hmm, ich sehe da nach wie vor einen mysqli-Error?
du kannst statt "ae" auch "ä" schreiben, für Umlaute. Oder eine andere Kodierung im meta tag benutzen, z.B. utf8 (Weiß nicht mehr genau, ob "utf8" oder "utf-8")
Umlaute:
ä -> ä
ö -> ö
ü -> üÄ -> Ä
Ö -> Ö
Ü -> Üß -> ß
mysqli_fetch_array ist böse!
Außerdem würde ich lieber mysqli statt mysql benutzen, weil...kannst du googeln
// edit: Ist ein bisschen kompliziert, das jetzt von mysqli wieder zu mysql zu ändern, weil die beiden völlig unterschiedlich funktionieren.
-
Achso, da steht extra mysqli
Ich dachte das war nen Fehler oder so xD -
Nene, meine Version sollte eigentlich ohne irgendwelche Änderungen funktionieren...
Diesmal habe ich sogar getestet -
Warum macht ihr aus einer 20min Arbeit 5 Seiten -.- ?
Schön ist es wirklich nicht ... Tut mir leid. Außer Werbung für dein Server, ist auch kein Grund da. -
Warum macht ihr aus einer 20min Arbeit 5 Seiten -.- ?
Schön ist es wirklich nicht ... Tut mir leid. Außer Werbung für dein Server, ist auch kein Grund da.1. Das sind weniger als 20 Minuten "Arbeit".
2. Es soll nicht das schönste Gästebuch aller Zeiten werden.
3. Was hat das Gästebuch mit Werbung für seinen Server zu tun?Er möchte HTML, PHP und MySQL lernen. Beim lernen muss er halt auch mal ausprobieren und nicht nur Sachen machen, die einen besonderen Grund haben. Sonst lernt er nichts.
Es geht um die Grundlagen.Lass ihn doch seine Sachen machen und du machst deine Sachen. Wo ist das Problem?
-
1. Das sind weniger als 20 Minuten "Arbeit".
2. Es soll nicht das schönste Gästebuch aller Zeiten werden.
3. Was hat das Gästebuch mit Werbung für seinen Server zu tun?Er Postet seine IP, Ganz Oben ... ich könnte sowas auch schnell erstellen, IP reinhauen und Präs.
... Sowas ist einfach nur Arm. Sorry. -
Er Postet seine IP, Ganz Oben ... ich könnte sowas auch schnell erstellen, IP reinhauen und Präs.
... Sowas ist einfach nur Arm. Sorry.Du meinst gestern im Gästebuch? Meh. Kann ich nicht ändern
-
Habe nun wieder die index.php von dir auf den server geladen
Da kommt das
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /data/multiserv/users/830232/projects/2040491/www/index.php on line 69
//Edit hier die Zeile
-
Nunja, deine MySQL-Tabelle wird wohl nicht korrekt sein. Lösch mal deine Tabelle ("test") und erstelle, wie ich erklärt habe, die neue Tabelle ("guestbook")
Dann sollte es gehen. -
habe ich gerade,
Dann kommt der FehlerWarning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /data/multiserv/users/830232/projects/2040491/www/index.php on line 69