Beiträge von Sören

    Ich würd sagen, zusätzliche Divs sind besser, da man das Design ja vom Inhalt trennen soll.

    Wenn die zusätzlichen Bilder nicht unbedingt nötig sind, kannst du Benutzer von IE8 oder niedriger vernachlässigen und Multiple Backgrounds verwenden.
    Damit kannst du einem Element mehrere Hintergründe geben, welche wie normale definiert werden, wobei jedes Hintergrundbild durch ein Komman abgetrennt ist:

    Bitte :D
    Das steht zumindest so in meinem PHP-Buch.

    Wenn auch auf Typgleichheit verglichen wird, muss der Interpreter wohl nicht die Werte (Typen) so umwandeln, dass es zusammenpasst und vergleichbar ist, da ja beide Seiten den gleichen Typ haben müssen. (Würd ich jetzt mal so sagen, kann aber auch einen ganz anderen Grund haben, klingt jedenfalls logisch so)

    Kannst du PHP?
    Wenn nicht ist der PHP-Kurs eine gute Anlaufstelle, um das Nötige zu erlernen.

    Solltest du schon Grundwissen haben, findest du dort auch die restlichen Informationen, die du brauchst.

    Stößt du dabei auf Probleme, wir helfen dir gerne. Nur komplette Scripts werden wir dir nicht schreiben.

    Der vierte Parameter ist der Header.
    Also so:

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">...<br /></span><span class="syntaxdefault">$header </span><span class="syntaxkeyword">= </span><span class="syntaxstring">'From: webmaster@example.com' </span><span class="syntaxkeyword">. </span><span class="syntaxstring">"\r\n"</span><span class="syntaxkeyword">; <br /></span><span class="syntaxdefault">mail</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$empfaenger</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$betreff</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$nachricht</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$header</span><span class="syntaxkeyword">);<br />... </span><span class="syntaxdefault"></span>

    Dafür müsstest du dann einmal clientseitig per JavaScript jedesmal, wenn sich der Inhalt des Namen-Feldes ändert (onBlur-Event, glaube ich), den Namen prüfen und, wenn er eine Admin-Name ist, das Input-Feld einblenden (normalerweise z.B. display: none und dann per JavaScript auf Block ändern).

    Serverseitig musst du dann prüfen, ob der übergebene Name ein Admin-Name ist. Wenn ja, prüfst du, ob im Code-Feld der richtige Code ist, ist er das, machst du normal weiter, sonst wird z.B. eine Fehlermeldung ausgegeben.

    Diese Funktion schreibst du außerhalb der Klassen, nicht als Methode.

    Indem du eine Vererbung von Kochen vorraussetzt, kannst du sichergehen, das die benötigte Methode vorhanden ist.
    Du kannst natürlich auch so testen, ob sie vorhanden ist. Im Funktionskopf ist das aber sofort ersichtlich und unter Umständen weniger Code.

    An deinem Beispiel sieht man auch sehr schön den Nutzen von Interfaces.

    Stell dir vor, du möchtest eine Funktion machen, welcher eine Instanz von Papa oder Mama erwartet, um z.B. den Text von esGibtReisBaby in einer Datenbank speichern soll.
    Hierbei ist es aber egal, ob eine Instanz von Papa oder eine Instanz von Mama übergeben wird. Das einzige, was wichtig ist, ist, dass es in der übergebenen Klasse die Methode esGibtReisBaby gibt.

    Dies kannst du nun schon im Funktionskopf vorraussetzen, indem du einfach mit Type-Hinting angibst, dass die Klasse von Kochen abstammen muss (oder Kochen ist):

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">function </span><span class="syntaxdefault">speichere_reis</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">Kochen $objekt</span><span class="syntaxkeyword">)<br />{<br />    </span><span class="syntaxcomment">// ...<br /></span><span class="syntaxkeyword">} </span><span class="syntaxdefault"></span>

    1. So, wie du es jetzt hast, werden die ids aller Reihen ausgelesen, das ist dann eine Ressource zur Weiterverarbeitung und nicht die eine id, die du haben willst.
    Die id des letzten INSERT-Befehls, kannst du mit mysql_insert_id() auslesen.
    Es heißt also:

    PHP
    <span class="syntaxdefault">id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_insert_id</span><span class="syntaxkeyword">();</span><span class="syntaxdefault"> </span>

    2. Du kannst die Gesamtzahl aller Einträge auslesen (mysql_num_rows()), in einer Variable speichern und dann bei jedem Durchlauf deiner Ausgabe-Schleife die aktuelle Nummer um eins verringern (die Variable).

    PHP
    <span class="syntaxdefault"></span><span class="syntaxcomment">//   Anzahl der Einträge auslesen;  Eintrag auslesen;                                Anzahl um eins verringern<br /></span><span class="syntaxdefault">for </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$id </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_num_rows</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$db_erg</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $daten </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_fetch_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> $db_erg</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> MYSQL_ASSOC</span><span class="syntaxkeyword">);</span><span class="syntaxdefault"> $id</span><span class="syntaxkeyword">--)<br />{<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">// Aushabe der Daten<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"ID: "</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    echo $id</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">// ... </span><span class="syntaxdefault"></span>

    3. Dafür gibt es die Funktion nl2br(). Mit der Funktion wird bei allen Neue-Zeile-Zeichen (\n, \r\n, \r), ein HTML-Zeilenumbruch eingefügt (<br />).
    Solche Neue-Zeile-Zeichen, sind z.B. auch in einem String aus einer Textarea enthalten, wo der Benutzer Enter gedrückt hat.

    PHP
    <span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'eintrag'</span><span class="syntaxkeyword">] = </span><span class="syntaxdefault">nl2br</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'eintrag'</span><span class="syntaxkeyword">]); </span><span class="syntaxdefault"></span>

    4. Mir ist so jetzt nichts aufgefallen.

    Den Cursor verändern, kannst du mit der CSS-Eigenschaft cursor, zu einer Hand kannst du ihn mit dem Wert pointer machen:

    Code
    .hand {
        cursor: pointer;
    }

    Du kannst aber auch einfach einen Link um das Bild machen (also einen Link mit dem Bild als Text).

    Ich glaub, er meint diesen Hinweis am Ende:

    Zitat von &quot;http://licht-fische.bplaced.net/sites/gaestebuch.php&quot;

    Auswahl der Datenbank fehlgeschlagen

    Hast dus mal mit dem Datenbank-Namen in Anführungszeichen versucht?

    PHP
    <span class="syntaxdefault">   $db_sel </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">mysql_select_db</span><span class="syntaxkeyword">( </span><span class="syntaxdefault">licht</span><span class="syntaxkeyword">-</span><span class="syntaxdefault">fische </span><span class="syntaxkeyword">)<br />    or die(</span><span class="syntaxstring">"Auswahl der Datenbank fehlgeschlagen"</span><span class="syntaxkeyword">); </span><span class="syntaxdefault"></span>


    Wenn du schon am Anfang die Konstante für die Datenbank definierst, dann solltest du diese auch nutzen (MYSQL_DATENBANK).

    Danke euch beiden, ich werd mir die seiten dann mal angucken.

    Die Schreibweise ist ja anscheinend nicht sehr kompliziert.

    Ich denke nicht, dass ich in JavaScript Vererbung brauchen sollte, wenn ich nicht irgendetwas großes in JS vorhabe.
    Für normale JS-Aufgauben braucht man die, denke ich, eher nicht.

    Mir ist das eigentlich auch wichtig, aber mir fehlte in diesem Falle die Lust dazu, wenn es doch auch viel praktischer und schneller mit jQuery geht.
    Bisher habe ich JavaScript auch noch nicht so oft gebraucht, daher hab ich kaum Erfahrung damit. Ich muss mich wirklich mal intensiver mit JavaScript beschäftigen.