Zerschossener PHP-Code

  • Hallo,

    und schon kommt die nächste Frage um die Ecke ...

    Ich habe für ein Kontaktformular (bei dem mir hier im Forum auch schon beträchtlich geholfen worden ist - vielen Dank!!) php in eine Seite eingebunden (via Plugin Exec-php) - der Code ist dann, aufgrund eines Theme-Wechsels, von WP zerschossen worden.
    Ich habe das hier einsortiert, weil ich argwöhne, dass das Plugin etwas mit dem Zerschießen zu tun hat. Vielleicht falsch, dann Entschuldigung.

    Worin äußert sich das Zerschießen?
    Das Formular springt nach Absenden auf die index-Seite; die Informationen sind verloren, und die eMail wird auch nicht verschickt.

    Die ganze Seite hängt schief in den Angeln!

    Firefox findet bei der html-Validierung plötzlich 200 Fehler (!) - es wird irgendwas ganz Blödes sein, eine spitze Klammer nicht geschlossen oder so ... Ich finde es nicht.
    Dummerweise habe ich keine Kopie gemacht, so dass ich die Datei durch ein Original ersetzen könnte ...

    Jetzt suche und suche und suche und suche und suche ich den Fehler (und suche und suche), viereinhalb Stunden jetzt, und nun stehe ich - ach ja: Newbie - kurz vor dem Wahnsinn.

    Findet evtl. jemand von euch mit klarem Blick den Fehler? Fehlt irgendwo ein Leerzeichen oder ein weißer Punkt ...?

    Vielen, vielen Dank! Hier ist der Code -->



    :confused:

    Einmal editiert, zuletzt von Farlif (28. Februar 2010 um 17:08)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hi Farlif,

    ich habe den Code den du oben gepostet hast als Standalone php Seite einfach mal ausprobiert.

    Also es scheint alles zu funktionieren, sonst würde ein parsing error, oder zumindest eine andere Fehlermeldung auftauchen.

    Mir ist allerdings aufgefallen, das der Absender bei der verschickten Email leer bleibt.;)

    Die Ursache muss also woanders liegen.

    Bitte keine Fragen per PM, oder Foren-Chat. Für Fragen ist das öffentliche Forum da. Meine Uerdinger Seite

  • Nur so als Tip: Du kannst mit cForms meines Wissens nach relativ bequem Formulare bauen und in Seiten einbetten. Wenn das Ergebnis eh nur per Mail verschickt werden soll, würde ich diesen Weg einer Eigenbau-Lösung mit phpExec in jedem Fall vorziehen.
    http://www.deliciousdays.com/cforms-plugin/

    Falls Du die jetzige Lösung behalten willst tue der Welt bitte einen Gefallen und maskiere/filtere die Nutzereingaben (insbesondere auf Zeilenumbrüche), ehe Du sie in die Mail-Header schreibst. Das hier z.B. ist eine Einladung, Spam zu verschicken:

    PHP
    $Header = "From: ".$_REQUEST['Email']; 
    $Header .= "\n";

    Was macht der Spammer da? Der schickt Dir einen Wert wie "mailadresse\nBCC: mailadresse1;mailadresse2;..." im From-Feld, et voila, Dein Server verschickt Spam. :-/

    Genau aus solchen Gründen soll man das Rad auch nicht unnötig neu erfinden und lieber eine vorhandene Lösung nutzen. ;-)

  • Hi Marcus, hi Ammaletu,

    danke für eure Antworten, für Standalone-Test, Mühe und Link!

    Genau aus solchen Gründen soll man das Rad auch nicht unnötig neu erfinden und lieber eine vorhandene Lösung nutzen. ;-)



    Ja, vor allem, wenn die eigenen Räder irgendwie immer eckig werden ... :roll:
    Werde mich also mal bei cForms umsehen.

    Aber nur für den Fall, dass es dann evtl. doch leichter für mich Newbie ist, das alte Formular zu retten (und die Spammer zu stoppen ;) ) - am Anfang hat es ja geklappt .... jetzt nicht mehr ... also irgendeine andere php kaputt?
    Ich habe nun Header, Footer, Single.php und page.php aus der aktuellen Installation mit den Erstdateien des Themes verglichen - da gab es keinen Unterschied. Die waren es also nicht.

    Kann man so von außen sagen, was vielleicht noch kaputt sein könnte?
    Oder soll ich es vielleicht doch lieber gleich ganz lassen? :???:
    Danke!

    Einmal editiert, zuletzt von Farlif (1. März 2010 um 17:43)

  • Tja, nochmal hallo,

    und Entschuldigung für Doppelpost, aber lange Versuchsreihen haben ergeben: cForms war auch nicht die Lösung.
    Nach der Aktivierung des PlugIns war der Blog erstmal nicht mehr erreichbar ...

    Ich musste cForms extern über ftp umbenennen und damit deaktivieren, dann kam ich wieder an die Admin-Funktionen heran, habe die anderen plugins sämtlich deaktiviert und cForms wieder aktiviert - Fehlanzeige. Wieder abgestürzt.

    Nun würde ich es also doch gerne über das oben zitierte halb-handgestricktes Formular machen. - Das aber, wie gesagt, einfach nicht läuft! Obwohl es ja, wie ihr richtig sagtet, eigentlich doch laufen sollte. Und die anderen phps im Editor scheinen ja auch in Ordnung zu sein.

    Hat jemand irgendeine wilde Idee, wo ich noch nachgucken könnte, was das Formular so sehr ausbremst?

    Danke euch!

    Einmal editiert, zuletzt von Farlif (1. März 2010 um 17:44)

  • Ok, zum einen: Mach Dich damit vertraut, wo und wie auf Deinem Server PHP-Fehler geloggt werden. Spätestens wenn Du selbstgeschriebenen PHP-Code ausführst, solltest Du das wissen und das Log ab und an checken, zumindest am Anfang.

    Wenn Du weißt, wo die Fehler geloggt werden, kannst Du genauso gut mal schauen, wieso cForms nicht geht. Da wird dann wohl eine Voraussetzung für das Plugin nicht stimmen, vielleicht kann man das ja ohne großen Aufwand beheben.

    Zu Deinem eigenen Formular: Das ist jetzt nicht speziell verwunderlich, wenn Du Dir überlegst, wie WP intern funktioniert. Du rufst meinetwegen die statische Seite meinedomain.de/formularseite auf, aber i[COLOR=Black]ntern wird meinedomain.de/index.php?page_id=... aufgerufen. Wenn Du das Formular also auf [/COLOR][COLOR=#000000][COLOR=#dd0000][FONT=Verdana][COLOR=Black]PHP_SELF zeigen lässt, [/COLOR][/FONT][COLOR=Black]schickst Du es einfach an die index.php ab. Ohne weitere Parameter in der URL ist das einfach die Startseite. Klar, da wird dann nichts angezeigt und die Mail wird nicht verschickt.[/COLOR]

    [COLOR=Black]Wenn Du das also beheben willst, ersetze das Formularziel durch den Namen der Seite. Du kannst das sicher auch mit WP-Mitteln dynamisch einsetzen (The_permalink() ?!), aber einfach[COLOR=Black]er ist es, das einfach fest reinzuschreiben.[/COLOR]

    Und denk an den Schutz gegen Spamversand! Folgende Links helfen eventuell weiter dabei:
    http://www.teris.de/workshop-nr1.php
    http://www.heise.de/security/artik…lle-270758.html
    [/COLOR]
    [/COLOR][/COLOR]

Jetzt mitmachen!

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