• Ich habe mir ein Gästebuch gebastelt, ein bischen Starthilfe hat mir dabei der PHP-Kurs gegeben, aber ich habe noch viel hinzugefügt.
    Von den Einstellungsmöglichkeiten habe ich mich ein bischen vom Icybook inspirieren lassen.


    Da ich nicht glaube, das es schon sicher genug ist wollte ich euch mal drüberschauen lassen.
    Verbesserungsvorschläge sind natürlich auch erwünscht.


    Das Gästebuch habe ich zwar schon hochgeladen, wegen der Sicherheit wollte ich den Link aber noch nicht öffentlich hier posten, gebe ihn gerne per PN weiter.


    Zum Ausprobieren habe ich es als zip-Datei angehängt, Konfiguration für die MySQL-Datenbank ist hier der XAMPP-Standard.


    Den Code kann hier auch gerne posten, hab es aber noch nicht gemacht, weil mir über 600 Zeilen (Hauptdatei) ein bischen viel dafür vorkamen.

  • Ja nun habe ich einen Eintrag erstellt, als Admin sollte man den nicht freischalten müssen oder?


    Nun will ich ihn freischalten, da sollte doch nicht noch eine Sicherheitsabfrage kommen oder? Ein Admin sollte ja schon wissen was er macht.


    Sicherheit sehe ich da kaum, zwar ist deine Datenbank sicher, aber du kannst doch die E-Mailadressen nicht im Klartext ausgeben lassen.


    1. sollte der Benutzer selbst entscheiden können ob die E-Mailadresse gezeigt wird


    und


    2. darfst du die auf keinen Fall im Klartext ausgeben, immer als Bild.


    Ich vermisse irgendwie das JavaScript welches den BBCode direkt einfügt, selbst schreiben ist doch Mist.


    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword">!</span><span class="syntaxdefault">preg_match</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'#^\d+$#'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $zahl</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault"> </span>


    Kannst du ersetzen mit is_numeric:


    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword">!</span><span class="syntaxdefault">is_numeric</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$zahl</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault"> </span>


    Das ist unnötiger Mehrcode, wenn du es genau über der Benutzung definierst kannst du es auch direkt in die Funktion schreiben:


    PHP
    <span class="syntaxdefault"><br /> define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'MYSQL_HOST'</span><span class="syntaxkeyword">, </span><span class="syntaxstring">'localhost'</span><span class="syntaxkeyword">);<br /> </span><span class="syntaxdefault">define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'MYSQL_USER'</span><span class="syntaxkeyword">, </span><span class="syntaxstring">'root'</span><span class="syntaxkeyword">);<br /> </span><span class="syntaxdefault">define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'MYSQL_PASS'</span><span class="syntaxkeyword">, </span><span class="syntaxstring">''</span><span class="syntaxkeyword">);<br /> </span><span class="syntaxdefault">define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'MYSQL_DBANK'</span><span class="syntaxkeyword">, </span><span class="syntaxstring">'gaestebuch'</span><span class="syntaxkeyword">);<br /><br /> </span><span class="syntaxdefault">$db_link </span><span class="syntaxkeyword">= @</span><span class="syntaxdefault">mysql_connect</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">MYSQL_HOST</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">MYSQL_USER</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">MYSQL_PASS</span><span class="syntaxkeyword">);<br /> </span><span class="syntaxdefault"></span>


    Mehr habe ich bis jetzt nicht gesehen.


    Also erstmal :)

  • Zitat von &quot;Basiii&quot;

    Nun will ich ihn freischalten, da sollte doch nicht noch eine Sicherheitsabfrage kommen oder? Ein Admin sollte ja schon wissen was er macht.


    Hatte den Code dafür direkt vom löschen Teil übernommen und deswegen nicht groß darüber nachgedacht, ist jetzt verbessert.


    Zitat von &quot;Basiii&quot;

    1. sollte der Benutzer selbst entscheiden können ob die E-Mailadresse gezeigt wird


    und


    2. darfst du die auf keinen Fall im Klartext ausgeben, immer als Bild.


    Danke, werd ich einbauen.


    Zitat von &quot;Basiii&quot;

    Ich vermisse irgendwie das JavaScript welches den BBCode direkt einfügt, selbst schreiben ist doch Mist.


    Ich kann kein JavaScript


    Zitat von &quot;Basiii&quot;
    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword">!</span><span class="syntaxdefault">preg_match</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'#^\d+$#'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $zahl</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault"> </span>


    Kannst du ersetzen mit is_numeric:


    PHP
    <span class="syntaxdefault"><br />  </span><span class="syntaxkeyword">!</span><span class="syntaxdefault">is_numeric</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$zahl</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault"> </span>


    Hab ich verbessert.


    Zitat von &quot;Basiii&quot;

    Das ist unnötiger Mehrcode, wenn du es genau über der Benutzung definierst kannst du es auch direkt in die Funktion schreiben:


    PHP
    <span class="syntaxdefault"><br /> define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'MYSQL_HOST'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'localhost'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'MYSQL_USER'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'root'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'MYSQL_PASS'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">''</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> define</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'MYSQL_DBANK'</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'gaestebuch'</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault"> $db_link </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">@</span><span class="syntaxdefault">mysql_connect</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">MYSQL_HOST</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> MYSQL_USER</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> MYSQL_PASS</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> </span>


    Hatte ich, ohne groß drüber nachzudenken, vom PHP-Kurs abgeschrieben.


    Danke dir dafür.

  • Danke, werd ich mir angucken und einfügen.


    Edit1:
    So, JavaScript für den BBCode und das Selbstentscheiden, ob die E-Mail Adresse angezeigt wird, ist hinzugefügt.
    Um die E-Mail Grafiken kümmere ich mich noch.


    Edit2:

    Zitat von &quot;Sören&quot;


    Hab ich verbessert.


    is_numeric passt nicht, da damit auch Dezimal-Zahlen akzeptiert werden. Dezimal-Zahlen müssen aber auch rausfliegen, ich habe ja z.B. keine Seite Nummer 2,4 oder den Eintrag Nummer 12,9.


    Edit3:
    Ich habe gerade eine besser passende Funktion gefunden: ctype_digit

  • Jetzt bin ich auch dazu gekommen, die E-Mail Grafiken einzubauen.
    Ist das Gästebuch denn jetzt sicher genug, um es hochzuladen, bzw. öffentlich zu benutzen?


    Die fertige Version:
    [attachment=0]<!-- ia0 -->gaestebuch.zip<!-- ia0 -->[/attachment]

  • Gefällt mir auf den ersten blick sehr gut! :)
    Das Admin könnte vielleicht nach unten verschoben werden (also unter die Seiten), weil es für den einfachen Besucher etwas nervig ist ;)


    Gegebenenfalls würde ich das 'Eintragen' "Erscheinen lassen" eher mit JS machen^^
    Kennst du dich damit aus? Ansonsten würde ich dir da fix ne Kleinigkeit schreiben :D

  • Nach ein bischen Selfhtml Studium und anschauen des Suckerfish-JS, habe ich den JS-Code zum ein- und ausklappen hinbekommen.


    Zuerst wird bei allen Tags, die in der Id-Liste stehen (bisher nur einer), beim Laden die Klasse "hide" hinzugefügt. Ich habe die Klasse nicht direkt in den Code geschrieben, da sonst Leute ohne JS (oder ausgeschaltetem), das Eintragsformular nie zu Gesicht bekommen würden.


    Dann wird bei Klick auf den entsprechenden Link die Klasse entfernt oder wieder hinzugefügt. Was dank regulärer Ausdrücke auch bei mehreren Klassen funktioniert.


    JavaScript ist gar nicht mal so schwer :mrgreen:

  • Schön schön :D
    Ich würde zwar nicht die Klasse, sondern einfach den Stylewert ändern (document.get... .style.display = "none";).


    Aber ich werde dir trotzdem ne schöne Kleinigkeit machen, wenn ich darf, mit jQuery :D
    Dann bekommst du so einen schönen Aufklappeffekt :)

  • Am Anfang hatte ich das mit dem onload noch nicht, sondern habe dem auf normalem Weg im Code die Klasse "hide" zugewiesen und das hat sich nicht so recht mit den Stylewerten vertragen, also hab ich die Klasse einfach weiter benutzt.
    Der onload-Teil kam erst nachträglich hinzu und die "hide"-Klasse gabs in meinem Standard-Design sowieso schon.


    Natürlich darfst du :D

  • AHHH! X(
    Ich habe dich vergessen >__< Tut mir Leid :cry:


    PS: Ich finde deine Definition von

    Zitat

    langsam

    Interessant :D Versuch mal den Wert "slow" durch z.B. 1000 zu ersetzten :) (Man kann nämlich auch angeben, wie viele Millisekunden gebraucht werden sollen :D Natürlich ohne " (Anfürhunrgszeichen).)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!