Beiträge von Sören

    Wenn man sich die Seite komplette durchgelesen hätte, wüsste man auch, dass der Code am Anfang, über den wir hier die ganze Zeit reden, gar nicht valide sein soll und der richtige Code am Ende steht:

    http://dciwam.de/faq/html/flash-einbinden.php

    Zitat

    Flash produziert ungefähr folgenden Code, um ein Flash-Movie "movie.swf" in HTML zu integrieren:[...]
    Leider ist dieser Code aus zwei Gründen nicht sonderlich geschickt: Erstens ist der Code nicht valide, [...]

    [...]

    Praktisch alle Browser können MIME-Typen ansprechen, weshalb diese Lösung auch in allen Browsern funktionieren sollte, die das object -Tag verstehen. Damit werden zwei Fliegen mit einer Klappe geschlagen: Das invalide embed -Tag kann entfallen und eine (valide) Lösung funktioniert mit allen Browsern. Die knappste Lösung sieht also wie folgt aus:

    Code
    <object width="160" height="112"
        data="movie.swf"
        type="application/x-shockwave-flash">
      <param name="movie" value="movie.swf">
    </object>

    Dieser Code ist 100%-tig valide, hier ist das Ergebnis vom Validator: http://validator.w3.org/check?verbose=1&uri=http%3A%2F%2Fsoeren-thomas.de%2Fflash_einbinden.html

    Zitat von &quot;Sarkkan&quot;


    Oder was mir spontan einfällt, wäre folgendes:

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">if(</span><span class="syntaxstring">"a"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> strstr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pic</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"a"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">".png"</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $endung </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'png'</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>

    Wir hängen also (ein) Zeichen an das Bild und lassen nach genau diesem Zeichen suchen.. wenn strstr erfolgreich ist, würde genau dieses "a" zurück gegeben :)

    oder du lässt einfach mit einer anderen Funktion wie preg_match o.Ä. danach suchen^^


    Strstr gibt nicht den Teil nach dem Suchstring zurück, sondern ab dem Suchstring.
    In diesem Falle würde, bei erfolgreicher Suche, also .pnga zurückgegeben werden.

    Da sind reguläre Ausdrücke irgendwie deutlich einfacher.
    Hier nochmal das preg_match-Beispiel von vorher:

    PHP
    <span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">preg_match</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"~\.png$~i"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> <br />    </span><span class="syntaxcomment">//... <br /></span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span>


    (Hab jetzt auch extra nochmal nach dem Rückgabewert geschaut, sollte so funktionieren^^)

    Zitat von &quot;YetiZwerg&quot;

    Jetzt habe ich neben er Dateiendung noch das Prob, dass vom unteren Ende des Bildes immer etwas abgeschnitten wird...


    Du sagst ja auch mit

    PHP
    <span class="syntaxdefault">imagecopy</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$dst</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$src</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">38</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">0</span><span class="syntaxkeyword">, </span><span class="syntaxstring">'173'</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$width</span><span class="syntaxkeyword">); </span><span class="syntaxdefault"></span>

    , dass nur eine Höhe von 173 Pixeln aus dem Bild kopiert werden soll.
    Hier muss, wie mit $width, die Höhe des zu kopierenden Bildes rein.

    Mit strstr sollte es möglich sein.

    Beispiel:

    PHP
    <span class="syntaxdefault"><br />if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> strstr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pic</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">".png"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $pic </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> imagecreatefrompng</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pic</span><span class="syntaxkeyword">);<br />}<br /></span><span class="syntaxdefault">elseif </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">true </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> strstr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pic</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">".jpg"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $pic </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> imagecreatefromjpg</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pic</span><span class="syntaxkeyword">);<br />}<br /></span><span class="syntaxcomment">//weitere Dateitypen<br /></span><span class="syntaxdefault"> </span>


    Mit switch geht es natürlich kürzer, aber solange du das Prinzip verstanden hast.

    Sollten mehrere Punkte vorhanden sein, musst du es mit regulären Ausdrücken machen und nach dem letzten Punkt die Endung untersuchen.
    Kann ich dir auch gerne ein Beispiel schreiben, wenn du das möchtest.

    Edit: Der reguläre Ausdruck (einfach die if-Abfragen damit ersetzen):

    PHP
    <span class="syntaxdefault"></span><span class="syntaxkeyword">if (</span><span class="syntaxdefault">preg_match</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"~\.png$~i"</span><span class="syntaxkeyword">) { </span><span class="syntaxcomment">//... } </span><span class="syntaxdefault"></span>


    Statt png kannst du natürlich auch nach anderen Endungen suchen

    Ich hab ja nichts verbessert, sondern dir nur wieder den Code eingerückt.

    Schaue dir das an, was ich dir eben schon gesagt hab, dann solltest du auch die Fehler finden.
    Wenn du keine Fehler findest, schaue dir nochmal

    Zitat von &quot;Sarkkan&quot;

    das Prinzip, beziehungsewise den Grund, wieso und wann geschweifte Klammern verwendet werden

    an.

    Du übergibst ImageCopy einfach nur einen String, der den Namen des Bildes enthält.
    Das ist aber keine Ressource. Du musst das Bild also vorher einlesen und in $pic speichern.

    Ich kenne mich mit Bildfunktionen nicht aus, aber vielleicht funktioniert es mit readfile. Musst ausprobieren

    PHP
    <span class="syntaxdefault">$pic </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">readfile</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'pic.png'</span><span class="syntaxkeyword">); </span><span class="syntaxdefault"></span>

    Du glaubst?
    Probier es doch einfach aus und schaue, ob alle Klammern logisch gesetzt sind.

    Zitat von &quot;FCSBaum&quot;


    nur bei dem:

    Code
    foreach($HTTP_POST_VARS as $value => $field){
                $mailnachricht .= ucfirst($field).": $value\r\n";
            }


    bin ich mir nicht so sicher würde aber sagen das die bleiben sollte

    gruß


    Was willst du mit der Foreach-Schleife und dem Code danach machen?
    Willst du nur $value für jede Post-Variable der Nachricht hinzufügen und das, was danach kommt nur einmal hineinschreiben oder willst du bei jeder Post-Variable auch den Wert darein schreiben?

    Du solltest genau schauen, was du machen willst und was dein Code macht.

    Und achte genau darauf, wie du einrückst, jetzt hab ich es nochmal für dich getan, nächstes mal schaue bitte selber:

    PHP
    <span class="syntaxdefault"><?php<br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'abschicken'</span><span class="syntaxkeyword">])<br />{<br />    if(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">]  != </span><span class="syntaxstring">"" </span><span class="syntaxkeyword">||<br />       </span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'email'</span><span class="syntaxkeyword">] != </span><span class="syntaxstring">"" </span><span class="syntaxkeyword">||<br />       </span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'text'</span><span class="syntaxkeyword">]  != </span><span class="syntaxstring">""</span><span class="syntaxkeyword">)<br />    {<br />        echo </span><span class="syntaxstring">"Bitte gehen Sie zur&uuml;ck und f&uuml;llen Sie alle Felder aus!"</span><span class="syntaxkeyword">;<br />    }<br />    else<br />    {<br />        </span><span class="syntaxcomment">// Für jedes Element in $HTTP_POST_VARS soll folgender Code ausgeführt werden<br />        // Der Inhalt der Variabel soll hierbei über $value, der Array-Schlüssel über $field ansprechbar sein<br />        </span><span class="syntaxkeyword">foreach(</span><span class="syntaxdefault">$HTTP_POST_VARS </span><span class="syntaxkeyword">as </span><span class="syntaxdefault">$value </span><span class="syntaxkeyword">=> </span><span class="syntaxdefault">$field</span><span class="syntaxkeyword">){<br />            </span><span class="syntaxdefault">$mailnachricht </span><span class="syntaxkeyword">.= </span><span class="syntaxdefault">ucfirst</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$field</span><span class="syntaxkeyword">).</span><span class="syntaxstring">": $value\r\n"</span><span class="syntaxkeyword">;<br />        }<br />        if(</span><span class="syntaxdefault">$feld</span><span class="syntaxkeyword">!=</span><span class="syntaxstring">"abschicken"</span><span class="syntaxkeyword">)<br />        {<br />            </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">ucfirst</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$feld</span><span class="syntaxkeyword">).</span><span class="syntaxstring">": $wert\n"</span><span class="syntaxkeyword">;<br />            </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"\nDatum/Zeit: "</span><span class="syntaxkeyword">;<br />            </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">date</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"d.m.Y H:i:s"</span><span class="syntaxkeyword">);<br />            </span><span class="syntaxdefault">$mailbetreff</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Betreff: "</span><span class="syntaxkeyword">;<br />            </span><span class="syntaxdefault">$mailbetreff</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$HTTP_POST_VARS</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'betreff'</span><span class="syntaxkeyword">];<br />            </span><span class="syntaxdefault">mail</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"PhilippWendel@gmx.de"</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$mailbetreff</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">, </span><span class="syntaxstring">"From: $email"</span><span class="syntaxkeyword">);<br />            echo </span><span class="syntaxstring">"Vielen Dank für Ihre eMail!"</span><span class="syntaxkeyword">;<br />        }<br />        else<br />        {<br />            echo </span><span class="syntaxstring">"Ein Fehler ist aufgetreten."</span><span class="syntaxkeyword">;<br />        }<br />    }<br /></span><span class="syntaxdefault">?></span>

    Ach, und schaue, ob du alle geöffneten Klammern auch wieder shließt. :wink:

    Weißt du, wozu Einrücken gut ist? Damit sieht man leichter, welche Klammer wozu gehört.
    Außerdem benötigt jedes geschweifte-Klammernpaar auch einen Grund anzufangen, also beispielsweise ein if-Abfrage, for-Schleife oder Funktion.

    Ich habe die deinen Code mal eingerückt, vielleicht fällt dir dann ja auf, was unsinnig ist:

    PHP
    <span class="syntaxdefault"><?php<br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'abschicken'</span><span class="syntaxkeyword">])<br />{<br />    if(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'name'</span><span class="syntaxkeyword">]  != </span><span class="syntaxstring">"" </span><span class="syntaxkeyword">||<br />       </span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'email'</span><span class="syntaxkeyword">] != </span><span class="syntaxstring">"" </span><span class="syntaxkeyword">||<br />       </span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'text'</span><span class="syntaxkeyword">]  != </span><span class="syntaxstring">""</span><span class="syntaxkeyword">)<br />    {<br />        echo </span><span class="syntaxstring">"Bitte gehen Sie zur&uuml;ck und f&uuml;llen Sie alle Felder aus!"</span><span class="syntaxkeyword">;<br />    }<br />    else<br />    {<br />        </span><span class="syntaxcomment">// Für jedes Element in $HTTP_POST_VARS soll folgender Code ausgeführt werden<br />        // Der Inhalt der Variabel soll hierbei über $value, der Array-Schlüssel über $field ansprechbar sein<br />        </span><span class="syntaxkeyword">foreach(</span><span class="syntaxdefault">$HTTP_POST_VARS </span><span class="syntaxkeyword">as </span><span class="syntaxdefault">$value </span><span class="syntaxkeyword">=> </span><span class="syntaxdefault">$field</span><span class="syntaxkeyword">){<br />            </span><span class="syntaxdefault">$mailnachricht </span><span class="syntaxkeyword">.= </span><span class="syntaxdefault">ucfirst</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$field</span><span class="syntaxkeyword">).</span><span class="syntaxstring">": $value\r\n"</span><span class="syntaxkeyword">;<br />        }<br />        {<br />            if(</span><span class="syntaxdefault">$feld</span><span class="syntaxkeyword">!=</span><span class="syntaxstring">"abschicken"</span><span class="syntaxkeyword">)<br />            {<br />                </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">ucfirst</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$feld</span><span class="syntaxkeyword">).</span><span class="syntaxstring">": $wert\n"</span><span class="syntaxkeyword">;<br />            }<br />            </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">.=</span><span class="syntaxstring">"\nDatum/Zeit: "</span><span class="syntaxkeyword">;<br />            </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">date</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"d.m.Y H:i:s"</span><span class="syntaxkeyword">);<br />            </span><span class="syntaxdefault">$mailbetreff</span><span class="syntaxkeyword">=</span><span class="syntaxstring">"Betreff: "</span><span class="syntaxkeyword">;<br />            </span><span class="syntaxdefault">$mailbetreff</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$HTTP_POST_VARS</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'betreff'</span><span class="syntaxkeyword">];<br />            </span><span class="syntaxdefault">mail</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"PhilippWendel@gmx.de"</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$mailbetreff</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">, </span><span class="syntaxstring">"From: $email"</span><span class="syntaxkeyword">);<br />            echo </span><span class="syntaxstring">"Vielen Dank für Ihre eMail!"</span><span class="syntaxkeyword">;<br />        }<br />        else<br />        {<br />            echo </span><span class="syntaxstring">"Ein Fehler ist aufgetreten."</span><span class="syntaxkeyword">;<br />        }<br />    }<br /></span><span class="syntaxdefault">?></span>
    PHP
    <span class="syntaxdefault">$mailbetreff</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$HTTP_POST_VARS</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">betreff</span><span class="syntaxkeyword">]; </span><span class="syntaxdefault"></span>


    Betreff muss in Anführungsstriche gesetzt werden.

    PHP
    <span class="syntaxdefault">        </span><span class="syntaxkeyword">foreach(</span><span class="syntaxdefault">$HTTP_POST_VARS </span><span class="syntaxkeyword">as </span><span class="syntaxdefault">$value </span><span class="syntaxkeyword">=> </span><span class="syntaxdefault">$field</span><span class="syntaxkeyword">){<br />            </span><span class="syntaxdefault">$mailnachricht </span><span class="syntaxkeyword">.= </span><span class="syntaxdefault">ucfirst</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$field</span><span class="syntaxkeyword">).</span><span class="syntaxstring">": $value\r\n"</span><span class="syntaxkeyword">;<br />        }<br />        {<br />            if(</span><span class="syntaxdefault">$feld</span><span class="syntaxkeyword">!=</span><span class="syntaxstring">"abschicken"</span><span class="syntaxkeyword">)<br />            {<br />                </span><span class="syntaxdefault">$mailnachricht</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">ucfirst</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$feld</span><span class="syntaxkeyword">).</span><span class="syntaxstring">": $wert\n"</span><span class="syntaxkeyword">;<br />            }<br />        } </span><span class="syntaxdefault"></span>


    Ich denke, die schließende und öffnende geschweifte Klammer vor der if-Abfrage müssen weg.

    Poste mal bitte deinen momentanen Code, sonst können wir ja nicht wissen, was noch falsch sein könnte.

    Das einzige, was am Webspace liegen könnte ist, dass dieser gar kein PHP unterstützt. Laufen denn anderen PHP-Skripte?

    Hast du dir den Text überhaupt durchgelesen?

    Der Code am Anfang des Textes ist nicht valide, was auch dadrunter steht.

    Dagegen ist der Code danach valide:

    Zitat von &quot;http://dciwam.de/faq/html/flash-einbinden.php&quot;
    Code
    <object width="160" height="112"
        data="movie.swf"
        type="application/x-shockwave-flash">
      <param name="movie" value="movie.swf">
    </object>

    Dropdown funktioniert bei mir richtig.

    Ich denke mal, die thickbox.css-Datei ist nicht von dir geschrieben, oder?
    Ohne die sind alle CSS-Fehler, die die jetzt noch da sind, nur noch nicht in den CSS3-Standard aufgenommene Werte (rgba) und Browser-Prefix Eigenschaften (-moz-border-radius).
    Kannst es jetzt also so lassen.

    Schaut gut aus.

    Das einzige, was mir aufgefallen ist, du benutzt veraltete Tags zur Steuerung des Designs (font, align) und hast nicht alle Styles aus dem HTML-Code ausgelagert (style="...").
    Das Design gehört vollständig ins CSS-Dokument. HTML ist nur für den Inhalt zuständig.
    Außerdem sind font und align veraltet.

    Du hast auch ein paar Fehler im HTML-Code, solltest mal den Validator drüberschauen lassen:
    http://validator.w3.org/check?verbose=1&uri=http%3A%2F%2Fwww.seventransporte.de%2F

    Der CSS-Code ist auch nicht valide, musst mal schauen, was nicht von nicht in den Standard aufgenommenem CSS3 kommt:
    http://jigsaw.w3.org/css-validator/validator?profile=css3&warning=0&uri=http%3A%2F%2Fwww.seventransporte.de%2F

    An deinen Variablennamen stimmt was nicht.
    Du kannst, um auf die vom Formular übergebenen Variablen zugreifen zu können, nicht einfach nur den Namen benutzen (es sei denn, auf dem Server ist register_globals aktiviert).
    Auf solche Variablen wird mit $_POST['name'] zugegriffen.
    Du musst also überall, wo du auf Variablen aus dem Formular zugreifst, statt z.B.

    PHP
    <span class="syntaxdefault">$abschicken</span>
    PHP
    <span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'abschicken'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span>

    schreiben.

    Benutze nächstes mal bitte den Code-BBCode, lässt sich dann deutlich besser lesen.


    lauras: Das stimmt so nicht ganz, ohne Vergleichswert wird überprüft, ob $abschicken true ist, also nicht leer, 0 oder false ist.
    In diesem Falle würde es so funktionieren, da die Variable ja nicht existiert und somit leer ist, wenn das Formular nicht abgeschickt wurde.

    Danebensetehende Beschreibung lesen hilft. Dieser Fehler bedeutet, dass die Attribute in dem von dir im Doctype vereinbarten Standard nicht enthalten / veraltet sind.

    Ich denke mal, da target bei dir ein Fehler ist, benutzt du XHTML 1.0 Strict, oder?
    Laut diesem darfst du kein target und kein language benutzen.
    Du musst sie also aus deinem Code entfernen, um die Fehler zu entfernen.

    Um target benutzen zu können, empfehle ich dir den HTML5 Doctype. Der ist auch ganz einfach:

    Code
    <!doctype html>

    language wird nicht benötigt, da die Sprache bereits mit type festgelegt wird.
    In HTML5 benötigt man keine Angabe von type oder language mehr, der <script>-Tag ist ausreichend.