IPB

Willkommen, Gast ( Anmelden | Registrierung )

2 Seiten V   1 2 >  
Reply to this topicStart new topic
> PHP-Frage Formmailer
amethyst
Beitrag 20.02.2005 - 2:08
Beitrag #1


Kann auf gar keinen Fall einen Videorekorder programmieren!
***

Gruppe: User
Beiträge: 210
Mitglied seit: 08.12.2003
Wohnort: Bad Zwischenahn
Mitglieds-Nr.: 1.751



Hi Ihr,
ich will auf meinen Seiten eine Newsletter-Bestellung einbauen. Das klappt auch, aber, es klappt leider auch dann, wenn die Seite nur aufgerufen wird. Ergo ich mach was falsch. ;-))

Ich hoffe Ihr könnt mir helfen, hier der Code:

QUELLTEXT
<?php
 $admin= 'amethyst@amethyst-edv.de';
 $subject= 'Newsletter-Bestellung';
 $message= 'Nachrichten an '.$admin.' von '.$email.":\n\n";
 foreach($HTTP_POST_VARS as $name=> $value) {
   $message.= "$name:$value\n";
 }
 mail($admin, $subject, $message, "From: $email");

?>
<form method="post" action="mail.php">
<table height="120" width="150" class="news" border="0" >
<tr>
<td align="center"> <span style="text-align:center;color:white;font-weight:bold;font-size:x-small;">E-Mail:</span><br>
 <input class="text" size="10" type="text" name="email"><br><br>

 <input class="senden" type="submit" name="senden" value="Senden"> </td>
</tr>
</table>
</form>


Ich krieg also bei jedem Seitenaufruf eine Bestellung, logischerweise ohne email-adresse. Irgendwas fehlt da, wenn eine Adresse eingetragen wird, wird auf eine andere Seite weitergeleitet, wo es dann auch wieder zurück auf die Ursprungsseite geht, Erfolg? Eine leere Newsletterbestellung.

Ihr habt sicher die Lösung, was da nicht richtig ist, bzw. was da fehlt.

Lieber Gruß Uschi

Der Beitrag wurde von amethyst bearbeitet: 20.02.2005 - 2:08
Go to the top of the page
 
+Quote Post
Conny
Beitrag 20.02.2005 - 10:45
Beitrag #2


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Hi Uschi,
im Grunde gibt es zwei Möglichkeiten so ein Formular zu gestalten.
Wenn die Formularseite eine php-Seite ist, muß sie zunächst an sichselbst zurückgegeben werden, um anschließend fehlermeldungen, ok und e-Mail generieren zu können.

Oder, Du schreibst eine normale HTML Seite, der ein Formular enthält mit allen Feldern die Du darin haben möchtest.
Klickt der User nun auf *Senden* wird der im Formular geschriebenen Inhalt ein PHP-Script übergeben, welches nicht nur die Mail generiert die dann zu Dir kommt, sondern auch kontrolieren kann ob alle Felder entsprechend ausgefüllt wurden.

Alle Formulare auf meine Webseite sind so aufgebaut.
Ein Beispiel:>>HIER<<

Versuche mal dieses Formular einfach so, oder nur teilweise ausgefüllt zu versenden... Du wirst sehen, es wird eine Fehlermeldung ausgegeben.
Diese Fehlermeldung kommt von diesem Script: www.trimmelterhof.de/scripts/forms/jackform.php

Das gleiche Script gibt auch das ok, wenn alles richtig scheint, um es alsdann in e-Mail form an mich zu senden.

Die Quellcode der Formularseite kannst Du von der Webseite Kopieren und Deine Zwecke anpassen.

Die Quellcode des Scriptes solltest Du ebenfalls Deine bedürfnisse anpassen; Du findest sie hierunten, es ist weitestgehend mit Kommentare versehen (rot) und (fast) Selbstklärend:
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Trimmelterhof-Team-Jacken</TITLE>
</HEAD>

<BODY CLASS="first">
<DIV ID="all">
<!--Seitenkopf-->
Bla Bla
<!--Ende Seitenkopf-->

<DIV ID="content">
<H2>Bestellformular</H2>
<p>&nbsp;</p>
<? /*<!--Das Formular wird gesendet an:-->*/
$webmaster = "conrad@trimmelterhof.de";

/*<!-- E-Mail-Adresse als Absender -->*/
$absender = "Teamjacken";

/* <!--IP bestimmen -->*/
$ip = getenv('REMOTE_ADDR');

/*<!-- IP aufloesen und Host bestimmen -->*/
$host = gethostbyaddr($ip);

/*<!-- Zeit bestimmen -->*/
$zeit = date("d.m.Y H:i:s");

/*<!--Formatierung der Mail-->*/
/*<!--Betreff-->*/ $betreffwebmaster = "Team-Jackenbestellung";
/*<!--Textkoerper-->*/ $koerperwebmaster = "
********** Formularangaben ****************

Anrede $Status
Name $nachname
Strasse $Strasse
Ort $PLZ $Ort
Telefon $Telefon

e-Mail $mail

von Seite: $subject

Konfektionsgroesse: $konfektion
Zahlung akzeptiert: $zahlung

Text:
$nachricht

*********** Ende Angaben ****************
";

/*<!--Formatierung der Copy-Mail-->*/
/*<!--Betreff-->*/ $betreffabsender = "Jackenbestellung";
/*<!--Textkoerper-->*/ $koerperabsender = "Sie haben folgende Nachricht versandt:\n $nachricht\n";

/* <!--Fehlermeldungen -->*/
$mailfalsch = "<H3 class='red'>Fehler!</H3><p>Ist diese E-Mail-Adresse wirklich richtig?</p><p>Bitte kontrollieren Sie noch einmal die Eingabe und senden Sie dann das Formular erneut ab.</P><center><FORM NAME='Zur&uuml;ck' ACTION='javascript:history.go(-1)'><INPUT TYPE='submit' VALUE='Zur&uuml;ck zum Formular'></FORM></center>";

/*<!-- Fehlermeldungen der Felder-->*/
$felderleer = "<H3 class='red'>Fehler!</H3><p>Ihre Bestellung konnte nicht versendett werden, da nicht alle erforderliche Adressfelder ausgef&uuml;llt wurden.</p><center><FORM NAME='Zur&uuml;ck' ACTION='javascript:history.go(-1)'><INPUT TYPE='submit' VALUE='Zur&uuml;ck zum Formular'></FORM></center>";

/*<!-- Fehlermeldungen der Checkboxen-->*/
$checkboxleer = "<H3 class='red'>Fehler!</H3><p>Ihre Bestellung konnte nicht versendet werden, da entweder die Konfektionsgr&ouml;&szlig;e nicht angegeben, und / oder die Checkbox der Zahlungsbedingungen nicht angekreuzt wurde(n).</p><center><FORM NAME='Zur&uuml;ck' ACTION='javascript:history.go(-1)'><INPUT TYPE='submit' VALUE='Zur&uuml;ck zum Formular'></FORM></center>";

/*<!--Erfolgsmeldung-->*/
$abgesandt = "<H3 class='grn'>Danke,</H3><H3>Ihre Bestellung wurde erfolgreich versendet.</H3>";

/*<!--Sind alle Felder ausgefuellt? -->*/
if ($nachname == "" || $Strasse == "" || $PLZ == "" || $Ort == "" || $Telefon == "" || $mail == "")
{
/*<!--nein-->*/
echo "$felderleer";
}
else
{
/*<!--Checkboxen ok?-->*/
if ($konfektion == "" || $zahlung == "")
{
/*<!--nein-->*/
echo "$checkboxleer";
}
else
{
/*<!--ja-->*/
/*Ist die E-Mail-Adresse richtig?-->*/
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$", $mail))
{
/*<!--E-Mail-Adresse ist richtig-->*/
mail("$webmaster","$betreffwebmaster","$koerperwebmaster\n","FROM: $absender\n");

/*<!--Kopie an Absender?-->*/
if ($kopie == "ja")
{
mail("$mail","$betreffabsender","$koerperabsender","FROM: $absender\n");
echo "$abgesandt";
}
else
{
echo "$abgesandt";
}
}
else
{
/*<!--nein-->*/
echo "$mailfalsch";
}
}
}
?>
<P>&nbsp;</P>
<!--Seitenfuss-->
Bla Bla
<!--Ende Fuss-->
</BODY>
</HTML>


Einfach mal ausbropieren.
Viel Spaß!

cu
Conny
Go to the top of the page
 
+Quote Post
hondocrx
Beitrag 20.02.2005 - 13:03
Beitrag #3


is getting harder


Gruppe: User
Beiträge: 26
Mitglied seit: 24.09.2004
Mitglieds-Nr.: 3.770



eventuell Zeile 8 ersetzen mit

QUELLTEXT
if($email!='') mail($admin, $subject, $message, "From: $email");  


MfG
Go to the top of the page
 
+Quote Post
Auge
Beitrag 20.02.2005 - 13:05
Beitrag #4


Anwärter auf W3.org Mitgliedschaft
*****

Gruppe: User
Beiträge: 550
Mitglied seit: 28.11.2001
Wohnort: Berlin Friedrichshain
Mitglieds-Nr.: 107



Hallo Uschi

ZITAT(amethyst @ 20.02.2005 - 2:08)
QUELLTEXT
<?php
 $admin= 'amethyst@amethyst-edv.de';
 $subject= 'Newsletter-Bestellung';
 $message= 'Nachrichten an '.$admin.' von '.$email.":\n\n";
 foreach($HTTP_POST_VARS as $name=> $value) {
   $message.= "$name:$value\n";
 }
 mail($admin, $subject, $message, "From: $email");

?>


Ich krieg also bei jedem Seitenaufruf eine Bestellung, logischerweise ohne email-adresse. Irgendwas fehlt da, wenn eine Adresse eingetragen wird, wird auf eine andere Seite weitergeleitet, wo es dann auch wieder zurück auf die Ursprungsseite geht, Erfolg? Eine leere Newsletterbestellung.

Ihr habt sicher die Lösung, was da nicht richtig ist, bzw. was da fehlt.


Was da fehlt ist eine Bedingung, unter der die Email versandt wird.
QUELLTEXT
<?php
if (isset($_POST["send"]) and $_POST["send"]=="Eintragen")
  {
  // Vorbereitung zum mailen
  mail($to,$subject,$message,$header);
  }
?>
<form ...>
<!-- das Newsletteranmeldeformular -->
...
<input type="submit" name="send" value="Eintragen">
</form>


So wie du es geschrieben hast, wird die Email, im wahrsten Sinne des Wortes, unbedingt versandt.

Tschö, Auge

Der Beitrag wurde von Auge bearbeitet: 20.02.2005 - 13:06
Go to the top of the page
 
+Quote Post
amethyst
Beitrag 21.02.2005 - 0:36
Beitrag #5


Kann auf gar keinen Fall einen Videorekorder programmieren!
***

Gruppe: User
Beiträge: 210
Mitglied seit: 08.12.2003
Wohnort: Bad Zwischenahn
Mitglieds-Nr.: 1.751



Hallo Ihr,
danke für die Codes, ich melde mich morgen, ob es jetzt klappt und wie ich es gelöst habe ;-))

Ich bin mir nicht ganz sicher, ob der Code von Auge alles ist oder ob da meiner noch dazu muss ;-)) Ich bin nämlich völlig ahnungslos, was php betrifft. Aber ich werde alle Eure Tipps ausprobieren ;-)) Nur nicht mehr jetzt ;-))

Ich hab keine Benachrichtigungen bekommen, ich schau jetzt aber mal in mein Profil, ob ich da was umstellen muss. Ich hatte mich schon gewundert, dass sich so gar nichts tat.

Lieber Gruß Uschi
Go to the top of the page
 
+Quote Post
Auge
Beitrag 21.02.2005 - 12:30
Beitrag #6


Anwärter auf W3.org Mitgliedschaft
*****

Gruppe: User
Beiträge: 550
Mitglied seit: 28.11.2001
Wohnort: Berlin Friedrichshain
Mitglieds-Nr.: 107



ZITAT(amethyst @ 21.02.2005 - 0:36)
Ich bin mir nicht ganz sicher, ob der Code von Auge alles ist oder ob da meiner noch dazu muss wink.gif) Ich bin nämlich völlig ahnungslos, was php betrifft. Aber ich werde alle Eure Tipps ausprobieren wink.gif) Nur nicht mehr jetzt wink.gif)


Hallo Uschi

Mein Code ist kein vollständiges Skript. Die Codeteile, die den Versand der Email vorbereiten, z.B. das Zusammensetzen des Emailbodys müsste dort stehen, wo ich den Kommentar hingeschrieben habe.
Ich wollte dir nur aufzeigen, dass es einer Bedingung bedarf, festzulegen, wann der Versand der Email erfolgt. Die Bedingung ist das Vorhandensein der Variable $_POST["send"] und der erfolgreiche Vergleich mit dem String "Eintragen", wenn so auch die Beschriftung des Buttons zum Absenden lautet und dieser mit "send" benamst ist.

Wenn beides zutrifft, solltest du sicher sein können, dass das Formular soeben abgesandt wurde. Somit kannst du die Überprüfung der Werte, den Eintrag und den folgenden Versand der Email anwerfen.

Tschö, Auge
Go to the top of the page
 
+Quote Post
amethyst
Beitrag 21.02.2005 - 23:44
Beitrag #7


Kann auf gar keinen Fall einen Videorekorder programmieren!
***

Gruppe: User
Beiträge: 210
Mitglied seit: 08.12.2003
Wohnort: Bad Zwischenahn
Mitglieds-Nr.: 1.751



Danke an alle,
an Conny für die Mühe alles auszukommentieren, an Auge für die Unterstützung und an hondocrx.

Ich habe es gelöst und gereicht hat wirklich die eine Zeile von hondocrx.

@ Conny

Dank Dir ganz herzlich, dieses Script werde ich verwenden, wenn ich jemals dahin komme, dass meine Kurse online gebucht werden können wink.gif) Für den Newsletterversand war es mir zu umfangreich, ich hätte die Hälfte oder mehr löschen müssen und dann, wie ich mich kenne, das Falsche gelöscht.

@ Auge
Ich hab zwar verstanden, was Du mir sagen wolltest, aber ich konnte es nicht umsetzen, was wahrscheinlich daran liegt, dass ich vorher schon getrickst hatte wink.gif)

Ich hab nämlich, weil ich irgendwann geschnallt habe, dass auf die gleiche Seite zurück gegangen wird und ich das nicht wollte, eine 2. Seite geschaffen mit dem gleichen code und auf der Seite als Inhalt den dank für die Besteller untergebracht und dann mit einem winzigen Java-Script (nicht erschlagen) zur Ausgangsseite zurück verlinkt wird.

Der Grund dafür ist, dass die Newsletterbestellung auf jeder Seite unter dem Menü platziert, aber nur auf eine Seite zugegriffen werden soll, sonst funktioniert das nämlich nicht als include wink.gif) und das sollte es, ich will so wenig wie möglich von Hand bei den Bestandteilen, die nicht verändert werden, einfügen, ich kenn mich, ich würde es ständig vergessen. Mir reicht schon, dass ich beim versteckten counter so vorgehen muss.

@ hondocrx
Danke für die einfache und doch praktikable Lösung wink.gif)

Lieber Gruß Uschi

P.S. Wenn mir jetzt noch einer verrät, wie ich mein Profil so einstellen muss, dass ich wieder Mail-Benachrichtigungen erhalte, bin ich erstmal (lange sicher nicht wink.gif) wunschlos glücklich wink.gif)

Der Beitrag wurde von amethyst bearbeitet: 21.02.2005 - 23:45
Go to the top of the page
 
+Quote Post
Auge
Beitrag 22.02.2005 - 1:46
Beitrag #8


Anwärter auf W3.org Mitgliedschaft
*****

Gruppe: User
Beiträge: 550
Mitglied seit: 28.11.2001
Wohnort: Berlin Friedrichshain
Mitglieds-Nr.: 107



ZITAT(amethyst @ 21.02.2005 - 23:44)
@ hondocrx
Danke für die einfache und doch praktikable Lösung wink.gif)

Denke aber dran, dass so nur geprüft wird, ob das Feld für die Email nicht leer übergeben wurde.
ZITAT(amethyst @ 21.02.2005 - 23:44)
P.S. Wenn mir jetzt noch einer verrät, wie ich mein Profil so einstellen muss, dass ich wieder Mail-Benachrichtigungen erhalte, bin ich erstmal (lange sicher nicht wink.gif) wunschlos glücklich wink.gif)

Tja, das ist mir momentan auch ein wenig suspekt. Ich bekomme auch keine Emails mehr, auch meine Cookies werden vom Server gelegentlich vergessen, so dass ich mich neu einloggen muss, auch wenn ich mich beim letzten Besuch nicht ausgeloggt habe. und selbst nach dem neuen einloggen bei erfolgtem ausloggen werden mir gelegentlich bereits gelesene Postings als neu präsentiert.

Irgendwie scheint in der neuen Boardversion der Wurm drin zu sein. Allerdings ist das für mich nicht unbedingt ein Beinbruch, da ich fast täglich vorbeischaue, manchmal auch mehrmals. Ist dann nur ein wenig lästig.

Tschö, Auge
Go to the top of the page
 
+Quote Post
Andreas
Beitrag 22.02.2005 - 7:41
Beitrag #9


____________________
Gruppensymbol

Gruppe: Admin
Beiträge: 1.220
Mitglied seit: 20.10.2001
Mitglieds-Nr.: 3



ZITAT(Auge @ 22.02.2005 - 1:46)
Tja, das ist mir momentan auch ein wenig suspekt. Ich bekomme auch keine Emails mehr,
$irgendwer hat in den individuellen Maileinstellungen offensichtlich die Benachrichtigung ausgestellt. War bei mir auch so - dachte natürlich, ich wäre ein Einzelfall wink.gif

Einfach wieder umstellen ...
Go to the top of the page
 
+Quote Post
Auge
Beitrag 22.02.2005 - 23:21
Beitrag #10


Anwärter auf W3.org Mitgliedschaft
*****

Gruppe: User
Beiträge: 550
Mitglied seit: 28.11.2001
Wohnort: Berlin Friedrichshain
Mitglieds-Nr.: 107



Hallo Andreas
ZITAT(Andreas @ 22.02.2005 - 7:41)
$irgendwer...

Notice: Call to undefined variable ''$irgendwer´' on line 1 in ... wink.gif
ZITAT(Andreas @ 22.02.2005 - 7:41)
Einfach wieder umstellen ...

Schon geschehen.

Tschö, Auge

Der Beitrag wurde von Auge bearbeitet: 22.02.2005 - 23:21
Go to the top of the page
 
+Quote Post
Google Bot
Beitrag
Beitrag #


Google Ads









Go to the top of the page
 
Quote Post

2 Seiten V   1 2 >
Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 28.04.2024 - 23:31

taschenkalender
expertise-panel IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here