1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

PHP Formular

  • Johannes_K
  • 10. April 2007 um 22:07
  • Johannes_K
    Youngster
    Beiträge
    7
    • 10. April 2007 um 22:07
    • #1

    Hallo,
    habe gerade ein PHP Formular gebastelt, jedoch funktioniert es nicht so wie ich es möchte.

    Zitat

    <?php
    $gesendet = $_POST['gesendet'];
    $name = $_POST['name'];
    $mail = $_POST['mail'];
    $betreff = $_POST['betreff'];
    $hp = $_POST['hp'];
    $nachricht = $_POST['nachricht'];

    if( $name == "") {
    header("location:f1.html");
    }
    else {
    if( $betreff == ""){
    header("location:f2.html");
    }
    else {
    if( $email == "") {
    header("location:f3.html");
    }
    else {
    if( $nachricht == "") {
    header("location:f4.html");
    }
    else {
    $an ="...";
    $text="Hallo,\nSie haben eine neue Nachricht von $name erhalten:\n
    ==========================\n\n
    Daten des Abesnders:\n\n
    Name: $name\n
    E-Mail: $email\n
    Homepage: $homepage\n
    Nachricht:\n$nachricht
    \n\n==========================";
    mail($an,$betreff,$text,"From: ".$email);
    header("location:send.html");
    }
    }
    }
    }
    ?>

    Alles anzeigen

    Das Formular ist zur Verständnis glaube ich unwichtig, oder? Wenn nicht sagt einfach bescheid, dann poste ich es noch.

    Wo der Fehler steckt ist mir nicht bewusst. Er ruft immer die erste Fehlerseite auf .. auch wenn ich einen Namen angegeben habe.

    Was ist falsch?

    Viele Grüße

  • Sebian
    Gast
    • 10. April 2007 um 22:49
    • #2

    mhm deine php auswertung sieht ganz gut aus, evt. könnte man die eingabeüberprüfungen mit isset($name) ect. eleganter lösen.

    auch die ganzen errorseiten sind meinermeinung nicht wirklich gut. wenn jetzt email und name nicht passen kommt nur eine fehlermeldung.
    Die ganzen Weiterleitungen find ich auch nicht so toll :D

    dann glaub ich das der code ordentlicher ist, wenn nach den locations noch ein exit kommt ;)

    ich glaub dein Fehler liegt im html teil des formulars... könntest den vllt. auch noch schicken....

    hier mal dein code aufs wesentliche korrigiert ;)

    PHP
    <?php
    $gesendet = $_POST['gesendet'];
    $name = $_POST['name'];
    $mail = $_POST['mail'];
    $betreff = $_POST['betreff'];
    $hp = $_POST['hp'];
    $nachricht = $_POST['nachricht'];
    
    
    if ($name == "") {
    	header("Location: f1.html");
    	exit();
    }
    else if ($betreff == "") {
    	header("Location: f2.html");
    	exit();
    }
    else if ($email == "") {
    	header("Location: f3.html");
    	exit();
    }
    else if ($nachricht == "") {
    	header("Location: f4.html");
    	exit();
    }
    else {
    	$an ="...";
    	$text="Hallo,\nSie haben eine neue Nachricht von $name erhalten:\n
    	==========================\n\n
    	Daten des Abesnders:\n\n
    	Name: $name\n
    	E-Mail: $email\n
    	Homepage: $homepage\n
    	Nachricht:\n$nachricht
    	\n\n==========================";
    	mail($an,$betreff,$text,"From: ".$email);
    	header("Location: send.html");
    	exit();
    }
    ?>
    Alles anzeigen


    lg sebian

  • Johannes_K
    Youngster
    Beiträge
    7
    • 11. April 2007 um 00:27
    • #3

    Hallo, danke für die antwort. Ich habe jetzt deine Version ausprobiert, jedoch kommt das gleiche Ergebniss raus.

    Hier ist das Formular:

    Zitat


    <form method="post" action="send.php">
    <label for="name" accesskey="1">Name:
    </label>
    <input type="text" id="name" />

    <label for="mail" accesskey="2">E-Mail:
    </label>
    <input type="text" id="mail" />

    <label for="homepage" accesskey="3">Homepage:
    </label>
    <input type="text" id="homepage" />

    <label for="betreff" accesskey="3">Betreff:
    </label>
    <input type="text" id="betreff" />

    Nachricht:

    <textarea cols="50" rows="10" name="nachricht"></textarea>


    <input type="submit" name="gesendet" value="Absenden" /><input type="reset" value="Zurücksetzen" style="margin-left: 5px;" />
    </form>

    Alles anzeigen


    Hoffe das kann dir weiterhelfen.

    Viele Grüße

  • Sebian
    Gast
    • 11. April 2007 um 08:14
    • #4

    hast die name tags bei den text-inputs vergessen. Die id tags braucht man aber trotzdem für das label zeug oder sonstige JS sachen...


    hier die korriegierte version:

    Code
    <form method="post" action="send.php">
    <label for="name" accesskey="1">Name:
    </label>
    <input type="text" id="name" name="name" />
    
    
    <label for="mail" accesskey="2">E-Mail:
    </label>
    <input type="text" id="mail" name="email" />
    
    
    <label for="homepage" accesskey="3">Homepage:
    </label>
    <input type="text" id="homepage" name="homepage" />
    
    
    <label for="betreff" accesskey="3">Betreff:
    </label>
    <input type="text" id="betreff" name="betreff" />
    
    
    Nachricht:
    
    
    <textarea cols="50" rows="10" name="nachricht"></textarea>
    
    
    
    
    <input type="submit" name="gesendet" value="Absenden" /><input type="reset" value="Zurücksetzen" />
    </form>
    Alles anzeigen
  • Dragon-D
    Meister(in)
    Beiträge
    382
    • 11. April 2007 um 08:21
    • #5

    <input type="text" id="mail" />

    deine inputs haben garkeine namen... die id brauchst du nur, um mit javascript zu arbeiten....
    müsste also so aussehen:
    <input type="text" id="mail" name="mail" />
    ;)

    //blub....... zu langsam gewesen :)

  • Johannes_K
    Youngster
    Beiträge
    7
    • 11. April 2007 um 10:28
    • #6

    Hallo,
    danke für eure antworten :)

    Habe jetzt alles korrigiert, jedoch funktioniert es immer noch nicht.
    Hier die "aktuelle" Version:

    Code
    <form method="post" action="send.php">
    <label for="name" accesskey="1">Name: <span class="red">*</span>
    </label>
    <input type="text" id="name" name="name" />
    
    
    <label for="mail" accesskey="2">E-Mail: <span class="red">*</span>
    </label>
    <input type="text" id="mail" name="mail" />
    
    
    <label for="homepage" accesskey="3">Homepage:
    </label>
    <input type="text" id="homepage" name="homepage" />
    
    
    <label for="betreff" accesskey="3">Betreff: <span class="red">*</span>
    </label>
    <input type="text" id="betreff" name="betreff" />
    
    
    Nachricht: <span class="red">*</span>
    
    
    <textarea cols="50" rows="10" name="nachricht"></textarea>
    
    
    
    
    <input type="submit" name="gesendet" value="Absenden" /><input type="reset" value="Zurücksetzen" style="margin-left: 5px;" />
    </form>
    Alles anzeigen
    PHP
    <?php
    $gesendet = $_POST['gesendet'];
    $name = $_POST['name'];
    $email = $_POST['email'];
    $betreff = $_POST['betreff'];
    $homepage = $_POST['homepage'];
    $nachricht = $_POST['nachricht'];
    
    
    if ($name == "") {
       header("Location: f_name.html");
       exit();
    }
    else if ($betreff == "") {
       header("Location: f_mail.html");
       exit();
    }
    else if ($email == "") {
       header("Location: f_betreff.html");
       exit();
    }
    else if ($nachricht == "") {
       header("Location: f_nachr.html");
       exit();
    }
    else {
       $an ="...";
       $text="Hallo,\nSie haben eine neue Nachricht von $name erhalten:\n
       ==========================\n\n
       Daten des Abesnders:\n\n
       Name: $name\n
       E-Mail: $email\n
       Homepage: $homepage\n
       Nachricht:\n$nachricht
       \n\n==========================";
       mail($an,$betreff,$text,"From: ".$email);
       header("Location: send.html");
       exit();
    }
    ?>
    Alles anzeigen

    Egal welches Feld ich frei lasse, e ruft immer nur die erste Fehler Seite auf.

    Viele Grüße

  • Gast
    • 11. April 2007 um 13:29
    • #7

    statt $email = $_POST['email'];
    musst du $email = $_POST['mail']; nehmen!! oder halt im html teil anpassen...

    dann gings bei mir!

Tags

  • homepage
  • html
  • email
  • text
  • post
  • form
  • input
  • version
  • code
  • php
  • javascript
  • tags
  • lösen
  • nachricht
  • e-mail
  • mail
  • gesendet
  • js
  • isset
  • $_post
  • eleganter
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern