zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden PHP Kontaktformular funktioniert nicht wie es soll

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 12.09.2008, 23:18
Benutzerbild von bodoalbstadt
Rookie
neuer user
Thread-Ersteller
 
Registriert seit: 12.09.2008
Beiträge: 75
bodoalbstadt befindet sich auf einem aufstrebenden Ast
Ausrufezeichen PHP Kontaktformular funktioniert nicht wie es soll

Hallo Leute,

ich habe vor etwa einem Jahr für einen Kunden eine Homepage mit Kontaktformular erstellt, das einwandfrei funktioniert. Nun habe ich die Grundstruktur dieses Formulars genommen, um es bei einer anderen Homepage noch einmal zu verwenden, jedoch etwas abgewandelt.

Bei dem Formular soll geprüft werden, ob die Pflichtfelder ausgefüllt sind. Die bereits eingegeben Daten sollen an die nachfolgende Seite übergeben werden. Die Prüfung funktioniert einwandfrei, doch sind die Felder leider nach dem Absenden des Formulars leer, ganz gleich ob nun per POST oder GET, ob nun die Pflichtfelder ausgefüllt wurden oder nicht.

Vielleicht kann mir ja jemand helfen und mir sagen wo der Hase im Pfeffer liegt!?

Hier der Quellcode des Kontaktformulars:
Code:
  <?php
      $nameOK = true;
      $emailOK = true;
      $nachrichtOK = true;

      if (isset($_POST['submit_x']) && isset($_POST['submit_y'])) {
           
      $ausgabe = '';
      $fehler = '';

      if (isset($_POST['FormName']) && !is_array($_POST['FormName']) && $_POST['FormName'] != '') {
        $ausgabe .= 'Name : ' . htmlspecialchars($_POST['FormName']) . "\n";
      }
      else {
        $fehler .= '<span style="color:#C82725">Kein Name angegeben!</span><br />';
        $nameOK = false;
      }
      
      if (isset($_POST['FormStrasse']) && !is_array($_POST['FormStrasse']) && $_POST['FormStrasse'] != '') {
        $ausgabe .= 'Strasse : ' . htmlspecialchars($_POST['FormStrasse']) . "\n";
      }
      
      if (isset($_POST['FormOrt']) && !is_array($_POST['FormOrt']) && $_POST['FormOrt'] != '') {
        $ausgabe .= 'PLZ und Ort : ' . htmlspecialchars($_POST['FormOrt']) . "\n";
      }
      
      if (isset($_POST['FormEMail']) && !is_array($_POST['FormEMail']) && $_POST['FormEMail'] != '') {
        $ausgabe .= 'E-Mail : ' . htmlspecialchars($_POST['FormEMail']) . "\n";
      }
      else {
        $fehler .= '<span style="color:#C82725">Keine E-Mail angegeben!</span><br />';
        $emailOK = false;
      }
      
      if (isset($_POST['FormTelefon']) && !is_array($_POST['FormTelefon']) && $_POST['FormTelefon'] != '') {
        $ausgabe .= 'Telefon : ' . htmlspecialchars($_POST['FormTelefon']) . "\n";
      }
      
      if (isset($_POST['FormHandy']) && !is_array($_POST['FormHandy']) && $_POST['FormHandy'] != '') {
        $ausgabe .= 'Mobil : ' . htmlspecialchars($_POST['FormHandy']) . "\n";
      }
      
      if (isset($_POST['FormFax']) && !is_array($_POST['FormFax']) && $_POST['FormFax'] != '') {
        $ausgabe .= 'Fax : ' . htmlspecialchars($_POST['FormFax']) . "\n";
      }
      
      if (isset($_POST['FormRufname']) && !is_array($_POST['FormRufname']) && $_POST['FormRufname'] != '') {
        $ausgabe .= 'Rufname : ' . htmlspecialchars($_POST['FormRufname']) . "\n";
      }
      
      if (isset($_POST['FormTierart']) && !is_array($_POST['FormTierart']) && $_POST['FormTierart'] != '') {
        $ausgabe .= 'Tierart : ' . htmlspecialchars($_POST['FormTierart']) . "\n";
      }
      
      if (isset($_POST['FormRasse']) && !is_array($_POST['FormRasse']) && $_POST['FormRasse'] != '') {
        $ausgabe .= 'Rasse : ' . htmlspecialchars($_POST['FormRasse']) . "\n";
      }
      
      if (isset($_POST['FormGeburtsdatum']) && !is_array($_POST['FormGeburtsdatum']) && $_POST['FormGeburtsdatum'] != '') {
        $ausgabe .= 'Geburtsdatum : ' . htmlspecialchars($_POST['FormGeburtsdatum']) . "\n";
      }
      
      if (isset($_POST['FormGeschlecht']) && !is_array($_POST['FormGeschlecht']) && $_POST['FormGeschlecht'] != '') {
        $ausgabe .= 'Geschlecht : ' . htmlspecialchars($_POST['FormGeschlecht']) . "\n";
      }
      
      if (isset($_POST['FormFarbe']) && !is_array($_POST['FormFarbe']) && $_POST['FormFarbe'] != '') {
        $ausgabe .= 'Farbe : ' . htmlspecialchars($_POST['FormFarbe']) . "\n";
      }
      
      if (isset($_POST['FormMerkmale']) && !is_array($_POST['FormMerkmale']) && $_POST['FormMerkmale'] != '') {
        $ausgabe .= 'Merkmale : ' . htmlspecialchars($_POST['FormMerkmale']) . "\n";
      }
      
      if (isset($_POST['FormNachricht']) && !is_array($_POST['FormNachricht']) && $_POST['FormNachricht'] != '') {
        $ausgabe .= 'Nachricht : ' . htmlspecialchars($_POST['FormNachricht']) . "\n";
      }
      else {
        $fehler .= '<span style="color:#C82725">Keine Nachricht angegeben!</span><br />';
        $nachrichtOK = false;
      }
      
      if ($fehler == '') {
        mail('thp-schlagenhauf@web.de', 'Kontaktformular Tierheilpraxis', $ausgabe);
        echo '<b><font color="green">Wir haben Ihre Nachricht erhalten und werden diese schnellstm&ouml;glich bearbeiten.</font></b><br /><br />';
      }
      else {
        echo $fehler;
      }
    }
  ?>
	<p>
		<form method="POST" action="kontakt.php">

					<fieldset class="kontaktdaten">
						<legend>Kontaktdaten des Tierhalters</legend>
						<label for="name">Name</label><input size="30" id="name" name="FormName" type="text" value="" /><br />
						<label for="strasse">Strasse, Nr.</label><input size="30" id="strasse" name="FormStrasse" type="text" value="" /><br />
						<label for="ort">PLZ, Ort</label><input size="30" id="ort" name="FormOrt" type="text" value="" /><br />
						<label for="email">E-Mail</label><input size="30" id="email" name="FormEMail" type="text" value="" /><br />
						<label for="telefon">Telefon</label><input size="30" id="telefon" name="FormTelefon" type="text" value="" /><br />
						<label for="handy">Mobil</label><input size="30" id="handy" name="FormHandy" type="text" value="" /><br />
						<label for="fax">Fax</label><input size="30" id="fax" name="FormFax" type="text" value="" /><br />
					</fieldset>

					<fieldset class="kontaktdaten">
						<legend>Beschreibung des Tieres</legend>
						<label for="rufname">Rufname</label><input size="30" id="rufname" name="FormRufname" type="text" value="" /><br />
						<label for="tierart">Tierart</label><input size="30" id="tierart" name="FormTierart" type="text" value="" /><br />
						<label for="rasse">Rasse</label><input size="30" id="rasse" name="FormRasse" type="text" value="" /><br />
						<label for="gebdat">Geburtsdatum</label><input size="30" id="gebdat" name="FormGeburtsdatum" type="text" value="" /><br />
						<label for="geschlecht">Geschlecht</label><input size="30" id="geschlecht" name="FormGeschlecht" type="text" value="" /><br />
						<label for="farbe">Farbe</label><input size="30" id="farbe" name="FormFarbe" type="text" value="" /><br />
						<label for="merkmale">Merkmale</label><input size="30" id="merkmale" name="FormMerkmale" type="text" value="" /><br />
					</fieldset>

					<fieldset class="anfrage">
						<legend>Nachricht</legend>
						<textarea id="nachricht" name="FormNachricht" cols="45" rows="5"></textarea>
					</fieldset> 

					<fieldset class="buttons">
						<legend>Ihre Aktion</legend>
						<input type="image" name="submit" src="img/button-formular-absenden.png" alt="Formular absenden" />
						<input type="reset" value="Eingabe löschen" class="senden" name="senden" />
					</fieldset>

		</form>


Und hier der Link zu dem Kontaktformular: KONTAKTFORMULAR (hier liegt die seite vorübergehend)

Hoffentlich kann mir jemand von Euch sagen, wo das Problem liegt und mir eine Lösung nennen.


Gruß,

Bodo

Geändert von bodoalbstadt (11.12.2008 um 00:25 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 12.09.2008, 23:48
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
 
Registriert seit: 16.07.2007
Ort: Bruck an der Mur - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.786
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Abend

Nun, Du hast ja die Values auf "" gesetzt, woher sollen also die Daten kommen?
Da Du Post verwendest probiere mal dieses:
PHP-Code:
 name="FormRufname" type="text" value="<?echo $_POST['FormRufName']?>" />
Nun hast Du eines erreicht, der Inhalt der POST Variable wird IMMER angezeigt, auch bei Sendungserfolg.
Du brauchst da also einen Fallback im Erfolgsfall.
Ginge beispielsweise, wenn De im Erfolgsfall nach mail() die Seite mittels header() neu aufrufst, und hier einen get mitgibst, der dann die Erfolgsmeldung auslöst.

Gruß
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 13.09.2008, 00:00
Benutzerbild von bodoalbstadt
Rookie
neuer user
Thread-Ersteller
 
Registriert seit: 12.09.2008
Beiträge: 75
bodoalbstadt befindet sich auf einem aufstrebenden Ast
Daumen hoch

MANN!!!

Wieso ist mir das nicht eingefallen???

Ich danke Dir vielmals, Paracelsus.
Mit Zitat antworten
  #4 (permalink)  
Alt 13.09.2008, 00:01
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
 
Registriert seit: 16.07.2007
Ort: Bruck an der Mur - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.786
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

Weil Du nicht daran gedacht hast.
Ging mir auch schon so .. grade eben in einem anderen Thread.
Mit Zitat antworten
  #5 (permalink)  
Alt 13.09.2008, 01:15
Benutzerbild von bodoalbstadt
Rookie
neuer user
Thread-Ersteller
 
Registriert seit: 12.09.2008
Beiträge: 75
bodoalbstadt befindet sich auf einem aufstrebenden Ast
Standard Nächstes Problem mit Optionsfeld

Jetzt stehe ich gerade vor dem nächsten Problem. Mist aber auch.

Ich wollte nun eigentlich in dem Formular den Punkt "Geschlecht" mit zwei Optionsfeldern versehen: männlich und weiblich. Das Einfügen ist ja kein Problem. Nur leider wird der Wert hiervon nicht übegeben.

Code:
<label for="geschlecht">Geschlecht</label><input type="radio" value="männlich" name="FormGeschlecht">männlich<input type="radio" name="FormGeschlecht" value="weiblich">weiblich
Wo genau kann ich denn da was eintragen, dass der Wert übergeben wird?
Mit Zitat antworten
  #6 (permalink)  
Alt 13.09.2008, 01:50
Benutzerbild von Timo
table-layout: none;
XHTMLforum-Kenner
 
Registriert seit: 11.11.2006
Beiträge: 5.356
Timo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein LichtblickTimo ist ein Lichtblick
Standard

Hallo nach Albstadt,

erstmal der allgemeine Teil: Benutz keine Umlaute und Sonderzeichen in Feldnamen - das ist eine unnötige Fehlerquelle.

Jetzt zum Problem: Eigentlich hast du alles richtig gemacht. Zugreifen tut man - wie immer in PHP - mit $_POST['FormGeschlecht']. Um das zu verdeutlichen, hab ich ein kleines Testcase gebaut.


PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
        <title>Testcase Radio-Button und PHP</title>
        </head>

        <body>
<?php
        
if($_SERVER['REQUEST_METHOD'] == 'POST') {
                if(isset(
$_POST['FormGeschlecht'])) {
                        if(
$_POST['FormGeschlecht'] == 'maennlich') {
                                echo 
'Hallo Herr ...,';
                        } else if(
$_POST['FormGeschlecht'] == 'weiblich')  {
                                echo 
'Hallo Frau ...,';
                        } else {
                                echo 
'Hallo etwas ...,';
                        }
                }
        }
        else {
?>
        <form action="#" method="post">
                <label for="geschlecht">Geschlecht</label><br>
                <input type="radio" value="maennlich" name="FormGeschlecht">männlich<br>
                <input type="radio" value="weiblich" name="FormGeschlecht">weiblich<br>

                <input type="submit" value="abschicken" name="abschicken">
         </form>

<?php
        
}
?>
</body>
</html>
__________________
Um weitere Erklärungen eingeblendet zu bekommen, drücken Sie bitte die Tastenkombination Alt + F4
Mit Zitat antworten
  #7 (permalink)  
Alt 13.09.2008, 02:17
Benutzerbild von bodoalbstadt
Rookie
neuer user
Thread-Ersteller
 
Registriert seit: 12.09.2008
Beiträge: 75
bodoalbstadt befindet sich auf einem aufstrebenden Ast
Standard

Also, Timo, ich danke Dir für die Hilfe, doch mit "übergeben" meinte ich eigentlich, dass die Auswahl des Optionsfeldes auch nach dem Absenden des Formulars noch ausgewählt bleiben soll. Doch momentan ist es leider so, dass die Auswahl verschwunden ist. Hat also jemand vergessen, bspw. seinen Namen oder die Mail-Adresse anzugeben, so sind zwar soweit alle Daten in den Feldern noch vorhanden, aber das Optionsfeld muss erneut ausgewählt werden. Achtet man dann nicht darauf und es fällt einem nicht auf, ist hier also keine Auswahl mehr. Irgendwie also schon blöd. Ich hoffe, Du weißt was ich meine. Ich hab jetzt, zu so später Stunde, bestimmt nen ganz schönen Mist zusammen geschrieben.

Geändert von bodoalbstadt (13.09.2008 um 02:29 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 13.09.2008, 02:37
Benutzerbild von Curtains
(Schlafen||Programmieren)
XHTMLforum-Mitglied
 
Registriert seit: 27.08.2008
Beiträge: 206
Curtains befindet sich auf einem aufstrebenden Ast
Standard

Hallo bodoalbstadt,

so könnte es gehen:

PHP-Code:
<input type="radio" value="maennlich" name="FormGeschlecht" <?php echo $_POST['FormGeschlecht'] == 'maennlich' 'checked' ''?> />
Mit Zitat antworten
  #9 (permalink)  
Alt 13.09.2008, 11:17
Benutzerbild von bodoalbstadt
Rookie
neuer user
Thread-Ersteller
 
Registriert seit: 12.09.2008
Beiträge: 75
bodoalbstadt befindet sich auf einem aufstrebenden Ast
Daumen hoch

Danke Curtains für die schnelle Hilfe!!! Klappt prima.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 13.09.2008, 13:56
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.930
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Bei XHTML muss es eher checked="checked" heißen
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php script funktioniert nicht... Hilfe... Argon007 (X)HTML 8 27.06.2010 02:20
alt + PHP funktioniert nicht |SONY| Serveradministration und serverseitige Scripte 7 02.04.2010 18:00
Dateien auslagern - Include und PHP ArcVieh Serveradministration und serverseitige Scripte 17 27.03.2008 19:09
PHP lernen? Grafiken später hinzufügen? chilla Offtopic 0 21.07.2007 15:54


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:00 Uhr.