Antworten auf deine Fragen:
Neues Thema erstellen

Hilfe bei Formular

Foos

Member

Hey,
mit php kenne ich mich nicht so richtig aus. Habe jetzt ein Bestellformular auf meiner Homepage erstellt. Das ganze funktioniert eigentlich auch schon fast. Allerdings erhalte ich keine Mail, so wie beispielsweise im Kontaktformular!

Ich zeige euch mal die Codes. Vielleicht kennt sich ja jemand aus:

Also das wäre der Code, wo man Daten etc. eingibt
PHP:
<form action="ordered.php" method="post">
   <table width="564" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <th width="76" scope="col"><p align="left" class="text">&nbsp;</p>    </th>
    <th width="488" scope="col"><p align="left" class="text"><span class="links"><font color="#000000">THE FALL FROM GRACE [EP] <font color="#666666">&nbsp;<strong>EUR  5,00 &euro;</strong></font></font></span></p>
      <p align="left" class="text"><br />
      </p>
      <p align="left" class="text"><span class="links"><font color="#000000"><strong>Name:</strong></font> <font color="#000000">&nbsp;</font></span>
     
        <input name="Name" size="15" type="text" />
          <strong>&nbsp;</strong><span class="links"><font color="#000000"><strong>Vorname:</strong></font> <font color="#000000">&nbsp;</font></span>
          <input name="Vorname" size="15" type="text" id="Vorname" />
      </p>
      <p align="left" class="text"><strong><font color="#000000">Stra&szlig;e:&nbsp;
            <input name="Stra&szlig;e" size="20" type="text" id="Stra&szlig;e" />
        Haus-Nr.:
  <input name="Email4" type="text" size="3" maxlength="5" />
      </font></strong></p>
      <p align="left" class="text"><strong><font color="#000000">&nbsp;PLZ:  &nbsp;&nbsp;&nbsp;
        <input name="PLZ" type="text" id="PLZ" size="5" maxlength="5" />
        Wohnort:</font></strong> <strong><font color="#000000">
  <input name="Ort" size="15" type="text" id="Ort" />
</font></strong></p>
      <p align="left" class="text"><strong><font color="#000000">&nbsp;E-Mail:
        <input name="PLZ2" type="text" id="PLZ2" size="37" />
      </font></strong></p>
      <p align="left" class="links"><strong><font color="#000000">&nbsp;Anzahl: </font></strong>
        <select name="auswahl" id="auswahl" onchange="window.open(this.value,'_self')">
            <option selected="selected">1</option>
            <option>2</option>
            <option>3</option>
            <option>4</option>
            <option>5</option>
          </select>
      </p>
      <p align="left" class="text">
        <input name="Send" type="submit" value="Bestellen" />
        </td>
      </p></th>
  </tr>
</table>
...und hier kommt man dann hin, wenn man auf "Bestellen" geklickt hat!:

PHP:
><?php

if( empty($_POST['Name']) || empty($_POST['Nachricht']) || empty($_POST['Email']) ) // Hier wird überprüft ob alle benötigten felder angegeben wurden( name, nachricht und email)
{
echo " Sie haben nicht alle Felder ausgefüllt!!! "; // fehlermeldung falls sie nicht ausgefüllt wurden.
}
else // wenn doch geht es hier weiter
{
$message = addslashes($_POST['Nachricht']); // die funktion addslashes bewirkt, kurz gesagt, das dein script vor bösartigem text geschützt wird.
$email ="info@eonfly.de"; // Hier kommt deine email adresse rein, zu bedenken ist das die anführungszeichen gesetzt bleiben.
$name = addslashes($_POST['Name']);
$betreff = "Sie haben eine Nachricht von ".$name." ";

$senden = @mail($email , $betreff, $message); // hier wird die email an deine email adresse gesendet.
if($senden) // hier wird überprüft ob die email erfolgreich versendet wurde
echo ""; // text falls gesendet
else
echo " Es ist ein Fehler beim versenden der E-Mail aufgetreten!"; // text falls fehler beim senden aufgetreten sind

}
?></div>
das ganze wäre auch online zu "bewundern" falls ich codeausschnitte vergessen habe.
 

soapy

Noch nicht viel geschrieben

AW: Hilfe bei Formular

1. Unterstützt dein Server die mail()-Funktion?
Mach mal des @ vor dem mail(...) weg und schau ob ne Fehlermeldung kommt.
Später kannst du es ja wieder hinmachen.

2. Die Email wird immer an "info@eonfly.de" gesendet, nicht an die eingegebene Email. Ich weiß nicht, wie das gewollt ist.

3. Ist zwar optional, aber vielleicht schöner:

PHP:
$senden = @mail($email , $betreff, $message); // hier wird die email an deine email adresse gesendet.
if(!$senden) // hier wird überprüft ob die email erfolgreich versendet wurde
echo "Es ist ein Fehler beim versenden der E-Mail aufgetreten!"; // text falls fehler beim senden aufgetreten sind

Dann könntest du dir den else-Teil sparen.
 

Foos

Member

AW: Hilfe bei Formular

also es soll immer an info@eonfly gehen!
so funktioniert es bei dem kontaktformular auf der selben seite auch.

am besten wäre, wenn alle felder pflichtfelder wären . geht das so einfach?
 
K

kroeatschge

Guest

AW: Hilfe bei Formular

Ich denke du musst bei der Mailfunktion einen weiteren Parameter mitgeben.
Auf manchen Servern ist eingestellt das Mails nur rausgehen, wenn auch der Absender mitgegeben wird.
Versuch mal etwa so:
PHP:
$absender = "from:info@eonfly.de";
$senden = @mail($email , $betreff, $message, $absender);
 

Foos

Member

AW: Hilfe bei Formular

also ich checks net ^^

ich will einfach ne mail bekommen, wenn man auf absenden klickt !?! bitte helft mir
 
K

kroeatschge

Guest

AW: Hilfe bei Formular

ok. ich habs jetzt nochmal versucht. Das Problem ist, du kommst garnicht bis dorthin wo das Mail versendet wird.

Als erstes solltest du die Formularfelder umbenennen.
Sonderzeichen in Feldbezeichnungen NIEMALS verwenden! Am besten du verwendest auch immer nur Kleinschreibung.

alt:
HTML:
<input name="Stra&szlig;e" size="20" type="text" id="Stra&szlig;e" />
neu:
HTML:
<input name="strasse" size="20" type="text" id="strasse" />
hier soll zwar die Hausnummer eingegeben werden, das Feld heisst aber "Email4":
alt:
HTML:
Haus-Nr.:
  <input name="Email4" type="text" size="3" maxlength="5" />
neu:
HTML:
Haus-Nr.:
  <input name="hausnr" type="text" size="3" maxlength="5" />
hier Soll die Email eingegeben werden, das Feld heisst aber "PLZ2":

alt:
HTML:
E-Mail:
        <input name="PLZ2" type="text" id="PLZ2" size="37" />
neu:
HTML:
E-Mail:
        <input name="absender" type="text" id="absender" size="37" />
soviel zur orderep.php.

Nun zur Folgeseite wo das Mail verschickt wird.
Da wo du prüfst ob alles eingegeben wurde MUSST du auf die Felder abfragen die du zuvor auch verwendet hast.

Im Moment fragst du z.b auf das Feld "Nachricht" ab, das gibts aber nirgends!
PHP:
empty($_POST['Nachricht'])
Folglich wird das auch NIE gefüllt sein und NIE ein Mail gesendet.

Also änderst du die Prüfung so ab:
alt:
PHP:
if( empty($_POST['Name']) || empty($_POST['Nachricht']) || empty($_POST['Email']) )
neu (mit den kleingeschriebenen Feldnamen, die genau gleich heissen wie auf der Formularseite):
PHP:
if( empty($_POST['name']) || empty($_POST['strasse']) || empty($_POST['absender']) )
wenn du weitere Felder prüfen möchtest hängst du die einfach da mit rein (mach aber zuerst nur die
3 Felder, wenn das geht kannst die weiteren dazu hängen):
PHP:
if( empty($_POST['name']) || empty($_POST['strasse']) || empty($_POST['absender']) || empty($_POST['ort'])
 )

Ich hoffe du kommst jetzt ein Stück weiter, falls nicht gib nochmal bescheid.
 

Foos

Member

AW: Hilfe bei Formular

vielen dank schon einmal für deine ausführliche hiilfe.

hab das jetzt so geändert.
allerdings kommt jetzt nach dem klick auf "bestellen" nur noch eine weiße browserseite?!!
 
K

kroeatschge

Guest

AW: Hilfe bei Formular

ok. das formular schaut jetzt gut aus.

die weisse Seite kommt sicher von einem Syntaxfehler in der ordered.php

Schau nach ob du irgendwo eine Klammer ) oder ein ; vergessen hast.
Jede ( braucht ein )

kannst auch den code nochmal posten, dann schau ich wo es ist.
 

Foos

Member

AW: Hilfe bei Formular

also ich hab nix gefunden !

PHP:
<?php

if( empty($_POST['name']) || empty($_POST['strasse']) || empty($_POST['absender']) )) // Hier wird überprüft ob alle benötigten felder angegeben wurden( name, nachricht und email)
{
echo " Sie haben nicht alle Felder ausgefüllt!!! "; // fehlermeldung falls sie nicht ausgefüllt wurden.
}
else // wenn doch geht es hier weiter
{
$message = addslashes($_POST['Nachricht']); // die funktion addslashes bewirkt, kurz gesagt, das dein script vor bösartigem text geschützt wird.
$email ="info@eonfly.de"; // Hier kommt deine email adresse rein, zu bedenken ist das die anführungszeichen gesetzt bleiben.
$name = addslashes($_POST['Name']);
$betreff = "Sie haben eine Nachricht von ".$name." ";

$senden = @mail($email , $betreff, $message); // hier wird die email an deine email adresse gesendet.
if($senden) // hier wird überprüft ob die email erfolgreich versendet wurde
echo ""; // text falls gesendet
else
echo " Es ist ein Fehler beim versenden der E-Mail aufgetreten!"; // text falls fehler beim senden aufgetreten sind

}
?></div>
 
K

kroeatschge

Guest

AW: Hilfe bei Formular

am Schluss der zweiten Zeile machst du 3 Klammern zu.
PHP:
... empty($_POST['absender']) ))

das ist eine zuviel! so sollte es gehen:
PHP:
... empty($_POST['absender']) )
 

Foos

Member

AW: Hilfe bei Formular

sau coooool! funktioniert super! danke.

aber es hat sich jetzt ein noch viel schlimmeres problem ergeben ^^ :

die email - die ich jetzt bekomme - ist leer. kein text, gar nix
 

masterb44hz

Lernender

AW: Hilfe bei Formular

Was sollte den die ordered.php (also die nach dem klick auf bestellen oder was auch immer) ausgeben? Weil in dem Script sehe ich für den Fall eines erfolgreichen versendens keine Ausgabe.

Ebenfalls sind dort glaube ich ein paar Syntaxfehler:
Code:
[COLOR=#000000][COLOR=#0000bb]$senden [/COLOR][COLOR=#007700]= @[/COLOR][COLOR=#0000bb]mail[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$email [/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$betreff[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]$message[/COLOR][COLOR=#007700]); [/COLOR][COLOR=#ff8000]// hier wird die email an deine email adresse gesendet.
[/COLOR][COLOR=#007700]if([/COLOR][COLOR=#0000bb]$senden[/COLOR][COLOR=#007700]) { [COLOR=DarkSlateGray]<- hier fehlte eine Klammer[/COLOR][/COLOR][COLOR=#ff8000]// hier wird überprüft ob die email erfolgreich versendet wurde
[/COLOR][COLOR=#007700]echo [/COLOR][COLOR=#dd0000]"[COLOR=DarkSlateGray]hier müsste der auszugebende Text stehen[/COLOR]"[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#ff8000]// text falls gesendet
[/COLOR][COLOR=#007700][COLOR=DarkSlateGray]}[/COLOR]else[COLOR=DarkSlateGray]{  <- hier fehlten zwei geschweifte Klammern[/COLOR]
echo [/COLOR][COLOR=#dd0000]" Es ist ein Fehler beim versenden der E-Mail aufgetreten!"[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#ff8000]// text falls fehler beim senden aufgetreten sind

[/COLOR][COLOR=#007700]}[/COLOR][/COLOR]
Ansonsten gibt der Code keine Anweisungen an den Browser irgendetwas auszugeben...

Edit:
scheint sich ja erledigt zu haben.. und meine Aussage als falsch bestätigt.. Oo
 
K

kroeatschge

Guest

AW: Hilfe bei Formular

jap, jetzt musst noch den Mailtext zusammenbauen.

ersetze also das hier:
PHP:
$message = addslashes($_POST['Nachricht']);
durch sowas:
PHP:
      $message = "Bestellung: \n\n";
      $message .= "\nName: ",$_REQUEST['name'];
      $message .= "\nVorname: ",$_REQUEST['vorname'];
      $message .= "\nStrasse: ",$_REQUEST['strasse'];
      $message .= "\nHnr: ",$_REQUEST['hausnr'];
      $message .= "\nPLZ: ",$_REQUEST['plz'];
      $message .= "\nOrt: ",$_REQUEST['ort'];
      $message .= "\nAnzahl: ",$_REQUEST['auswahl'];
      $message .= "\nEmail: ",$_REQUEST['absender'];
und wenn du grad dabei bist, schmeiss noch auf der Formularseite das Coding beim Anzahl Feld raus!
jetzt:
PHP:
<select name="auswahl" id="auswahl" onchange="window.open(this.value,'_self')">
nachher:
PHP:
<select name="auswahl" id="auswahl">
 

Foos

Member

AW: Hilfe bei Formular

also ich glaub, ich hab schon wieder was falsch gemacht.
hab das jetzt so eingefügt, wie du geschrieben hast.
jetzt kommt aber wieder ne weiße seite.
denke das ich den code falsch eingefügt habe, da das"message" bei mir nicht farbig ist.

so siehts aus:
PHP:
<?php

if( empty($_POST['name']) || empty($_POST['strasse']) || empty($_POST['absender']) ) // Hier wird überprüft ob alle benötigten felder angegeben wurden( name, nachricht und email)
{
echo " Sie haben nicht alle Felder ausgefüllt!!! "; // fehlermeldung falls sie nicht ausgefüllt wurden.
}
else // wenn doch geht es hier weiter
{
      $message = "Bestellung: \n\n";
      $message .= "\nName: ",$_REQUEST['name'];
      $message .= "\nVorname: ",$_REQUEST['vorname'];
      $message .= "\nStrasse: ",$_REQUEST['strasse'];
      $message .= "\nHnr: ",$_REQUEST['hausnr'];
      $message .= "\nPLZ: ",$_REQUEST['plz'];
      $message .= "\nOrt: ",$_REQUEST['ort'];
      $message .= "\nAnzahl: ",$_REQUEST['auswahl'];
      $message .= "\nEmail: ",$_REQUEST['absender']  ; // die funktion addslashes bewirkt, kurz gesagt, das dein script vor bösartigem text geschützt wird.
$email ="info@eonfly.de"; // Hier kommt deine email adresse rein, zu bedenken ist das die anführungszeichen gesetzt bleiben.
$name = addslashes($_POST['Name']);
$betreff = "Sie haben eine Nachricht von ".$name." ";

$senden = @mail($email , $betreff, $message); // hier wird die email an deine email adresse gesendet.
if($senden) // hier wird überprüft ob die email erfolgreich versendet wurde
echo ""; // text falls gesendet
else
echo " Es ist ein Fehler beim versenden der E-Mail aufgetreten!"; // text falls fehler beim senden aufgetreten sind

}
?>
 
K

kroeatschge

Guest

AW: Hilfe bei Formular

oh.. nein, mein Fehler.
Da sind Kommas statt Punkte reingerutscht:

PHP:
      $message = "Bestellung: \n\n";
      $message .= "\nName: ".$_REQUEST['name'];
      $message .= "\nVorname: ".$_REQUEST['vorname'];
      $message .= "\nStrasse: ".$_REQUEST['strasse'];
      $message .= "\nHnr: ".$_REQUEST['hausnr'];
      $message .= "\nPLZ: ".$_REQUEST['plz'];
      $message .= "\nOrt: ".$_REQUEST['ort'];
      $message .= "\nAnzahl: ".$_REQUEST['auswahl'];
      $message .= "\nEmail: ".$_REQUEST['absender'];
@edit: wenn das nicht geht versuch das:
PHP:
      $message = "Bestellung: \n\n";
      $message .= "\nName: ";
      $message .= $_REQUEST['name'];
      $message .= "\nVorname: ";
      $message .= $_REQUEST['vorname'];
      $message .= "\nStrasse: ";
      $message .= $_REQUEST['strasse'];
      $message .= "\nHnr: ";
      $message .= $_REQUEST['hausnr'];
      $message .= "\nPLZ: ";
      $message .= $_REQUEST['plz'];
      $message .= "\nOrt: ";
      $message .= $_REQUEST['ort'];
      $message .= "\nAnzahl: ";
      $message .= $_REQUEST['auswahl'];
      $message .= "\nEmail: ";
      $message .= $_REQUEST['absender'];
 
Zuletzt bearbeitet von einem Moderator:

Foos

Member

AW: Hilfe bei Formular

*push*

ach du kacke,
ich habe nichts verändert oder ähnliches. allerdings funtkioniert das formular auf einmal nicht mehr. also ich bekomm keine mail mehr ! was denn jetz los?
 
K

kroeatschge

Guest

AW: Hilfe bei Formular

hmm.. es lässt sich tipp topp absenden.

vielleicht im spam gelandet?

poste nochmal den code wo das mail versendet wird.
 

Foos

Member

AW: Hilfe bei Formular

<?php

if( empty($_POST['name']) || empty($_POST['strasse']) || empty($_POST['absender']) ) // Hier wird überprüft ob alle benötigten felder angegeben wurden( name, nachricht und email)
{
echo " Sie haben nicht alle Felder ausgefüllt!!! "; // fehlermeldung falls sie nicht ausgefüllt wurden.
}
else // wenn doch geht es hier weiter
{
$message = "Bestellung: \n\n";
$message .= "\nName: ";
$message .= $_REQUEST['name'];
$message .= "\nVorname: ";
$message .= $_REQUEST['vorname'];
$message .= "\nStrasse: ";
$message .= $_REQUEST['strasse'];
$message .= "\nHnr: ";
$message .= $_REQUEST['hausnr'];
$message .= "\nPLZ: ";
$message .= $_REQUEST['plz'];
$message .= "\nOrt: ";
$message .= $_REQUEST['ort'];
$message .= "\nAnzahl: ";
$message .= $_REQUEST['auswahl'];
$message .= "\nEmail: ";
$message .= $_REQUEST['absender']; // die funktion addslashes bewirkt, kurz gesagt, das dein script vor bösartigem text geschützt wird.
$email ="info@eonfly.de"; // Hier kommt deine email adresse rein, zu bedenken ist das die anführungszeichen gesetzt bleiben.
$name = addslashes($_POST['Name']);
$betreff = "Sie haben eine Nachricht von ".$name." ";

$senden = @mail($email , $betreff, $message); // hier wird die email an deine email adresse gesendet.
if($senden) // hier wird überprüft ob die email erfolgreich versendet wurde
echo ""; // text falls gesendet
else
echo " Es ist ein Fehler beim versenden der E-Mail aufgetreten!"; // text falls fehler beim senden aufgetreten sind

}
?></div>

joa also gesendet wirds bei mir auch. nur ich bekomm nix mehr. und das ging doch vor ner woche noch einwandfrei....
spam is nix.
 
K

kroeatschge

Guest

AW: Hilfe bei Formular

der teil schaut nicht ok aus:
PHP:
if($senden) // hier wird überprüft ob die email erfolgreich versendet wurde
echo ""; // text falls gesendet
else
echo " Es ist ein Fehler beim versenden der E-Mail aufgetreten!"; // text falls fehler beim senden aufgetreten sind

}

versuch mal so:
PHP:
if($senden){
echo "Email erfolgreich versendet!";
}else{
echo "Es ist ein Fehler beim versenden der E-Mail aufgetreten!";
}
dadurch sollte der Text "Email erfolgreich versendet!" ausgegeben werden, wenn es geklappt hat. Alternativ kannst du mal versuchen an eine andere emailadresse zu senden.
 
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

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.066
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben