Du musst / verwenden und nicht \
Beiträge von revils
-
-
Zitat von "Sarkkan"
Also erstens verwende im Allgemeinen lieber OR anstelle von XOR, da du sonst ein Problem bekommen könntest wenn die Eingabe leer ist.
Schließlich würden dann beide Aussagen stimmen (true) [Der String ist == "" Und er wird nicht den gleichen Wert haben wie der Wert aus der Session] und er würde durch das XOR nicht in die Anweisung springen.Das werde ich dann noch ändern
ZitatWird das Captcha den angezeigt, wenn du es direkt angehst?
Ist der Pfad zu dem Captcha ansonsten Falsch?^^Hmm...normalerweise sollte doch das Bild durch die captcha.php generiert werden und dann da ausgegeben werden.
ZitatNoch was Allgemeines:
Bei Passwortfeldern und bei nem Captcha sollte kein Wert in das value-Feld :wink:
Erklärt sich denke ich von selbst, oder?Und wo schreib ich es dann am besten hin?
-
So...bin jetzt dabei das mit dem Captcha zu versuchen...
Ich will nur noch vorwegnehmen, dass ich ein Anfänger bin. Also für Hilfe bin ich zu haben und Tips/Kritik nehme ich auch gerne an.Danke
Gästebuch.php mit kompletter Fehlerüberprüfung
PHP
Alles anzeigen<?php session_start(); array_walk ( $_POST, 'eingabebereinigen' ); array_walk ( $_GET, 'eingabebereinigen' ); array_walk ( $_REQUEST, 'eingabebereinigen' ); function eingabebereinigen(&$value, $key) { // keine HTML-Tags erlaubt, außer p und br $value = strip_tags($value, '<p><br /><b><strong>'); // HTML-Tags maskieren $value = htmlspecialchars($value, ENT_QUOTES); // Leerzeichen am Anfang und Ende beseitigen $value = trim($value); } // Kleine Funktion um die Fehler bequem auszugeben function getError($error) { if($error != "") { return '<br /><span class="error">'.$error.'</span>'; } } if($_POST['action'] != "") { // Uberprufung der Variabeln und generieren der Fehlermeldungen // Den Fehlertext fur die einzelnen Felder in die '' // Uberpruft ob der Name leer ist if($_POST['name'] == "") { $errors['name'] = 'Name is not allowed to be empty!'; } // Uberpruft ob das Emailfeld leer ist und ob es eine gultige emailadresse enthalt if($_POST['email'] == "" || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $errors['email'] = 'E-Mail is not allowed to be empty and musst be a valid email address!'; } // Uberprufung der letzten beiden Variabeln ob diese nicht leer sind if($_POST['eintrag'] == "") { $errors['eintrag'] = 'Please add a message!'; } //captcha korrekt? if($_POST['code'] == "" xor $_POST['code'] != $SESSION['captcha-wert']) { $errors['code'] = 'Code was wrong or empty!'; } } // Wenn es keine Fehler gibt, soll das Formular verschickt werden if($errors == "" && $_POST['action'] != "") { array_walk ( $_POST, 'eingabebereinigen' ); array_walk ( $_GET, 'eingabebereinigen' ); array_walk ( $_REQUEST, 'eingabebereinigen' ); function eingabebereinigen(&$value, $key) { // keine HTML-Tags erlaubt, außer p und br $value = strip_tags($value, '<p><br /><b><strong>'); // HTML-Tags maskieren $value = htmlspecialchars($value, ENT_QUOTES); // Leerzeichen am Anfang und Ende beseitigen $value = trim($value); } $sql = "INSERT INTO gaestebuch (`name`, `email`, `url`, `datum`, `eintrag`) VALUES ('".$_POST['name']."', '".$_POST['email']."', '".$_POST['url']."', '".date("Y-m-d H:i:s")."', '".$_POST['eintrag']."' )"; define ( 'MYSQL_HOST', 'localhost' ); define ( 'MYSQL_BENUTZER', '****' ); define ( 'MYSQL_KENNWORT', '****' ); define ( 'MYSQL_DATENBANK', '****' ); $db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT); if ( ! $db_link ) { // hier sollte dann später dem Programmierer eine<br /> // E-Mail mit dem Problem zukommen gelassen werden<br /> // die Fehlermeldung für den Programmierer sollte<br /> // das Problem ausgeben mit: mysql_error()<br /> die('No connection this time - try later'); } $db_sel = mysql_select_db( MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen"); // ausführen des mysql-Befehls $db_erg = mysql_query( $sql ); mysql_insert_id(); $empfaenger = 'info@riensartwork.de'; $betreff = 'Guestbook'; $nachricht = ' Freigeben: '.' http://riensartwork.de/gaestebuch-freischalten.php?id='.mysql_insert_id(). ' oder '. ' Loeschen: '.' http://riensartwork.de/gaestebuch-loeschen.php?id='.mysql_insert_id(); $mailtext = $_POST['eintrag']; mail($empfaenger, $betreff, $nachricht, $mailtext); echo '<h5>Thank you for your comment</h5><meta http-equiv="refresh" content="3; URL=gaestebuch.php" />'; } else { // Andernfalls, ausgeben des Formulars echo ' <form name="" action="'.$_SERVER['PHP_SELF'].'" method="POST" enctype="text/html"> <label>Your Name:'.getError($errors['name']).'<br /> <p><input type="text" name="name" value="'.$_POST['name'].'" size="50" maxlength="150" /></p></label> <label>Your E-Mail:'.getError($errors['email']).'<br /> <p><input type="text" name="email" value="'.$_POST['email'].'" size="50" maxlength="150" /></p></label> <label>Your Homepage:<br /> <p></p><input type="text" name="url" value="" size="50" maxlength="150" /></p></label> <label>Message:'.getError($errors['eintrag']).'<br /> <p><textarea name="eintrag" rows="10" cols="50">'.$_POST['eintrag'].'</textarea></p></label> Bitte geben Sie folgende Ziffern ein: <br /> //Eingabe des Codes im Formular, Bild wird nicht ausgegeben <img src="captcha.php" id="code" border="0" title="Code"/><br /> <label for="captcha-wert">Code:'.getError($errors['code']).' <input type="text" name="code" size="20" maxlength="5" value="'.$_POST['code'].'" /><br /></label> <input type="submit" name="action" value="Send" /> <input type="reset" name="reset" value="Reset" onclick="return confirm(\'Reset this form?\')" /> </form>'; } ?>
Einzelne Codeschnipsel:Captchawert Fehlerüberprüfung: (Ist das soweit richtig?)
Codeif($_POST['code'] == "" xor $_POST['code'] != $SESSION['captcha-wert']) { $errors['code'] = 'Code was wrong or empty!'; }
Eingabe des Codes: (Kann ich hier was verändern/besser machen?)(Bild wird nicht ausgegeben!)
CodePlease type the following code: <br /> <img src="captcha.php" id="code" border="0" title="Code"/><br /> <label>Code:'.getError($errors['code']).' <input type="text" name="code" size="20" maxlength="5" value="'.$_POST['code'].'" /><br /></label>
Captcha.php
PHP
Alles anzeigen<?php session_start(); // alle moeglichen Zeichen ohne Problemfälle $moegliche_zeichen = "A B C D E F G H J K M N Q R T U V W X Y 2 3 4 5 7 8"; // erstellen eines Arrays $kombinationen = explode(" ", $moegliche_zeichen); // mischen des Arrays shuffle ( $kombinationen ); // die ersten 6 Zeichen aus dem gemischten Array $text = array_slice($kombinationen, 0, 5); // Speicherung in SESSION-Variable für spätere Auswertung $SESSION['captcha-wert'] = $text; Header ("Content-type: image/png"); // Laden der Rohdatei, die sich im Verzeichnis befinden muss $bild = ImageCreateFromPNG ("captchaclock.png"); // Farben definieren $farbe_w = ImageColorAllocate ($bild, 255, 255, 255); $farbe_b = ImageColorAllocate ($bild, 0, 0, 0); // die verwendete Schrift-Datei arial.ttf muss vorhanden sein // Aufbau Schriftgröße, Winkel, X-Pos., Y-Pos, Farbe, Schrift, Inhalt ImageTTFText ($bild, 32, -30, 140, 70, $farbe_b, "arial.ttf", $text[0]); ImageTTFText ($bild, 32, -90, 180, 130, $farbe_b, "arial.ttf", $text[1]); ImageTTFText ($bild, 32, 0, 130, 210, $farbe_b, "arial.ttf", $text[2]); ImageTTFText ($bild, 32, 45, 80, 190, $farbe_b, "arial.ttf", $text[3]); ImageTTFText ($bild, 32, 99, 80, 120, $farbe_b, "arial.ttf", $text[4]); // Ausgabe im Format PNG ImagePng ($bild); // Ressourcen wieder freigeben ImageDestroy ($bild); ?>
-
Ja, die kommen über das Formular.
-
Noch ein paar Fragen,
wie kann ich ausschließen das jemand meinen Namen benutzt...oder das man, wenn man meinen Namen benutzt erst ein Passwort eingeben muss?
Desweiteren bekomme ich jetzt schon "Viagra-Mails". Kann man das auch unterbinden?Danke im Vorraus
-
Also ich weiß durch meine Erfahrung, dass es mit Leerzeichen nicht geht. Jedenfalls war das so bei mir...glaube ich^^
-
Alles klar, ich habs ingekriegt...
Danke
-
Hi Leute,
folgendes Problem. Ich möchte das die Angaben in meinem Gästebuchformular (Name, Mail,etc..) notwendig sind und nicht unausgefüllt gelassen werden können. Desweiteren möchte ich noch einen Resetbutton hinzufügen, der das ganze Formular leert und vorerst eine Frage stellt (echo) ob das wirklich geschehen soll. Ich hoffe ihr könnt mir helfen.
Danke im Vorraus
PHP
Alles anzeigen<!-- Guestbook form --> <?php array_walk ( $_POST, 'eingabebereinigen' ); array_walk ( $_GET, 'eingabebereinigen' ); array_walk ( $_REQUEST, 'eingabebereinigen' ); function eingabebereinigen(&$value, $key) { // keine HTML-Tags erlaubt, außer p und br $value = strip_tags($value, '<p><br /><b><strong>'); // HTML-Tags maskieren $value = htmlspecialchars($value, ENT_QUOTES); // Leerzeichen am Anfang und Ende beseitigen $value = trim($value); } // SQL-Befehl für den Zugriff if ( $_POST['eintrag'] != "" ) { $sql = "INSERT INTO gaestebuch (`name`, `email`, `url`, `datum`, `eintrag`) VALUES ('".$_POST['name']."', '".$_POST['email']."', '".$_POST['url']."', '".date("Y-m-d H:i:s")."', '".$_POST['eintrag']."' )"; define ( 'MYSQL_HOST', 'localhost' ); define ( 'MYSQL_BENUTZER', 'riensartwork_de' ); define ( 'MYSQL_KENNWORT', '****' ); define ( 'MYSQL_DATENBANK', '****' ); $db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT); if ( ! $db_link ) { // hier sollte dann später dem Programmierer eine<br /> // E-Mail mit dem Problem zukommen gelassen werden<br /> // die Fehlermeldung für den Programmierer sollte<br /> // das Problem ausgeben mit: mysql_error()<br /> die('No connection this time - try later'); } $db_sel = mysql_select_db( MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen"); // ausführen des mysql-Befehls $db_erg = mysql_query( $sql ); mysql_insert_id(); $empfaenger = 'info@riensartwork.de'; $betreff = 'Guestbook'; $nachricht = ' Freigeben: '.' http://riensartwork.de/gaestebuch-freischalten.php?id='.mysql_insert_id(). ' oder '. ' Loeschen: '.' http://riensartwork.de/gaestebuch-loeschen.php?id='.mysql_insert_id(); $mailtext = $_POST['eintrag']; mail($empfaenger, $betreff, $nachricht, $mailtext); } ?> <form name="" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="text/html"> <p>Your Name:<br /> <input type="text" name="name" value="" size="50" maxlength="150" /> </p> <p>Your E-Mail:<br /> <input type="text" name="email" value="" size="50" maxlength="150" /> </p> <p>Your Homepage:<br /> <input type="text" name="url" value="" size="50" maxlength="150" /> </p> <p>Message:<br /> <textarea name="eintrag" rows="10" cols="50"></textarea> </p> <input type="Submit" name="" value="Send" /> </form> </div>
-
Ok, hab drin. Hoffe mal, dass das dann auch funktioniert wenns soweit ist^^
-
Genau, diese if-Anzeige interessiert mich!
-
Ok, jetzt ist mir noch was aufegallen.
Ich habe die neue Seite die für die älteren Einträge gelten soll implementiert. Man kommt auch direkt schon drauf. Nur habe ich leider noch nicht genug Einträge dafür, dass die neue Seite erreichbar sein soll.
Kann ich irgendeine Funktion einbinden, damit die Seite erst ab dem 11. Eintrag erreichbar wird?
Dachte da gerade so an einen visible/enable Funktion für den Link, da die Seite ansich so nicht erreichbar ist. -
Danke, hat super funktioniert!
-
Ahhh...ok
Dann muss ich also den OFFSET Befehl auf der neuen Seite in den Part eintragen wo er hin soll.
-
Danke..ich werds mal versuchen..aber ganz genau versteh ich das noch nciht wie ich das mit dem Link machen soll..und wohin das muss
-
Moin,
folgendes...Ich würde gern beim Gästebuch die neusten einträge noch oben setzen, sodass die ältern unten sind.
Desweiteren hatte ich mir überleg, dass wenn eine bestimmte Anzahl an Einträgen erreicht ist, diese in eine neue Seite fallen.
Das unten dann steht z.B. "Ältere Einträge". Ich hoffe ihr wisst was ich meine, so dass die Seite später nicht unendlich lang wird.Gästebuchcode:
PHP
Alles anzeigen<!DOCTYPE html> <head> <title>Riens Artwork - Guestbook</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252" /> <meta name="content-language" content="en" /> <meta name="language" content="English" /> <meta name="description" content="This is the official spray painting homepage of Rene Schell. This side contains Spray Paintings and further inforamtion about Rene Schell and the art" /> <meta name="author" content="Rene Schell" /> <meta name="publisher" content="Rene Schell" /> <meta name="copyright" content="Rene Schell" /> <meta name="keywords" content="Spraypainting, Spray Can, Spacepainting, Art, Rien, Riens Artwork, Rene schell" /> <meta name="robots" content="INDEX,FOLLOW" /> <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)" /> <link href="style.css" type="text/css" rel="stylesheet" /> <link href="favicon.ico" type="image/x-icon" rel="shortcut icon" /> <!-- Including main style --> <link href="styles/mainstyle.css" type="text/css" rel="stylesheet" /> </head> <body> <div id="seitenbegrenzung"> <div id="kopfbereich"> <a href="index.html"> <img src="styles/RiensArtwork2.jpg" alt="" style="display: block; margin: auto;" /> </a> </div> <div id="steuerung"> <ul id="navi"> <li><a href="index.html">Home</a></li> <li><a href="about.html">About</a></li> <li><a href="#">Gallery</a> <ul> <li><a href="nature.html">Nature</a></li> <li><a href="space.html">Space</a></li> </ul> </li> <li><a href="video.html">Video</a></li> <li><a href="gaestebuch.php">Guestbook</a></li> <li><a href="contact.php">Contact</a></li> </ul> </div> <div id="eintrag"> <h1>Guestbook</h1> <br /> <!-- Guestbook form --> <?php array_walk ( $_POST, 'eingabebereinigen' ); array_walk ( $_GET, 'eingabebereinigen' ); array_walk ( $_REQUEST, 'eingabebereinigen' ); function eingabebereinigen(&$value, $key) { // keine HTML-Tags erlaubt, außer p und br $value = strip_tags($value, '<p><br /><b><strong>'); // HTML-Tags maskieren $value = htmlspecialchars($value, ENT_QUOTES); // Leerzeichen am Anfang und Ende beseitigen $value = trim($value); } // SQL-Befehl für den Zugriff if ( $_POST['eintrag'] != "" ) { $sql = "INSERT INTO gaestebuch (`name`, `email`, `url`, `datum`, `eintrag`) VALUES ('".$_POST['name']."', '".$_POST['email']."', '".$_POST['url']."', '".date("Y-m-d H:i:s")."', '".$_POST['eintrag']."' )"; define ( 'MYSQL_HOST', 'localhost' ); define ( 'MYSQL_BENUTZER', 'riensartwork_de' ); define ( 'MYSQL_KENNWORT', '****' ); define ( 'MYSQL_DATENBANK', 'riensartwork_de' ); $db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT); if ( ! $db_link ) { // hier sollte dann später dem Programmierer eine<br /> // E-Mail mit dem Problem zukommen gelassen werden<br /> // die Fehlermeldung für den Programmierer sollte<br /> // das Problem ausgeben mit: mysql_error()<br /> die('No connection this time - try later'); } $db_sel = mysql_select_db( MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen"); // ausführen des mysql-Befehls $db_erg = mysql_query( $sql ); mysql_insert_id(); $empfaenger = 'info@riensartwork.de'; $betreff = 'Guestbook'; $nachricht = ' Freigeben: '.' http://riensartwork.de/gaestebuch-freischalten.php?id='.mysql_insert_id(). ' oder '. ' Loeschen: '.' http://riensartwork.de/gaestebuch-loeschen.php?id='.mysql_insert_id(); $mailtext = $_POST['eintrag']; mail($empfaenger, $betreff, $nachricht, $mailtext); } ?> <form name="" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="text/html"> <p>Your Name:<br /> <input type="text" name="name" value="" size="50" maxlength="150" /> </p> <p>Your E-Mail:<br /> <input type="text" name="email" value="" size="50" maxlength="150" /> </p> <p>Your Homepage:<br /> <input type="text" name="url" value="" size="50" maxlength="150" /> </p> <p>Message:<br /> <textarea name="eintrag" rows="10" cols="50"></textarea> </p> <input type="Submit" name="" value="Send" /> </form> <!-- <a href="gaestebuch.php">Gästebuch anzeigen</a> --> </div> <div id="inhalt"> <br /> <!-- Guestbook entry --> <?php define ( 'MYSQL_HOST', 'localhost' ); define ( 'MYSQL_BENUTZER', 'riensartwork_de' ); define ( 'MYSQL_KENNWORT', '****' ); define ( 'MYSQL_DATENBANK', 'riensartwork_de' ); $db_link = @mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT); if ( ! $db_link ) { // hier sollte dann später dem Programmierer eine // E-Mail mit dem Problem zukommen gelassen werden // die Fehlermeldung für den Programmierer sollte // das Problem ausgeben mit: mysql_error() die('No connection this time - try later'); } $db_sel = mysql_select_db( MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen"); // SQL-Befehl für den Zugriff $sql = " SELECT * FROM gaestebuch WHERE aktiviert='1' ORDER BY datum "; // ausführen des mysql-Befehls $db_erg = mysql_query( $sql ); if ( ! $db_erg ) { die('Ungültige Abfrage: ' . mysql_error()); } // Anzeige der Anzahl der Einträge $anzahl_eintraege = mysql_num_rows($db_erg); echo "<p>Number of guestbook entries: $anzahl_eintraege </p>"; echo "<hr />"; echo "<br />"; while ($daten = mysql_fetch_array( $db_erg, MYSQL_ASSOC)) { // Ausgabe der Daten echo "Entry: "; echo $daten['id']; echo "<br />"; echo "Name: "; echo $daten['name']; echo "<br />"; echo "Date: "; echo $daten['datum']; echo "<br />"; echo "Message: <br />"; echo $daten['eintrag']; echo "<br />"; echo "<hr />"; echo "<br />"; } mysql_free_result( $db_erg ); ?> </div> </div> <div id="fusszeile"> © Copyright by Riens Artwork - <a href="impressum.html">Imprint/Disclaimer</a> </div> </body> </html>
-
So Leute,
erstmal danke ich euch für eure sehr gute Hilfe. Ohne euch hätte ich das schon mal garnicht geschafft. DANKE!
Nun ist die Seite fertig inkl. Domain
-
Gut, ich habe mich für all-inkl.com entschieden...Cyon.ch ist mir zu teuer...Wie dem auch sei, ich werde es morgen fertig machen.
Danke für die Hilfe!
-
Also...das ist kommt mir etwas komisch vor...Ich hoffe, dass das nicht so ist wie beim WeTab und die Anbieter einfach selbst was schreiben...
-
was mich so stuzig gemacht hat...Preis+Angebot. Das ist schon verdammt billig
-