was ist da nicht in Ordnung ?

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

  • was ist da nicht in Ordnung ?

    Das hier gezeigte FORMULAR-Script funktionierte bis PHP Version 4 aber bei Version 4.3.4 funktioniert es nicht mehr.

    Irgendetwas mit den Variablen, oder so ????

    Wer kann helfen ?

    Gruß

    tschio
    -------------------------------------------------------------------------------------------

    <?


    /******************************/
    /* FormMail.pl-Ersatz mit PHP */
    /******************************/

    /* Dieses Skript ersetzt das unsichere Formmail.pl */
    /* Wenn Sie nicht wissen, wie dieses Skript in */
    /* Ihr Kundenverzeichnis gelangt, bitten wir Sie, */
    /* sich mit Ihrem Provider in Verbindung zu setzen.*/
    /* Er wird Sie über die Missbräuche von zuvor ein- */
    /* gesetzten Skript (formmail.pl) informieren. */


    /* SPAM-Check */
    $spam = false;
    $host = strtolower($HTTP_HOST);
    $referer = strtolower($HTTP_REFERER);
    if (substr($host,0,4) == "www.") $host = substr($host,-(strlen($host)-4));

    if ($HTTP_SERVER_VARS["REQUEST_METHOD"] == "GET") $vars = $HTTP_GET_VARS;
    if ($HTTP_SERVER_VARS["REQUEST_METHOD"] == "POST") $vars = $HTTP_POST_VARS;

    reset($vars);

    while(list($id,$value) = each($vars))
    {
    if ($id != "redirect" and $id !="recipient" and $id != "missing_fields_redirect" and $id !="subject" and $id != "required")
    {
    $varlist .= "$id = $value\n";
    }

    if ($id == "HTTP_REFERER") $spam = true;
    }

    if ($referer == "" or !strstr($referer,$host) or $spam)
    {
    echo "No abuse for spamming allowed!";
    exit;
    }

    if (isset($required))
    {
    $must = explode(",",$required);

    reset($must);
    $notfilled = false;
    while(list($id,$value)=each($must))
    {
    if (${$value}=="") $notfilled = true;
    }

    if ($notfilled)
    {
    if (isset($missing_fields_redirect))
    {
    header("Location: $missing_fields_redirect");
    exit;
    }
    else
    {
    echo "Some of the required fields are not filled. Please go back and insert appropriate data";
    exit;
    }
    }
    }

    if (!isset($recipient)) $recipient = "info@$host";
    if (!strstr($email,"@") or !strstr($email,".")) $email = "formular@$host";
    if (!isset($subject)) $subject = "Kontaktformular $host";



    mail($recipient,$subject,$varlist,"From: $email");

    if (isset($redirect))
    {
    header("Location: $redirect");
    exit;
    }

    echo "Thank you for your submission. We will contact you as soon as possible";

    ?>
    --------------------------------------------------------------------------------------------

  • #2
    poste den code bitte in leserlichen [PHP] - Tags des Forums!

    Kommentar


    • #3
      register_globals = On läufts auch unter PHP 4.3
      register_globals = Off, dann läuft das ab PHP 4.1 nicht

      gruss
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Original geschrieben von Kropff
        register_globals = Off, dann läuft das ab PHP 4.1 nicht
        und was du deshalb an deinem script ändern musst, steht hier: http://www.php.net/manual/de/languag...predefined.php
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          register_globals = on ??? He ???

          Hallo,

          wem kann ich meinen PHP-Code (Formmailer) schicken, der zwar unter PHP 4.0 läuft, und mit 4.3.4 nicht mehr ?

          Habe schon in verschiedenen Informationen gelesen, aber ich blicke das nicht.

          Wer kann mir beim Umbau des Formulars behilflich sein ?

          Vielen, Vielen Dank

          Gruß

          Léon Mark

          Kommentar


          • #6
            Re: register_globals = on ??? He ???

            mach für sowas bitte keinen neuen thread auf!
            *zusammenführ*


            und womit hast du denn noch probleme?

            du musst die bisherigen zugriffe auf formularwerte über $feldname durch $_GET['feldname'] bzw. $_POST['feldname'] ersetzen (je nach im formular verwendeter methode).
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              sorry

              am besten lerne ich das, wenn man mir mal das anhand meines PHP-Formulars zeigt.

              Kommentar


              • #8
                Bitte helft mir

                Wie läuft dieses PHP-Script unter PHP Version 4.3.4 ???
                Was muss ich da umbauen ?
                Bin ein Anfänger.

                Danke

                Gruß

                Léon



                PHP-Code:
                <?


                     /******************************/
                     /* FormMail.pl-Ersatz mit PHP */
                     /******************************/
                     
                     /* Dieses Skript ersetzt das unsichere Formmail.pl */
                     /* Wenn Sie nicht wissen, wie dieses Skript in     */
                     /* Ihr Kundenverzeichnis gelangt, bitten wir Sie,  */
                     /* sich mit Ihrem Provider in Verbindung zu setzen.*/
                     /* Er wird Sie über die Missbräuche von zuvor ein- */
                     /* gesetzten Skript (formmail.pl) informieren.     */
                     
                     
                     /* SPAM-Check */
                     $spam     = false;
                     $host     = strtolower($HTTP_HOST);
                     $referer  = strtolower($HTTP_REFERER);
                     if (substr($host,0,4) == "www.") $host = substr($host,-(strlen($host)-4));
                     
                     if ($HTTP_SERVER_VARS["REQUEST_METHOD"] == "GET")  $vars = $HTTP_GET_VARS;
                     if ($HTTP_SERVER_VARS["REQUEST_METHOD"] == "POST") $vars = $HTTP_POST_VARS;
                          
                     reset($vars);
                     
                     while(list($id,$value) = each($vars))
                       {
                        if ($id != "redirect" and $id !="recipient" and $id != "missing_fields_redirect" and $id !="subject" and $id != "required")
                          {
                           $varlist .= "$id  =   $value\n";
                          }
                        
                        if ($id == "HTTP_REFERER") $spam = true;
                       }
                       
                     if ($referer == "" or !strstr($referer,$host) or $spam)
                       {
                        echo "No abuse for spamming allowed!";
                        exit;
                       }
                       
                     if (isset($required))
                       {
                        $must = explode(",",$required);
                        
                        reset($must);
                        $notfilled = false;
                        while(list($id,$value)=each($must))
                          {
                           if (${$value}=="") $notfilled = true;
                          }
                          
                        if ($notfilled)
                          {
                           if (isset($missing_fields_redirect))
                             {
                              header("Location: $missing_fields_redirect");
                              exit;
                             }
                           else
                             {
                              echo "Some of the required fields are not filled. Please go back and insert appropriate data";
                              exit;
                             }
                          }
                       }   

                     if (!isset($recipient)) $recipient = "info@$host";
                     if (!strstr($email,"@") or !strstr($email,".")) $email = "formular@$host";
                     if (!isset($subject))   $subject = "Kontaktformular $host";
                        

                       
                     mail($recipient,$subject,$varlist,"From: $email");
                     
                     if (isset($redirect)) 
                       {
                        header("Location: $redirect");
                        exit;
                       }
                       
                     echo "Thank you for your submission. We will contact you as soon as possible";
                        
                ?>

                Kommentar


                • #9
                  Re: sorry

                  Original geschrieben von tschio
                  am besten lerne ich das, wenn man mir mal das anhand meines PHP-Formulars zeigt.
                  nix ist umsonst,

                  drei möglichkeiten hast du:

                  1. du suchst so lange bis du einen dummen gefunden hast.
                  2. lernst es selber erstmal, was nicht schwer ist.
                  3. du gibst ein Auftrag auf, gegen Bezahlung
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    @tschio
                    dein(e) posting sind jetzt zum 2. mal zusammengeführt ... UNTERLASSE DEINE CROSSPOSTINGS
                    Kissolino.com

                    Kommentar

                    Lädt...
                    X