Beiträge von DerWaldschrat

    Also alle Versuche meinerseit, Firefox auszutricksen, sodass er die automatischen Popups nicht mehr blockt, sind bisher schiefgegangen.
    Du müsstest deinen freund dazu bringen, auf einen link zu klicken, etwa so:

    Code
    <script>
    function hallo()
    {
        var url = "http://www.fdg.ab.by.schule.de", times = 3;
        for (var i = 0; i < times; ++i) window.open(url);
    }</script>
    <a href="#" onclick="hallo();">Bitte nicht klicken!</a>


    DerWaldschrat


    edit:
    mit

    Code
    <iframe src="http://www.fdg.ab.by.schule.de">
    
    
    
    
        </iframe>


    funktioniert die seite auch :)

    Ähm du könntest auch den Eventhandler für das Fenster ändern:


    DerWaldschrat

    So gehts natürlich auch...
    Nur wer halt Vererbung benutzten möchte, braucht halt diese "Klassen"-Engine (oder macht das auch von Hand, dann wirds aber ein ganz kleines bisschen komplizierter).
    Sören: Dein Tic-tac-toe gefällt mir gut, um mal beim Thema zu bleiben.
    DerWaldschrat

    <!-- m --><a class="postlink" href="http://dailyjs.com/tags.html#lmaf">http://dailyjs.com/tags.html#lmaf</a><!-- m -->
    Hier findet man (unter anderem) ne Anleitung, wie man "Klassen" mit JavaScript erzeugen kann.
    Du kannst dir natürlich auch den Prototype-Code anschauen, wie die das machen, ist nicht soo schwer zu verstehen (aber auch nicht einfach).
    DerWaldschrat

    Ah, gut zu wissen, dass versteckte Formularfelder nicht abgeschickt werden.
    Wenn man sie also vor dem Abschicken wieder anzeigt, müsste es aber gehen, oder? (Also direkt im handler)
    Das mit den "hidden"-fields war auch mein Workaround :D
    OK, ich hätte das mit jQueryUI vielleicht löschen sollen, habs aber vergessen.
    Danke noch mal.
    DerWaldschrat

    Ja genau darum gehts, wenn ich das Formular ohne submit-Handler abschicke, werden die Werte ganz normal übergeben, wenn er aber hinzugefügt wird, gehts nicht mehr.
    Die jQuery ladt dir am besten einfach mal bitte kurz runter, die jQueryUI brauchst du nicht.
    DerWaldschrat

    Hallo,
    ich hab folgendes Problem:
    Bei dem untenstehenden Formular werden die Radiobuttons irgendwie nicht mitabgeschickt, wenn das Formular abgeschickt wird:


    DerWaldschrat


    edit: Ich hab grad gemerkt, dass es irgendwie mit dem Submit-Handler zusammenhängt, und hab ein Workaround gefunden, aber warum passiert es, dass die Radios nicht mitgeschickt werden?

    Ähm, das könnte an der Codierung der Dateien liegen.
    Werden die Umlaute als Fragezeichen angezeigt?
    Poste am besten noch mal den gesamten Quelltext von beiden Dateien (oder bei der Excel den Anfang, bis sich Codeteile wiederholen)
    DerWaldschrat

    Wo zeigt er was nicht an?
    Wenn du du den div mit der id "eins" meinst, ist das kein wunder, denn der enthält nur einen link, der aber keinen text innen drin hat.

    Code
    <div id="eins">
         <a href="Speisekarte.htm"></a> <--da steht nix drin
       </div>


    DerWaldschrat

    Machs doch einfach so:

    PHP
    <span class="syntaxhtml"><br />// Die Variablen sind schon definiert von deinem Skript<br />$fp = fopen("config.php", "w");<br />fputs($fp, '<span class="syntaxdefault"><?php<br />$dbhost </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"'.$dbhost.'"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$dbuser </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"'.$dbuser.'"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$dbpassword </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"'.$dbpassword.'"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">?></span>');  // Die einfachen Anführungszeichen sind wichtig!!<br />fclose($fp);<br /> </span>


    DerWaldschrat

    Hallo Marius,
    hierbei handelt es sich nicht um Fehlermeldungen im herkömmlichen Sinne, sonder um sog. Notices.
    Diese zeigen nur an, dass eine Variable bzw. ein Arrayindex nicht definiert ist, in diesem Falle für die per $_POST empfangenen Werte, weil ja beim ersten Aufruf der Seite das Formular noch nicht abgeschickt wurde und somit $_POST["benutzername"] noch keinen Wert hat.
    Diese schaden deinem Skript aber nicht, du kannst sie hiermit auch abschalten: (Sie sind dann noch vorhanden, werden aber nicht mehr angezeigt)

    PHP
    <span class="syntaxdefault"><br /></span><span class="syntaxcomment">// Bitte an den Anfang des Skriptes schreiben<br /></span><span class="syntaxdefault">error_reporting</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">E_ALL </span><span class="syntaxkeyword">^</span><span class="syntaxdefault"> E_NOTICE</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> </span>


    Wenn du diese Notices trotzdem wegbekommen willst, dann musst du schreiben:

    PHP
    <span class="syntaxdefault"><br />$Benutzername   </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'benutzername'</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'benutzername'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$Passwort       </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'passwort'</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'passwort'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>


    Und für die Sessionvariable:

    PHP
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">if (isset(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'eingeloggt'</span><span class="syntaxkeyword">]) && </span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'eingeloggt'</span><span class="syntaxkeyword">] == </span><span class="syntaxdefault">true</span><span class="syntaxkeyword">)<br /> </span><span class="syntaxdefault"></span>


    Philipp: Wieso sollte er "echo" nehmen? Diese Lösung ist doch viel eleganter, finde ich.
    DerWaldschrat

    Zitat von &quot;R4Zz0R&quot;


    CyberGirl:
    Ich verwende ungern fremdsoftware .. ich will es selber schreiben können und nicht auf etwas bestehendem aufbauen ..


    Mir gehts genauso.
    Naja, jeder halt so, wie er mag. Ich find die OOP jetzt auch nicht überragend, nur manchmal halt ganz hilfreich.
    DerWaldschrat

    Also das du kein OOP magst, hab ich ja in dem anderen Thread zu der Wordcounter-Klasse gesehen.
    Aber ich denke mir, gerade für Module, die universell einsetzbar sein sollen, müssen objektorientiert geschrieben sein, sonst klappt die Kapselung der ganzen Sache nicht (überschreiben von Funktionen et cetera).


    Ich weiß, meine Klasse kann noch nicht so viel, aber für den Zweck, für den ich sie evtl. einsetzen will, reichts.


    DerWaldschrat

    Also gut, um ein Template zu erstellen, brauchst du einen Ordner, in den alle Template-Dateien kommen.
    Diese müssen dann in Kleinbuchstaben nach dem Schema "deinname.tmp.html" benannt werden.
    Dort kommt dann dein Template-Code rein.


    Alle Template-Befehle werden in HTML-Kommentare geschrieben, Variablennamen dürfen nur Großbuchstaben, den Unterstrich _ und Ziffern enthalten.
    Es gibt folgende:
    ECHO:Variable gibt eine lokale Variable aus.
    GLOBAL:Variable gibt eine globale Variable aus.
    TRUE:Variable:Codeschnipsel1:Codeschnipsel2 (beide ohne spitze Klammern) wenn die lokale Variable true ist, wird Codeschnipsel1 ausgegeben, ansonsten Codeschnipsel2.
    DEFINE:Variablen:Wert definiert eine globale Variable mit Wert, wieder keine spitzen Klammern erlaubt.
    USETEMPLATE:Templatename bestimmt, dass ein Subtemplate genutzt wird, Name des Subtemplates entspricht Dateinamen in Großbuchstaben ohne das ergänzende ".tmp.html"


    Dann gibt es die Möglichkeit, diese Befehle in einen NOTEMPTY-Block einzubetten:
    Dieser überprüft die bei NOTEMPTY:Variable genannte lokale Variable mit der php-empty-Funktion, und führt dann den Codeblock aus, der innerhalb des NOTEMPTY steht, hier lässt sich auch noch eine Alternative einbinden.
    Diese ganzen Anweisungen lassen sich noch in einen Block einbinden, der ein Array durchläuft und nacheinander alle Werte ausgibt.
    Syntax hierfür: START:Variable ... STOP:Variable.
    Innerhalb dieser Schleifen gilt auch die Unterscheidung zwischen globalen und lokalen Variablen: außerhalb der Schleife definierte globale Werte müssen innerhalb der Schleife mit GLOBAL ausgegeben werden, sonst sucht die Schleife nach einem passenden lokalen Wert.


    Falls man verschachtelte Blöcke benötigt, muss man den USETEMPLATE-Befehl verwenden.


    Soweit zu den Sprachregeln.


    Verwendung per PHP:
    Es muss einfach ein neues Template-Objekt (Verzeichnis der Template-Dateien, dateiname ohne .tmp.html) erzeugt werden, dann können einzelne Variablen add_simple_var(name, value) oder Array mit add_array(array) hinzugefügt werden.
    Um START-STOP-Blöcke mit Werten zu füllen, muss ein Arraywert, dessen key dem Blocknamen entspricht und dessen Wert ein indiziertes Array ist, übergeben werden. In diesem indizierten Array sind dann alle Schleifenwerte einzeln enthalten, wieder als Array, mit der normalen Zuordnung key=name => wert=value der Variablen.


    Ich hoffe, diese Erklärungen genügen in Verbindung mit den Beispieldateien.


    Ach ja, das Template ist dann mit compile_file zu kompilieren, dann erhält man als rückgabewert eine Zeichenkette mit den eingesetzten werten.


    DerWaldschrat