mailscript funktioniert nicht im IE 6

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

  • mailscript funktioniert nicht im IE 6

    Hallo,

    erst einmal einen schönen Gruß an alle ... bin neu hier !
    Und natürlich habe ich ein Problem, dass ich kurz erläutern möchte:
    Momentan erstelle ich eine eigene Webseite und habe ein email-Script geschrieben, dass im Firefox problemlos funktioniert. Im IE6 dagegen kann ich eingeben und absenden wie ich möchte, dass Formular zeigt keine Fehler (z.B. bei keiner oder falscher Eingabe --> Regis lassen grüßen) an, sondern wird nur neu geladen und verliert den schon geschriebenen Inhalt (dieser wird von den $_POST-Variablen übernommen und in den Textfeld-value zurückgeschrieben ...). Ich kann es mir nicht erklären ... zumal es im Firefox problemlos funktioniert.
    - Webserver xampp (php5.2.8)
    - Entwicklungsumgebung Eclipse php
    - Quellcode reiche ich nach, wenn nötig

    Ach ja ... e-Mails versenden funzt auch nicht (habe das TUT hier schon durch und alle Konfigurationen vorgenommen --> php.ini auf sendmail "gucken" lassen und dort Adresse+Benutzername+Passwort eingegeben --> alles für gmx.de). Das ist aber erst mal Nebensache ...!

    Würde mich über eine fundierte Antwort bzw. Lösung freuen.

    Gruß php_fussel
    Zuletzt geändert von php_fussel; 15.01.2009, 17:22.

  • #2
    Würde mich über eine fundierte Antwort bzw. Lösung freuen.
    und wir uns über relevanten code . btw: ggf. muss man bei gmx mit dem parameter -f arbeiten.

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

    Kommentar


    • #3
      Natürlich!

      PHP-Code:
      <?php
      $contactform
      "";
      $titletext "Wenn Sie irgendwelche Anmerkungen, Fragen oder Vorschl&auml;ge haben,<br>
                    so scheuen Sie sich bitte nicht, mich zu kontaktieren.<br><br> - Danke -
      "
      ;

      //######## Prüfen, ob der submit-Button gedrückt wurde #############

      if(isset($_POST["submit"]))
      {
          
      //Werte der Eingabe - $_POST-Variablen - übernehmen
          
      $name $_POST["name"];
          
      $email$_POST["email"];
          
      $text $_POST["message"];
          
      $fehler=0;
          
          
      //############ Prüfen der Daten #################################
          
          //Prüfmuster (regulärer Ausdruck) für die Prüfung des Namens und der E-Mail-Adresse
          
      $reg_name="^[a-z\ßäüöÄÜÖ\-\ ]{1,}$";
          
      $reg_email="^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$";
          
      //  $semail = "/[a-z0-9_-]+(\.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4}
      |museum)/i";
          
          //Prüfen des Namen:
          if (!eregi(
      $reg_name,$name))
          {
              
      $fontopen2 = '<font color="#CC3300">';
              
      $fontclose2'</font>';
              
      $titletext "Bitte f&uuml;llen Sie die fehlenden Eintr&auml;ge aus.<br><br>
       - Danke -"
      ;
              
      $fehler=1;
          }
          else 
          {
              
      $fontopen2 '';
              
      $fontclose2'';            
          }
          
          
      //Prüfen der E-Mail-Adresse:
          
      if (!eregi($reg_email,$email))
          {
              
      $fontopen1 '<font color="#CC3300">';
              
      $fontclose1'</font>';            
              
      $titletext "Bitte f&uuml;llen Sie die fehlenden 
      Eintr&auml;ge aus.<br><br> - Danke -"
      ;
              
      $fehler=1;
          }
          else 
          {
              
      $fontopen1 '';
              
      $fontclose1'';            
          }
          
          
          
      //Prüfen der Nachricht
          
      if($text == "")
          {
              
      $fontopen3 '<font color="#CC3300">';
              
      $fontclose3'</font>';
              
      $titletext "Bitte f&uuml;llen Sie die fehlenden 
      Eintr&auml;ge aus.<br><br> - Danke -"
      ;
              
      $fehler=1;
          }
          else 
          {
              
      $fontopen3 '';
              
      $fontclose3'';            
          }
          
          
      //Zusammenstellen der Mail
          
      $betreff="Kontaktformular";
          
          
      $body "Text:\n $text";
          
          
      $header="From: $name<$email>";
          
          
      $sendmailpara "-f ".$email;
          
          if (
      $fehler != 1
              {
                  if(
      mail("meineadresse@gmx.de",$betreff,$body,$header,
      $sendmailpara))
       
                  {                    
                      
      $titletext "<p class='info'>-Ihre Mitteilung wurde versendet-<br><br>
      <a href=''>- OK -</a></p>"
      ;
                      
      $name "";
                      
      $email"";
                      
      $text "";                
                  }
                  else 
                  {            
                      
      $titletext"<p class='info'>- Es ist ein Fehler aufgetreten -<br><br>
      <a href=''>- OK -</a></p>"
      ;
                      
      $name "";
                      
      $email"";
                      
      $text "";
                  }            
              }
      }

      $contactform .= "
              <!-- CONTACT -->
              <div id='contactform'>
                      <fieldset>
                          <legend>Kontaktformular</legend>
                          
                          <p class='info'>
      $titletext</p>

                          <form name='jmcontact' action='index1.php?nav=kontakt' method='post'>
                              <dl>
                                <dt>
                                  <label for=inputName>
      $fontopen2 
      name 
      $fontclose2</label>
                                    <dd>        
                                      <input id='inputName' 
      name='name' value='
      $name' type='text' tabindex='1' 
      class='textinput' onFocus=\"this.style.border='1px solid 
      #6699CC';\" onBlur=\"this.style.border='1px solid #cccccc';\">
                                <dt>
              
                                  <label for=inputEmail>
      $fontopen1 
      Email 
      $fontclose1</label>
                                    <dd>
                                      <input id='inputEmail' 
      name='email' value='
      $email' type='text' tabindex='2' 
      class='textinput' onFocus=\"this.style.border='1px solid 
      #6699CC';\" onBlur=\"this.style.border='1px solid #cccccc';\">
                                <dt>
                                  <label for=textareaMessage>
      $fontopen3 Nachricht 
      $fontclose3</label>

                                    <dd>
                                      <textarea id='textareaMessage' 
      name='message' tabindex='3' onFocus=\"this.style.border='1px 
      solid #6699CC';\" onBlur=\"this.style.border='1px solid 
      #cccccc';\">
      $text</textarea>
                              </dl>
                              <div id='imageSubmit'>
                                <input name='submit' type='image' 
      src='images/button__versenden.gif' value='send'>
                              </div>
                            </form>
              
                      </fieldset>    
              </div>
              <!-- CONTACT ENDE -->
      "
      ;
      ?>
      ############## Quellcode ENDE #################

      --------------------- php.ini ----------------------------------
      PHP-Code:
      ...
      [
      mail function]
      ; For 
      Win32 only.
      ;
      SMTP localhost
      ;smtp_port 25

      ; For Win32 only.
      sendmail_from = [email]meinemail@gmx.de[/email]

      ; For 
      Unix only.  You may supply arguments as well (default: "sendmail -t -i").
      sendmail_path "C:\\xampp\\sendmail\\sendmail.exe -t"   

      Force the addition of the specified parameters to be passed as extra parameters
      to the sendmail binaryThese parameters will always replace the value of
      the 5th parameter to mail(), even in safe mode.
      ;
      mail.force_extra_parameters 
      ----------------------- sendmail ---------------------------------
      PHP-Code:
      ...
      smtp_servermail.gmx.net

      smtp port (normally 25)

      smtp_port=25

      the default domain for this server will be read from the registry

      ...

      uncomment to enable logging

      error_logfile
      =error.log

      create debug log as debug.log (defaults to same directory as sendmail.exe)
      uncomment to enable debugging

      debug_logfile
      =debug.log

      ; if your smtp server requires authenticationmodify the following two lines

      auth_username
      = [email]meinemail@gmx.de[/email]
      auth_passwordmeinpasswort

      ; if your smtp server uses pop3 before smtp authenticationmodify the 
      following three lines

      ;pop3_server=
      ;
      pop3_username=
      ;
      pop3_password=

      ... 
      ------------------- ERROR LOGS -----------------------------------------
      PHP-Code:
      crash -->
      ...
      exception class   : EIdSMTPReplyError
      exception message 
      Sender address does not belong to logged in user {mp007}.

      main thread ($fbc):

      ...

      error -->
      ...
      09.01.15 17:40:30 Sender address does not belong to logged in user {mp007}<EOL>
      ... 
      Ich hoffe das reicht an Infos!

      Gruß php_fussel
      Zuletzt geändert von php_fussel; 16.01.2009, 15:34.

      Kommentar


      • #4
        Kleine Anmerkung!
        Da meine Webseite durch eine template-Klasse erzeugt wird, die einzelne html/ php-Seiten einliest <br>
        und vorhandene Marker in der Strukturseite durch diese (--> Strings) ersetzt, muss im Formular oben <br>
        PHP-Code:
        $contactform 
        durch
        PHP-Code:
        echo 
        ersetzt werden, wenn man es testen möchte.

        Gruß php_fussel

        Kommentar


        • #5
          die Fehlermeldung im error log sagt doch alles aus, du versuchst eine mail über einen account zu schicken und benutzt dabei eine dem account nicht zugewiesene email adresse
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Ja, die Fehlermeldung verstehe ich auch ... nur ist die Adresse richtig ... und das Passwort auch ... sonst könnte ich hier nicht posten !

            Kommentar


            • #7
              Guten Morgen,

              bin jetzt schon etwas weiter ... vielleicht hat jetzt jemand einen Tip!

              Meine 'sendme.php' bekommt beim IE (und auch beim Opera
              ) keine $_POST-Variablen mit ... wie der FF das trotzdem
              veranstaltet, ist mir nun ein Rätsel (was mir einiges an
              Kopfzerbrechen gekostet hat).

              In meiner index.php wird die (o.a.) kontakt.php eingebunden ...

              PHP-Code:
              if($nav == "kontakt"){ //Menü-Button Kontakt
                  
              require("php/sendme.php");    // 'binde' sendme.php ein
                  
              $basis->ersetze("content",$contactform); //ersetze Marker ...
              }

              Auszug der template-Klasse
              ...
              function 
              ersetze($alt,$neu)
                  {
                      
              $this->content str_replace("{".$alt."}",$neu$this->content);
              ... 
              ... und der Inhalt aus der durch 'require' verfügbaren Variable
              '$contactform' in die 'basis'(.html) durch ersetzen des Markers
              content eingepflegt. Bei .html-Seiten (nur Text einlesen) funzt das
              wunderbar und alle Teilbereiche der Seite können einzeln
              bearbeitet werden. Sobald aber $_POST-Variablen 'ins Spiel'
              kommen sieht die Sache anders aus, da ich immer nur den Inhalt
              der $contactform vorliegen habe und die jeweilige .php-Seite
              anscheinend nicht mehr durchlaufen wird, obwohl sie ja
              eingebunden ist (nur beim Mozilla eben).

              Beim Betätigen des Absende-Buttons muss ich es irgendwie schaffen, das meine 'sendme.php' die $_POST-Variablen
              bekommt ... oder $_SESSION-Variablen, die dann vorhanden sind.
              Fragen über Fragen !

              p.s.: So ein "ändern"-Button ist schon was Feines ...
              Zuletzt geändert von php_fussel; 16.01.2009, 10:06.

              Kommentar


              • #8
                Du hast das Script geschrieben und kannst es nicht debuggen ?

                Oder hast Du es nicht geschrieben und willst den Ersteller des Scripts nicht belästigen ?

                Der mail-Versand findet nicht im Browser statt
                und hat daher nichts mit dem Browser zu tun !

                Der Ansatz, daß etwas mit der Session nicht stimmt
                scheint mir vielversprechend (Sessioncookies),
                aber bei so wenig sinnvollen Infos ist Hilfe kaum möglich.

                Noch zwei Anmerkungen:
                - eregi ist veraltet, benutz preg_match.
                - nimm den phpmailer statt der PHP-Funktion "mail",
                dann löst sich Dein Problem möglicherweise wie von selbst.

                Kommentar


                • #9
                  Original geschrieben von php_fussel
                  [B]Guten Morgen,

                  bin jetzt schon etwas weiter ... vielleicht hat jetzt jemand einen Tip!

                  Meine 'sendme.php' bekommt beim IE (und auch beim Opera
                  ) keine $_POST-Variablen mit ... wie der FF das trotzdem
                  veranstaltet, ist mir nun ein Rätsel (was mir einiges an
                  Kopfzerbrechen gekostet hat)[b]
                  Such dir 'nen HTTP-Proxy, der mitschneidet, was die Clients an den Server senden.
                  Außerdem könnte ein Blick in den erzeugten HTML-Quelltext nicht schaden:
                  Ein Browser sendet üblicherweise nur dann eine POST-Anfrage, wenn das entsprechende
                  Formular mit dem Attribut method="post" ausgestattet wurde.

                  Wenn das bei Opera und IE anders aussieht, könnte das daran liegen, dass dein HTML
                  "browserspezifisch" erzeugt wurde -- sprich, du hast eine dämliche Browserweiche drin, die möglicherweise den User-Agent auf "MSIE" oder was ähnlich Unsinniges testet und dann die HTML-Ausgabe entsprechend umbaut.


                  Beim Betätigen des Absende-Buttons muss ich es irgendwie schaffen, das meine 'sendme.php' die $_POST-Variablen
                  bekommt ... oder $_SESSION-Variablen, die dann vorhanden sind.
                  Fragen über Fragen !
                  Die $_POST-Variablen kommen als POST-Request vom Client (s.o.). Wenn der keine sendet, steht auch nichts im $_POST-Array.

                  Mit $SESSION hat das nichts zu tun -- dessen Inhalt kommt irgendwo vom Server (Datenbank, Datei). Wenn deine Variablen vom letzten Aufruf verschwunden sind, dann bist du entweder in einer neuen Session, oder es gibt gar keine Session.
                  Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                  Kommentar


                  • #10
                    Wow, wow, wow,

                    Du hast das Script geschrieben und kannst es nicht debuggen ? Oder hast Du es nicht geschrieben und willst den Ersteller des Scripts nicht belästigen ?
                    ... nö, habe ich nicht ... sondern kurz Online rausgesucht, ANEPASST
                    und KONTROLLIERT und eingebunden. Entschuldige, dass ich mir
                    Mühe spare, sowas selber zu coden (was aber ohne Probleme
                    schnell zu bewerkstelligen ist ... ich hoffe, dass glaubst Du mir ).

                    eregi ist veraltet, benutz preg_match.
                    ... das scheint mir ok, da war ich schon drauf und dran a la

                    PHP-Code:
                    ...
                    if(
                    preg_match($regemail$email) == 1) echo "email ist 
                    ok!"
                    ; else echo "email ist nicht ok!";
                    ... 
                    ... aber warum, wenn es funktioniert. Es handelt sich nur um
                    ein kurzes Mail-Script (etwas abgesichert gegen Injektionen) und
                    fertig!

                    Was denn ...
                    nimm den phpmailer statt der PHP-Funktion "mail",
                    ... angeht muss ich mal nachschauen ... ist mir neu!

                    Und noch mal: Es funktioniert, aber nur im FF!!!!
                    Auch folgende Ansätze zum Aufruf des Scriptes im action=""-Bereich
                    brachten keine Änderung:

                    PHP-Code:
                    --> action="<?php echo $_SERVER['sendme.php']; ?>"  --> 
                    action="<?php echo $_SERVER[' PHP_SELF']; ?>" /schlechtere 
                    Variante, sollte man sich sparen!!! --> oder direkter Aufruf etc.
                    Ich habe jetzt den Aufruf des Scriptes auch mal in einem
                    eigenständigen popup-Fenster ausführen lassen ... mit dem selben
                    Ergebnis!
                    Vielleicht bin ich auch nur etwas überarbeitet und seh den Wald vor
                    Bäumen nicht.



                    Außerdem könnte ein Blick in den erzeugten
                    HTML-Quelltext nicht schaden: Ein Browser sendet üblicherweise
                    nur dann eine POST-Anfrage, wenn das entsprechende Formular
                    mit dem Attribut method="post" ausgestattet wurde.

                    ... wenn ich das lese, dann glaube ich, ich bin hier im falschen
                    Forum! Ich bezeichne mich garantiert nicht als Programmier-Crack, aber "beschäftige" mich nundoch schon einige Zeit (Jahre) mit
                    der Materie ( SCJP, OCA, ...) und gucke auch schon mal im
                    HTML-Quelltext nach, was denn da so steht ... wenns mal nicht
                    funzt!
                    Na ja, jedenfalls trotzdem Danke!

                    Gruß php_fussel

                    Zuletzt geändert von php_fussel; 16.01.2009, 15:32.

                    Kommentar


                    • #11
                      Ob FF oder IE ist dem PHP völlig egal!!


                      Aber du verwendest einen ImageButton!
                      Ohne den Quelltext richtig analysiert zu haben (die scrollerei macht mich wahnsinnig), vermute ich mal dass du den Button auswerten möchtest. Das machst du bestimmt falsch!!

                      Der FF (Gecko) liefert bei einem ImageButton fälschlicher weise ein Value!
                      Alle andern Browser nicht! Die anderen nur Koordinaten.


                      PHP-Code:
                      if(isset($_POST["submit"])) // <<--- Falsch! tuts nur im FF
                      if(isset($_POST["submit_x"])) // <<-- tuts mit allen 
                      PS: Halte dich an die Regeln und brich bitte deinen Quellcode um!
                      Zuletzt geändert von combie; 16.01.2009, 13:33.
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Ich bedanke mich herzlich für diesen Beitrag!

                        Das war´s, die anderen beiden Browser kommen mit dem
                        image-Button nicht zurecht!

                        Ob FF oder IE ist dem PHP völlig egal!!
                        ... das war mir klar !

                        Nochmals vielen, vielen Dank!

                        Gruß php_fussel

                        Kommentar


                        • #13
                          Das war´s, die anderen beiden Browser kommen mit dem image-Button nicht zurecht!
                          Falsch!!!
                          1. Der FF backt sich eine Extrawurst!
                          2. du meinst sicher das andere Dutzend Browser
                          Wir werden alle sterben

                          Kommentar


                          • #14
                            Original geschrieben von php_fussel
                            Das war´s, die anderen beiden Browser kommen mit dem
                            image-Button nicht zurecht!
                            Ja, soooo kann man das ...

                            Original geschrieben von combie Der FF (Gecko) liefert bei einem ImageButton fälschlicher weise ein Value!
                            Alle andern Browser nicht! Die anderen nur Koordinaten.[/B]
                            ... auch interpretieren. ;-)
                            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                            Kommentar


                            • #15
                              ... nun, da es beim FF die ganze Zeit funktioniert hat, war er
                              halt mein "rettender Strohhalm" und dadurch in meiner
                              Sichtweise statusmäßig etwas gestiegen.

                              Sollte man nicht für möglich halten, das 2 Zeichen ('_x') einem den Schlaf rauben können ...

                              Kommentar

                              Lädt...
                              X