Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Kontaktformular/ Feldnamen werden nicht korrekt übergeben“

silence12121

Grünschnabel

Hallo, ich habe ein Problem mit meinem Kontaktformular.

Im Prinzip rufe ich die Daten aus dem Formular ab, und als Fehlermeldung bekomme ich zurück, dass die Variablen nicht definiert sind, bzw. leer. Ich habe die Methode schon von Post auf Get geändert und die Daten überprüft. Sprich was der Browser an Script übergibt.

Ich hab die Namen mehrmals überprüft, und ich finde den Fehler leider nicht. Vielleicht könnte mir mal jemand auf die Sprünge helfen?

Hier das PHP-Script:
PHP:
<?php
# Zuerst die Abfrage, ob an der URL "?senden" hängt
 
if (isset($_GET['senden']))
{
    foreach($_POST AS $key=>$value) ${$key}=trim($value);

# Dann werden die Daten auf Vollständigkeit geprüft:
    if (($name!='') && ($email!='') && ($nachricht!='')) 
        {
 
        # Dann werden Die Daten für die mail() Funktion in Variablen geschrieben
        $an = "mailadress@domain.de";
        $von = "Kontaktformular <$an>";
        $betreff = "Nachricht von der Homepage";
        $header = "From: $von\r\n";
        $header .= "Subject: $betreff\r\n";
        $header .= "Content-Type: text/html\r\n";
        $header .= "MIME-Version: 1.0\r\n";
        $msg = "Jemand hat dir eine Nachricht von der Homepage geschickt:
 
        Name: $name
        Email: $email
        ---- Nachricht: ----
        $nachricht
        --------------------";
 
        # Falls es beim Senden der Email einen Fehler gibt, wird dies dem Besucher signalisiert
            if (mail($an, $betreff, $msg, $header))
            {
            $rueckgabe = '<span style="color: #008800;">Vielen Dank für Ihre Nachricht. Wir werden uns in kürze bei Ihnen melden.</span><br />';
             }
            else
            {
            $rueckgabe = '<span style="color: #cc0000;">Beim Senden der Email ist ein Fehler aufgetreten.</span><br />';
            }
    } 
    else 
    {
    $rueckgabe = '<span style="color: #cc0000;">Bitte füllen Sie alle Felder, welche mit * markiert sind, aus.';
    }
}
else
{
$rueckgabe = '';
}
 
echo $rueckgabe;
 
?>
und hier der HTML-Code:

HTML:
<form action="<?php echo $_SERVER['PHP_SELF'];?>?senden" method="get" enctype="text/plain">
  <table class="kontakt" width="200" border="1">
      <tr>
         <td>Name: *</td>
         <td><input type="text" name="name" id="name"></td>
     </tr>
     <tr>
         <td>Mail: *</td>
          <td><input type="text" name="email" id="email"></td>
     </tr>
      <tr>
          <td colspan="2">Nachricht: *</td>
      </tr>
       <tr>
          <td colspan="2"><textarea name="nachricht" id="nachricht" cols="45" rows="5"></textarea></td>
      </tr>
      <tr>
          <td><input type="submit" name="senden" id="senden" value="senden"></td>
         <td><input type="reset" name="loeschen" id="loeschen" value="Löschen"></td>
      </tr>
</table>
Ich würd echt nicht nachfragen, wenn ich nicht müsste.

Ich hab sogar schon versucht mir die Feldnamen auszugeben, aber irgendwie hat das auch nicht funktioniert.
PHP:
foreach($_POST as $key=>$value)  echo 'key: "', $key, '" value: "', $value, '"';
Ich bin dankbar für jede Hilfe. Danke schön!!!
Lieben Gruß
Michi
 

Duddle

Posting-Frequenz: 14µHz

AW: Kontaktformular/ Feldnamen werden nicht korrekt übergeben

Naja, wenn du method="get" nutzt, kommen die Daten eben per $_GET an. Das überprüfst du ja auch zumindest bei $_GET['senden']. Mischen kannst du das so nicht, du musst dich für eines entscheiden.


Duddle
 

mwxx

Nicht mehr ganz neu hier

AW: Kontaktformular/ Feldnamen werden nicht korrekt übergeben

Ich würde eher mit method='post' (Sicherheitsaspekt!) arbeiten, aber das nur nebenbei.
Ein Formularfeld mit dem Namen 'feldname' steht im Empfangsskript in der Form $_POST['feldname'] zur Verfügung, was spricht also dagegen, diese dort auch weiterzuverwenden ?!
Ich vermute, dass ${$key}=trim($value); hier falsch arbeitet. Lass Dir doch mal in einer Schleife die erzeugten Variablen ausgeben...
 

Ernasina

Nicht mehr ganz neu hier

AW: Kontaktformular/ Feldnamen werden nicht korrekt übergeben

Versuche es mal mit folgendem:
PHP:
<?php

# Zuerst die Abfrage, ob an der URL "?senden" hängt
 
if (!empty($_POST['name']))
{
    $name = $_POST['name'];
    $email = $_POST['email'];
    $nachricht = $_POST['nachricht'];

# Dann werden die Daten auf Vollständigkeit geprüft:
    if (($name!='') && ($email!='') && ($nachricht!='')) 
        {
 
        # Dann werden Die Daten für die mail() Funktion in Variablen geschrieben
        $an = "mailadress@domain.de";
        $von = "Kontaktformular <$an>";
        $betreff = "Nachricht von der Homepage";
        $header = "From: $von\r\n";
        $header .= "Subject: $betreff\r\n";
        $header .= "Content-Type: text/html\r\n";
        $header .= "MIME-Version: 1.0\r\n";
        $msg = "Jemand hat dir eine Nachricht von der Homepage geschickt:
 
        Name: $name
        Email: $email
        ---- Nachricht: ----
        $nachricht
        --------------------";
 
        # Falls es beim Senden der Email einen Fehler gibt, wird dies dem Besucher signalisiert
            if (mail($an, $betreff, $msg, $header))
            {
            $rueckgabe = '<span style="color: #008800;">Vielen Dank für Ihre Nachricht. Wir werden uns in kürze bei Ihnen melden.</span><br />';
             }
            else
            {
            $rueckgabe = '<span style="color: #cc0000;">Beim Senden der Email ist ein Fehler aufgetreten.</span><br />';
            }
    } 
    else 
    {
    $rueckgabe = '<span style="color: #cc0000;">Bitte füllen Sie alle Felder, welche mit * markiert sind, aus.';
    }
}
else
{
$rueckgabe = '';
}
 
echo $rueckgabe;


?>


HTML:
<form target="_self" method="POST">
  <table class="kontakt" width="200" border="1">
      <tr>
         <td>Name: *</td>
         <td><input type="text" name="name" id="name" /></td>
     </tr>
     <tr>
         <td>Mail: *</td>
          <td><input type="text" name="email" id="email" /></td>
     </tr>
      <tr>
          <td colspan="2">Nachricht: *</td>
      </tr>
       <tr>
          <td colspan="2"><textarea name="nachricht" id="nachricht" cols="45" rows="5"></textarea></td>
      </tr>
      <tr>
          <td><input type="submit" name="senden" id="senden" value="senden" /></td>
         <td><input type="reset" name="loeschen" id="loeschen" value="Löschen" /></td>
      </tr>
</table>
 

silence12121

Grünschnabel

AW: Kontaktformular/ Feldnamen werden nicht korrekt übergeben

Hallo, erst einmal danke für die Antworten, ich werde sie gleich einmal durcharbeiten.

Dass mit $get hab ich nur gemacht, damit ich sehe, was er übermittelt, hatte ich wohl vergessen wieder rauszunehmen. Ich hab am Anfang mit $Post gearbeitet, bloß weil er mir immer wieder erklärt hat, dass meine Variablen nicht existieren, wollte ich wissen was er übermittelt.

Ich werd dann mal. Danke schön.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.155
Beiträge
2.581.854
Mitglieder
67.221
Neuestes Mitglied
opaklaus
Oben