Beiträge von DerWaldschrat

    Zufällig (jetzt wirklich zufällig!) habe ich grade eine kleine Template-Klasse geschrieben, die funktioniert, aber noch ein, zwei Schwächen hat.
    Schaus dir erstmal einfach nur an, Fragen kann ich gerne beantworten.
    Falls ich meine Dokumentation fertig habe, kann ich sie hier reinstellen.
    DerWaldschrat

    Erstmal: Verwende bitte das nächste mal den BB-Code für deinen php-Code

    Zitat von "MatzeDB"

    ja warum nicht einfach hier rein kopieren... :D sorry ;)

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php </span><span class="syntaxcomment">//1<br />//2<br />// Datenbank-Verbindung herstellen //3<br />// siehe (mysql-datenbank-verbindung-herstellen.htm) //4<br /></span><span class="syntaxdefault">require_once </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'konfiguration.php'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">  </span><span class="syntaxcomment">//5<br />// zuweisen der MySQL-Anweisung einer Variablen //6<br /></span><span class="syntaxdefault">$sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> CREATE DATABASE </span><span class="syntaxkeyword">`</span><span class="syntaxdefault">adressverwaltung</span><span class="syntaxkeyword">`</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">//7<br /></span><span class="syntaxdefault">$result </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">or die</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Anfrage fehlgeschlagen: "</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> mysql_error</span><span class="syntaxkeyword">());<br /><br /></span><span class="syntaxcomment">// Datenbank-Verbindung herstellen<br />// siehe (mysql-datenbank-verbindung-herstellen.htm)<br /></span><span class="syntaxdefault">require_once </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'konfiguration.php'</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxcomment">// Nutzen von Datenbank (Name ist hinterlegt in Konstante MYSQL_DATENBANK)<br /></span><span class="syntaxdefault">mysql_select_db</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> MYSQL_DATENBANK </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">      or die</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Auswahl der Datenbank fehlgeschlagen"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxcomment">// Datenbank-Verbindung herstellen<br /></span><span class="syntaxdefault">require_once </span><span class="syntaxkeyword">(</span><span class="syntaxstring">'konfiguration.php'</span><span class="syntaxkeyword">);<br /></span><span class="syntaxcomment">// Nutzen von Datenbank (Name ist hinterlegt in Konstante MYSQL_DATENBANK)<br /></span><span class="syntaxdefault">mysql_select_db</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> MYSQL_DATENBANK </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">or die</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Auswahl der Datenbank fehlgeschlagen"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxcomment">// MySQL-Befehl der Variablen $sql zuweisen<br /></span><span class="syntaxdefault">$sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"<br />CREATE TABLE `adressen` (<br />`id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,<br />`nachname` VARCHAR( 150 ) NOT NULL ,<br />`vorname` VARCHAR( 150 ) NULL ,<br />`akuerzel` VARCHAR( 2 ) NOT NULL ,<br />`strasse` VARCHAR( 150 ) NULL ,<br />`plz` INT( 5 ) NOT NULL ,<br />`telefon` VARCHAR( 20 ) NULL<br />) ENGINE = MYISAM ;<br />"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxcomment">// MySQL-Anweisung ausführen lassen<br /></span><span class="syntaxdefault">$db_erg </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> mysql_query</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$sql</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> or die</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Anfrage fehlgeschlagen: "</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> mysql_error</span><span class="syntaxkeyword">());<br /></span><span class="syntaxdefault">?></span></span>


    So, und der PHP-Parser meldet uns jetzt einen Fehler in Zeile 7:
    Ich hab dir die Zeilennummern mal mit Kommentaren markiert, und in Zeile 7 fehlen die Anführungszeichen um den SQL-Befehl, damit PHP weiß, dass es sich um eine Zeichenkette handelt.
    Also muss die Zeile 7 so aussehen:

    PHP
    <span class="syntaxdefault"><br />$sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"CREATE DATABASE `adressverwaltung`"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">//7<br /></span><span class="syntaxdefault"> </span>

    Ja, aber du hast immer noch nicht gesagt, welches der drei Musterbeispiele du möchstest.
    Zuerst einmal gilt dieser Code für alle drei Menüs aus dem Beispiel:


    Zusätzlich gilt für Musterbeispiel 1:

    Code
    ul li ul.neben {
            left: 100%;
            position: absolute;
        }


    Und für Musterbeispiel 2:

    Code
    ul li ul.uber {
            left: 1;
            position: absolute;
        }


    Und für Musterbeispiel 3:

    Code
    ul li ul.zwischen {
            margin: 0;
        }


    D.h. dass für Musterbeispiel 1 die auszuklappende Liste die Klasse "neben" zugewiesen bekommen muss, für Musterbeispiel 2 "uber" und für Musterbeispiel 3 "zwischen".
    Alles klar?
    DerWaldschrat

    So gehts:


    Und lass das "marquee" weg, das ist IE-Schwachsinn.
    DerWaldschrat

    zu:
    1. geändert, danke für den Hinweis!
    2. naja, sonst stehen links nur Links, auf der Startseite stehen hier halt Schulanschrift und Kontakt, das so abzutrennen wie sonst wäre irgendwie komisch.
    3. Das wurde von den Schülern, die unser CMS vor Jahren programmiert haben, so eingerichtet, da könnte ich mal nachfragen, ob man das entfernen kann/darf (ja, die Seite läuft auf einem Selfmade-CMS)
    4. Ähem, Mangel an redaktioneller Leistung :D, waren auch schon mehr Bilder da.
    Danke erstmal für die Antwort!
    DerWaldschrat

    Du legst die Tabelle ohne diese Option "auto_increment" und verwendest dann folgenden SQL-Befehl

    Code
    ALTER TABLE {tabellenname} CHANGE `id` `id` INT( 11 ) NOT NULL AUTO_INCREMENT


    DerWaldschrat


    edit: Du kannst auch in der Spalte, in der "A_I" im Kopf steht, den Haken bei der ID aktivieren.

    UPS, ok :D dass soll ja in der folgenden PHP-Version aufgehoben werden, diese ständigen unterschiedlichen "needle" und "haystack" Parameterreihenfolgen bei String-Suchfunktionen.
    DerWaldschrat

    Einfach Datei mit oben genanntem Inhalt und dem Namen ".htaccess" in das Verzeichnis legen, für das sie gelten soll.
    DerWaldschrat


    Sarkkan: Meintest du, dass mein Code nicht funktioniert?
    Also ich hab ihn lokal getestet und lokal hats funktioniert.

    Sarkkan: Kann aber sein, dass die .htaccess nicht funktioniert (habs mal bei unserer Schulhomepage ausprobiert: entweder ich war zu blöd, oder es hat dort z.B. nicht funktioniert).
    Und weil ich grad nix besseres zu tun habe, hier der Code

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />$datenbank </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"ip.txt"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$data </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> file_get_contents</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$datenbank</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">function ipCheck</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$data</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$_SERVER</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"REMOTE_ADDR"</span><span class="syntaxkeyword">],</span><span class="syntaxdefault"> $data</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return false</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    return true</span><span class="syntaxkeyword">;<br />}<br /><br /></span><span class="syntaxcomment">//Gesperrte IPs<br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">ipCheck</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$data</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">   include_once </span><span class="syntaxstring">"gesperrt.php"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">   exit</span><span class="syntaxkeyword">;<br />}<br /><br /><br /><br /></span><span class="syntaxdefault">?><br /></span></span>


    Einfach die IPs direkt hintereinander, kommasepariert in die Datei schreiben.
    DerWaldschrat

    Wie genau meinst du dass?
    Also quasi einen Crawler per JS zu programmieren, der dir alle deine Seiten durchsucht, geht nicht, und auch Datenbankabfragen sind nicht möglich. Dafür benötigst du PHP.
    Was geht, sind Suchfelder, die bei jeder Eingabe eine Ajax-Anfrage an den Server schicken und dann eine Liste mit passenden Ergebnissen zurückerhalten und diese dann unter dem Suchfeld einblenden.
    Das ist aber aufwendig zu programmieren, das geht am einfachsten mit Scriptaculous oder jQuery UI
    DerWaldschrat

    Hallo,
    ich wollte mal wissen, welches JS-Framework ihr denn, wenn ihr denn eines benutzt, verwendet,
    wenn ja,
    - warum ausgerechnet dieses,
    - wie ihr die Dokumentation findet,
    - und ob ihr euch vorstellen könntet, ein anderes zu nehmen.
    wenn nein,
    - warum nicht.


    Ich fang mal selbst an:


    Ich selbst verwende Prototype, weil dieses mir im Gegensatz zu jQuery Objektorientierung bietet und eine fast unschlagbare Dokumentation bietet (ich meine aber nicht die Tutorials!).
    Vorstellen könnte ich mir höchsten jQuery als Ergänzung, da dieses für einige Dinge kürzere Möglichkeiten bietet, aber eben keine Objektorientierung an Board hat.


    DerWaldschrat

    Hallo,
    ich kenne mich eigentlich recht gut mit JS aus, hab aber eine Frage:
    Wenn ich per

    Code
    <script>
    function validate () {
      if (true) /* Formularvalidierung */
     return false; 
    }
    </script>
    <form onsubmit="validate()">
    </form>


    oder

    Code
    function validate () {
      if (true) /* Formularvalidierung */
     return false; 
    }
    <form id="formm">
    </form>
    <script>
    document.getElementById.onsubmit=validate;
    </script>


    den Eventhandler registriere, wird das Abschicken des Formulars per "return false;" unterbunden.
    Wenn ich aber die Eventregistrierung über "attachEvent/addEventListener" mache, geht es nicht so einfach.
    Wie lässt sich das dann mit "attachEvent/addEventListener" lösen?
    DerWaldschrat


    edit: Hat wirklich keiner eine Ahnung?

    Also im Firefox 3.6, IE 8, Opera 11, Chrome 8 und Safari 5, also in allen aktuellen gehts.
    Abgesehen davon, dass es bei solchen Sachen nicht so dramatisch ist, dass sie nicht gehen. Deswegen gleich auf js zurückzugreifen ist Käse.
    DerWaldschrat