Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler bei Formularübertragung

Einklappen

Neue Werbung 2019

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

  • Fehler bei Formularübertragung

    Hallo, ich bin kompletter Neueinsteiger was PHP betrifft.

    Ich habe folgendes Formular im Einsatz:

    HTML-Code:
    <!doctype html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Anmeldeformular</title>
    <style type="text/css">
    #form1 table tr td #Mitglied {
        text-align: center;
    }
    .Name {
        width: 250px;
    }
    .Ort {
        width: 350px;
    }
    .Land {
        width: 400px;
    }
    #form1 div table tr td {
        text-align: center;
        font-weight: bold;
        font-size: ;
    }
    body {
        background-image: url(../bilder/2011_hintergrund_1.png);
        background-size: cover;
        height: 100%; width: 100%;    
        }
    .Größe {
        font-size: xx-large;
        text-decoration: underline;
    }
    </style>
    <link href="../SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" />
    <script  src="../SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
    </head>
    
    <body>
     <form action="Anwendungen/myFormMail.php" method="post" enctype="multipart/form-data" name="form1" id="form1" onreset="return deleteForm();" onsubmit="return submitForm();" style="page-break-inside:avoid">
    
      <p>&nbsp; </p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <div align="center">
        <table width="813" border="1">
          <tr>
            <td height="45" colspan="3" class="Größe">Antragsformular</td>
          </tr>
          <tr>
            <td colspan="3">&nbsp;</td>
          </tr>
          <tr>
            <td width="266"><div align="center">Aufnahme ab (Datum/Jahr)</div></td>
            <td width="275"><div align="center">Außerordentliches Mitglied</div></td>
            <td width="250"><div align="center">Alter</div></td>
          </tr>
          <tr>
            <td><div align="center">
              <span id="sprytextfield1">
              <input type="text" name="Aufnahme " id="Aufnahme " required/>
            <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span><span class="textfieldInvalidFormatMsg">Ungültiges Format.</span></span></div></td>
            <td><div align="center"><span id="sprycheckbox1">
              <input type="checkbox" name="Mitglied2" id="Mitglied" />
              <label for="Mitglied"></label>
            </span></div></td><td><input type="radio" name="Alter" value="über 14" id="Alter_0" />
            über 14 Jahre
            <input type="radio" name="Alter" value="unter 14" id="Alter_1" />
            unter 14 Jahre</td>
          </tr>
          <tr>
            <td><div align="center">Nachname, Vorname</div></td>
            <td><div align="center">Geburtsdatum</div></td>
            <td><div align="center">Geburtsort</div></td>
          </tr>
          <tr>
            <td><div align="center"><span id="sprytextfield2">
              <input name="Name" type="text" class="Name" id="Name" required/>
              <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span></span></div>
            </td>
            <td><div align="center"><span id="sprytextfield3">
            <input type="text" name="Geburtsdatum" id="Geburtsdatum" required/>
            <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span><span class="textfieldInvalidFormatMsg">Ungültiges Format.</span></span></div></td>
            <td><div align="center"><span id="sprytextfield4">
              <input name="Geburtsort" type="text" class="Name" id="Geburtsort" required/>
            <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span></span></div></td>
          </tr>
          <tr>
            <td><div align="center">Straße, Hausnummer</div></td>
            <td colspan="2"><div align="center">PLZ, Ort</div> 
            <div align="center"></div></td>
          </tr>
          <tr>
            <td><div align="center"><span id="sprytextfield5">
              <input name="Adresse" type="text" class="Name" id="Adresse" required/>
            <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span></span></div></td>
            <td colspan="2"><div align="center"><span id="sprytextfield6"><input name="Ort" type="text" required="required" class="Ort" id="Ort"><span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span></span></div>
              <div align="center"></div></td>
          </tr>
          <tr>
            <td><div align="center">Staatsangehörigkeit</div></td>
            <td><div align="center">Beruf</div></td>
            <td><div align="center">Telefonnumer</div></td>
          </tr>
          <tr>
            <td><div align="center"><span id="sprytextfield7">
              <input type="text" name="Staat" id="Staat" required/>
            <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span></span></div></td>
            <td><div align="center"><span id="sprytextfield8">
              <input name="Beruf" type="text" class="Name" id="Beruf" required/>
            <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span></span></div></td>
            <td><div align="center">
              <label for="Telefonnummer"></label>
              <input name="Telefonnummer" type="text" id="Telefonnummer" />
            </div></td><td><span id="sprytextfield5"><span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span><span class="textfieldInvalidFormatMsg">Ungültiges Format.</span></span></td></tr></td>
          </tr>
          <tr>
            <td><div align="center">E-Mail Adresse</div></td>
            <td><label for="KFZ Kennzeichen">
              KFZ Kennzeichen
              </label><div align="center"></div>
            </label></td>
            <td><label for="Handynummer">Handynummer</label></td>
          </tr>
          <tr>
            <td><div align="center"><span id="sprytextfield3">
            <input type="text" name="Mail" id="Mail" />
            </span></div></td>
            <td><div align="center">
              <input type="text" name="KFZ Kennzeichen" id="KFZ Kennzeichen" />
            </div></td>
            <td><span id="sprytextfield5">
            <input name="Handynummer" type="text" class="Name" id="Handynummer" />
            </span></td>
          </tr>
          <tr>
            <td colspan="2">1. Ich habe Erfahrung als Sportfischer.</td>
            <td><p>
              <label>
                <input type="radio" name="Erfahrungen" value="ja" id="Erfahrungen_0" required/>
                ja</label>
              <label>
                <input type="radio" name="Erfahrungen" value="nein" id="Erfahrungen_1" required/>
                nein</label>
              <br />
            </p></td>
          </tr>
          <tr>
            <td colspan="2">2. Ich bin wegen Jagd- oder Fischereivergehen vorbestraft.</td>
            <td><p>
              <label>
                <input type="radio" name="Vergehen" value="ja" id="Vergehen_0" required/>
                ja</label>
              <label>
                <input type="radio" name="Vergehen" value="nein" id="Vergehen_1" required/>
                nein</label>
              <br />
            </p></td>
          </tr>
          <tr>
            <td colspan="2">3. Ich habe die Fischereiprüfung bestanden (Kopie der Karte/Erlagschein liegen bei)</td>
            <td><p>
              <label>
                <input type="radio" name="Pr&uuml;fung" value="ja" id="Prüfung_0" required/>
                ja</label>
              <label>
                <input type="radio" name="Pr&uuml;fung" value="nein" id="Prüfung_1" required/>
                nein</label>
              <br />
            </p></td>
          </tr>
          <tr>
            <td colspan="2">4. Ich wurde aus einem anderen Verein ausgeschlossen.</td>
            <td><p>
              <label>
                <input type="radio" name="Verein" value="ja" id="Verein_0" required/>
                ja</label>
              <label>
                <input type="radio" name="Verein" value="nein" id="Verein_1" required/>
                nein</label>
              <br />
            </p></td>
          </tr>
          <tr>
            <td colspan="2">5. Ich war schon Mitglied im Fischereiverein Klein Meiseldorf.</td>
            <td><p>
              <label>
                <input type="radio" name="Mitglied" value="ja" id="Mitglied_0" required/>
                ja</label>
              <label>
                <input type="radio" name="Mitglied" value="nein" id="Mitglied_1" required/>
                nein</label>
              <br />
            </p></td>
          </tr>
          <tr>
            <td colspan="2">6. Ich war Mitglied im Angelverein (Name)</td>
            <td><label for="Name Verein"></label>
            <input name="Name Verein" type="text" class="Ort" id="Name Verein" /></td>
          </tr>
          <tr>
            <td colspan="3">Mir ist bekannt, dass unwahre Angaben zum Vereinsausschluss bzw. zur Ablehnung des Antrages führen.</td>
          </tr>
          <tr>
            <td>Datenverwendung</td>
            <td><p style="font-size:12px">Ich bin mit der Verwendung und Speicherung meiner Daten einverstanden (die Weitergabe an Dritte ist untersagt). Näheres ist der Datenschutzverordnung der Homepage zu entnehmen.</p></td>
            <td><p>
              <label>
                <input type="radio" name="Datenschutz" value="ja" id="Datenschutz_0" required="required"/>
                ja</label>
                <input type="radio" name="Datenschutz" value="nein" id="Datenschutz_1" required="required" />
                nein</label>
              <br />
            </p></td>
          </tr>
          <tr>
            <td>Datum</td>
            <td colspan="2">Bei Minderjährigen ist die Zustimmung eines Erziehungsberechtigten erforderlich.</td>
          </tr>
          <tr>
            <td><label for="Datum"></label>
              <span id="sprytextfield10">
              <input type="text" name="Datum" id="Datum" required/>
            <span class="textfieldRequiredMsg">Es muss ein Wert angegeben werden.</span><span class="textfieldInvalidFormatMsg">Ungültiges Format.</span></span></td>
            <td><label for="Ablehnung">Elternteil stimmt nicht zu</label>
            <input type="checkbox" name="Ablehnung" id="Ablehnung" /></td>
            <td><label for="Zustimmung">Elterrnteil stimmt zu</label>
            <input type="checkbox" name="Zustimmung" id="Zustimmung" /></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td colspan="2">Jahresbeitrag außerordentliches Mitglied</td>
            <td>Euro 525,00</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>Datei (jpg, gif, png, pdf, docx,  txt)</td>
            <td colspan="2"><label for="Fischerkarte">Fischerkarte/Zahlschein (max 5 MB)</label>
              <input type="file" name="Fischerkarte" id="Fischerkarte" multiple required/></td>
          </tr>
          <tr>
            <td>Kommentar/Anmerkungen</td>
            <td colspan="2"><label for="Kommentar"></label>
            <textarea name="Kommentar" cols="70" rows="8" id="Kommentar"></textarea></td>
          </tr>
          <tr>
            <td><input type="submit" name="button" id="button" value="Senden" /></td>
            <td><input type="button" name="Drucken" id="Drucken" value="Drucken" onClick="print()"/></td>
            <td><input type="reset" name="button2" id="button2" value="Zurücksetzen" /></td>
          </tr>
        </table>
      </div>
      <p>&nbsp;</p>
      <p><br />
      </p>
    </form>
    <script type="text/javascript">
    function deleteForm() {
        return confirm('Formular zurücksetzen?');
    }
    
    function submitForm() {
            return confirm('Formular senden?');
        }
    var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "date", {validateOn:["change"], format:"dd.mm.yyyy"});
    var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "none", {validateOn:["change"]});
    var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3", "date", {format:"dd.mm.yyyy", validateOn:["change"]});
    var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4", "none", {validateOn:["change"]});
    var sprytextfield5 = new Spry.Widget.ValidationTextField("sprytextfield5", "none", {validateOn:["change"]});
    var sprytextfield6 = new Spry.Widget.ValidationTextField("sprytextfield6", "none", {validateOn:["change"]});
    var sprytextfield7 = new Spry.Widget.ValidationTextField("sprytextfield7", "none", {validateOn:["change"]});
    var sprytextfield8 = new Spry.Widget.ValidationTextField("sprytextfield8", "none", {validateOn:["change"]});
    var sprytextfield10 = new Spry.Widget.ValidationTextField("sprytextfield10", "date", {format:"dd.mm.yyyy", validateOn:["change"]});
    </script>
    </body>
    </html>
    Dazu habe ich dieses Script in Verwendung, das die Verarbeitung des Formulars übernimmt. Ich poste hier nur den relevanten Teil des Script

    PHP-Code:
    <?php
    /**
     * myFormMail.php generated from http://www.dreamweaver-buch.de
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the BSD License.
     * (Es wird keine Haftung fuer Fehler uebernommen)
     *
     * To contact the author write to {@link mailto:hussein@morsye.de Hussein Morsy}
     * The Script is generated from
     * {@link http://www.dreamweaver-buch.de}
     *
     * @author Hussein Morsy <hussein@morsy.de>
     * @version 1.11  31.05.2014
     * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
     * @copyright 2014 Hussein Morsy
     */

    /* Generierte Eintraege. Koeenen auch von "Hand" geaendert werden */
    $recipients        'spider67@aon.at';
    $sender            'spider67@aon.at';
    $subject           'Anmeldung ';
    $introtext         'Sie haben folgende Anmeldung erhalten:';
    $redirect          'danke.html';
    $max_filesize      '5000';
    $upload_extensions 'jpg, gif, png, pdf, docx, doc, txt';
    $max_files         '2';

    /* Formularfelder einlesen */
    $inputs = &$_POST;

    /* E-Mail-Text generieren */
    $body=$introtext "\r\n";
    if(
    count($inputs)) {
      foreach(
    $inputs as $key=>$val) {
        if(
    is_array($val))
          
    $val implode(", ",$val);
        
    $body .= "$key$val\n";
      }
      
    $mail =  new phpmailer();
      
    $mail->Subject $subject;
      
    $mail->From    $sender;
      
    $mail->FromName "";
      
    $mail->addReplyTo($inputs['email'], "$inputs[vorname] $inputs[nachname] $inputs[name]");
      
    $mail->Body $body;

      
    //eine oder mehrere Adressen (jeweils durch Komma getrennt) werden hinzugefuegt
      
    $recipientList explode(',',$recipients);
      foreach(
    $recipientList as $recipient) {
        
    //Leerzeichen am Anfang und am ende entfernen
        
    $recipient trim($recipient);
        
    $mail->AddAddress($recipient);
      }

      
    //Attachments hinzufuegen
      
    $count_uploaded 0;
      foreach(
    $_FILES as $name=>$data) {
        if(!empty(
    $data['tmp_name'])) {
          if(
    $count_uploaded $max_files) {
            
    $count_uploaded++;
            
    $file $data['tmp_name'];
            
    $filesize round($data['size'] / 10242);
            if(
    $filesize <= $max_filesize) {
              
    // alle Punkte falls vorhanden entfernen
              
    $upload_extensions str_replace('.','',$upload_extensions);
              
    $extensions preg_split(',',$upload_extensions);
              
    $ext_found false;
              foreach(
    $extensions as $ext) {
                
    $ext trim($ext);
                if ( 
    strrchr($data['name'],'.') == ".$ext") {
                  
    $mail->AddAttachment($file,"$name.$ext");
                  
    $ext_found=true;
                  break;
                }
              }
              if(!
    $ext_found) {
                
    $body .= "\r\n Datei $data[name] (Feld $name) wurde wegen nicht zugelassener Dateiendung nicht uebertragen. Erlaubt waren nur $upload_extensions \r\n";
              }
            }
            else {
              
    $body .= "\r\n Datei $data[name] (Feld $name) wurde wegen ueberschreitung der Dateigroesse $filesize nicht uebertragen Erlaubt waren nur $max_filesize\r\n";
            }

          }
          else {
            
    $body.="\r\nAnzahl ($max_files) erlaubter Dateiuploads ueberschritten.\r\n";
          }
        }
        else {
          
    # Es liegt keine Datei vor.
          #outputError( "Datei existiert nicht: " , $data['tmp_name']);
          #die();
        
    }
      }
      
    $mail->Body $body;
      
    //senden der EMail
      
    if($mail->Send()) {
        
    header("Location: $redirect");
      }else {
        
    outputError("Aufgrund eines Fehlers beim Senden konnten die Formulareingaben nicht per E-Mail &uuml;bertragen werden.<br>Error-Message:" $mail->ErrorInfo);
      }
    }else {
      
    outputError("Das Formular wurde nicht abgeschickt, da das Formular nicht ausgef&uuml;llt wurde.");
    }


    function 
    outputError($message) {
      
    $html = <<<HTML_EOT
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
      <head>
        <meta http-equiv="content-type" content="text/html; charset=windows-1252" />
        <title>Fehler</title>
      </head>
      <body>
        <h3> Fehler </h3>
        <p>
    $message </p>
      </body>
      </html>
    HTML_EOT;
      print 
    $html;
    }
    Nunmehr habe ich das Problem, dass nach dem Versenden des Formulars zwar alle Daten korrekt übertragen werden, ich jedoch eine Fehlermeldung bezüglich der übertragenen Datei (z.B. IMG 5629.JPG) erhalte, die wie folgt lautet:

    Datei IMG5629.JPG wurde wegen nicht zugelassener Dateiendung nicht übertragen, erlaubt waren nur jpg, gif, png, pdf, docx, doc, txt.

    Nunmehr hat mir im Einsteigerforum ein hilfreicher Kollege folgende Funktion dazu empfohlen, die diesen Fehler ausmerzen sollte:

    PHP-Code:
    <?php
      
    if (isset($_FILES['filename']))
      {
         
    $upload_extensions 'jpg, jpeg, gif, png, pdf, docx, doc, txt';

         
    $info pathinfo($_FILES['filename']['name']);

         
    $extension strtolower($info['extension']);

         if (
    strpos($upload_extensions$extension) !== false)
          echo 
    "<p>Gültige Datei</p>";
         else
          echo 
    "<p>Keine gültige Datei, Ist: $extension, Erlaubt: $upload_extensions</p>";
      }
     
    ?>
    Da ich jedoch wie gesagt kompletter Neueinsteiger bin, weiß ich nicht wo ich diese Funktion in meinem Script einfügen muss, bzw. ob diese Funktion auch komplett mit meiner HTML Datei und meinen Variablen im Script kompatibel ist, oder ich hier bei dem bestehenden Upload input Feld im HTML was ändern muss und auch bei den Variablen im bestehenden Script, sodass alles zusammenpasst.

    Kann mir hier jemand von Euch helfen?

    Weiters hätte ich gerne gewusst, was ich ändern muss, damit ich auch mehr als eine Datei hochladen kann.

    Ich danke vorab für die Hilfe.

  • #2
    Deine Gegenleistung sieht wie aus?
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Na ja, ein paar Euros wäre mir das sicher wert, ich weiß ja nicht, welcher Aufwand das ist, ich denke der sollte aber überschaubar sein, oder?

      Kommentar


      • #4
        Wie sieht es aus? Kann mir jemand gegen ein paar Euros helfen?

        Kommentar


        • #5
          Thema erledigt.

          Kommentar

          Lädt...
          X