Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular wird nicht mehr gesendet

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formular wird nicht mehr gesendet

    Hallo Leute,

    ich habe vor längerer Zeit ein Formular erstellt das mit der PHP Funktion mail() sendet. Seit kurzer Zeit wird das Formular, ohne das ich irgendwas verändert hätte, nicht mehr gesendet. Der Provider behauptet am Server nichts verändert zu haben und das mein Skript einfach in Zeile 5 bei
    $ok
    abbricht:
    <html>
    <?php
    extract($_REQUEST);
    // Code zum Überprüfen der Formulardaten.
    $ok = !(trim($HTTP_POST_VARS["Name"]) == "" ||
    trim($HTTP_POST_VARS["Strasse"]) == "" ||

    if ($ok) {
    $mailtext = "Die folgenden Angaben wurden getaetigt:\r\n\r\n";
    $mailtext .= "Name: " . $HTTP_POST_VARS["Name"] . "\r\n";
    mail('xxx@xxx.de', 'xxxx', $mailtext, '');
    }


    <?php
    extract($_REQUEST);
    if ($ok) {
    ?>Vielen Dank ! Ihre f&uuml;r uns wichtige Angaben wurden soeben zu uns gesendet !<br>
    <br>
    <a href="kontakt.php" target="start">Zur&uuml;ck zum Formular</a> <?
    } else {

    Genau dasselbe Skript funktioniert auf einem anderen Server des Providers einwandfrei. Entweder wurde in der Restriktion des Servers etwas verändert oder mein Skriptcode ist veraltet.
    Das Formular wird weiter unten dann per Javascript überprüft was auch einwandfrei klappt.

    Ich weiß das es nicht gerne gesehen ist das man Skriptcode postet, mir bleibt aber echt nichts anderes mehr übrig. Habe schon alles ausprobiert und versuche erst selber eine Lösung zu finden. Bin hier aber echt langsam verzweifelt. Mit einem einfachen Formular wo nur per mail() gesendet wird funktioniert das Senden.
    Könnt Ihr da weiterhelfen, oder benötigt Ihr noch Informationen um etwas dazu sagen zu können?

    Bin für jede Antwort dankbar....

    Gruß
    Andreas

  • #2
    Wie lange ist das Script schon im Einsatz und welche PHP-Version ist auf dem Server aktuell aktiv?
    1. Mit extract($_REQUEST) holst Du Dir ungefilterte Daten in Deinen Scope
    2. Warum $_REQUEST? Du solltest wissen, ob Du GET oder POST erwartest
    3. HTTP_POST_VARS steht lt. meiner Info seit PHP 5 nicht per zur Verfügung gestellt
    Basierend auf Deine Angaben vermute ich mal, dass die PHP-Version auf dem Server eine andere ist, als auf dem, wo es funktioniert.
    Dort wo es funktioniert läuft vermutlich noch ein PHP4, das Schiff solltest Du mal ganz schnell verlassen.

    Und last but not least: Lass mail() in Rohform sein und verwende PHPMailer oder SwiftMailer.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      PHP-Code:
      $ok = !(trim($HTTP_POST_VARS["Name"]) == "" ||
      trim($HTTP_POST_VARS["Strasse"]) == "" ||

      if (
      $ok) {} 
      geht da so ?

      Kommentar


      • #4
        ich habe vor längerer Zeit ein Formular erstellt
        das müsste dann aber so um 2001 gewesen sein, denn danach würde dir PHP einen Fehler anzeigen, da HTTP_POST_VARS schon als veraltet markiert wurde.

        4.1.0 Einführung von $_POST als Ablösung des bis dahin existierenden $HTTP_POST_VARS.
        Am besten neu schreiben, da dort noch andere unschöne Dinge auftauchen und konsequent auf utf-8 setzen.

        Kommentar


        • #5
          Hallo Leute, vielen Dank für Eure Antworten, und der Tipps. In der Tat das Formular ist wirklich schon sehr alt. Denke mal 5-6 Jahre läuft das schon. Also die PHP Version auf dem Server13, so benennt der Povider die, lautet 5.3.29 auf diesem läuft das Skript einwandfrei. Auf dem Server10 da ist einen neuere drauf 5.6.32 läuft das Skript nicht mehr. Also müsste alles mit PHP5 sogar noch gelaufen sein. Die haben da bestimmt auf 5.6.32 Upgedatet. Das Skript läuft mit oder ohne dem Befehl extract($_REQUEST) nicht. An dem kann es glaub ich auch nicht liegen. Ich werde es mal mit $_POST statt mit $HTTP_POST_VARS probieren und eventuell mit PHPMailer versuchen

          Kommentar


          • #6
            PHP 5.3 ist seit über 3 Jahren End of Life, das solltest du (resp. Dein Provider) wirklich nicht mehr verwenden.

            Kommentar

            Lädt...
            X