myGully.com

myGully.com (https://mygully.com/index.php)
-   Entwicklung & Programmierung (https://mygully.com/forumdisplay.php?f=72)
-   -   E-Mail sende funktion per Button klick (https://mygully.com/showthread.php?t=2081576)

DJ-LaCo 21.07.10 19:49

E-Mail sende funktion per Button klick
 
Hi,
ich habe ein Kontaktformular es muss nur noch eine Sende funktion mit php eingebaut werden irgendwie.

Das ist der ist der Absende button.
Code:

<input id="saveForm" class="button_text" type="Submit" name="Submit" value="Absenden" />
Hoffe ich könnt mir helfen ;)
Greez

DJ-LaCo 22.07.10 12:51

push
 
Ja. Ich habe ein PHP fähigen Webspace ;)

push

Irolight 22.07.10 15:32

mit php bekommst du keine Sende Funktion hin, da PHP schon lange sein dienst beendet hast wenn du die Seite siehst.
Dein button ist so vollständig. Was aber sein muss, er muss in ein <form ...> .... </form> stehen. Dieses Form benötigt auch ein action was das Ziel angibt.

iNERD 22.07.10 15:39

such dir nen kostenlosen formmailer, ist meiner meinung nach die beste variante. direkt über z.B. onlex.de zu deiner email.

lg

DJ-LaCo 23.07.10 02:42

Habs ausprobiert ging aber nicht mit dem formmailer.
Weiß nicht ob es richtig war mit dem einbinden:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Kann mir ja mal bitte wer helfen der ein wenig mehr ahnung hat.
Danke ;)

Ray69 23.07.10 07:03

dein skript muss entweder sich selbst oder ein 2tes aufrufen. dann sollte das formular auf gueltigkeit geprueft wreden und dann via sendmail verschickt werden.

Kotkruemel 23.07.10 12:32

Hallöchen,


so muss das denn ungefähr aussehen:

PHP-Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<form method="post" name="form1" action="<? $PHP_SELF;?>" >

Hier k&ouml;nnen Sie sich eine Email zuschicken:
<br /><br />
Email-Adresse: 
<input type="text" name="email" id="email_adresse" value=""/>
<input id="saveForm" class="button_text" type="Submit" name="Submit" value="Absenden" />

<?php
function email ($w_empfaenger$w_cc$w_bcc$w_absender$w_reply$w_betreff$w_nachricht)
    {
    
/* Empfänger */
    
$empfaenger = array($empfaenger);
    
    
/* Empfänger CC */
    
$empfaengerCC = array($w_cc);
    
    
/* Empfänger BCC */
    
$empfaengerBCC = array($w_bcc);
    
    
/* Absender */
    
$absender $w_absender;
    
    
/* Rueckantwort */
    
$reply $w_reply;
    
    
/* Betreff */
    
$subject $w_betreff;
    
    
/* Nachricht */
    
$message $w_nachricht;
    
    
/* Baut Header der Mail zusammen */
    
$headers .= 'From:' $absender "\n";
    
$headers .= 'Reply-To:' $reply "\n"
    
$headers .= 'X-Mailer: PHP/' phpversion() . "\n"
    
$headers .= 'X-Sender-IP: ' $REMOTE_ADDR "\n"
    
$headers .= "Content-type: text/html\n";
    
    
// Extrahiere Emailadressen
    
$empfaengerString implode(','$empfaenger);
    
$empfaengerCCString implode(','$empfaengerCC);
    
$empfaengerBCCString implode(','$empfaengerBCC);
    
    
$headers .= 'Cc: ' $empfaengerCCString "\n";
    
$headers .= 'Bcc: ' $empfaengerBCCString "\n";
    
    
/* Verschicken der Mail */
    
mail($empfaengerString$subject$message$headers);
    }
/* Ueberpruefen ob der Button gedrueckt wurde und ob der String ein @-Symbol enthaelt */
if (isset($_POST['Submit']) && strstr($_POST['email'],'@'))
    {
    
$mess '<html>
            <head>
            </head>
            <body>
            Dringende Nachricht: Ich hab die ne Email geschickt *wuhu*
            </body>
            </html>'
;
    
email('[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]''''''Karl Karlsen''[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]''Ich muss dir mal was sagen!'$mess)
    }
?>
</form>
</body>
</html>


ansonsten guck doch mal auf [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] da stehen die wichtigsten Funktionen und Befehle unter "Befehlsreferenz" ;)

DJ-LaCo 23.07.10 15:39

Zitat:

Zitat von Ray69 (Beitrag 21015146)
dein skript muss entweder sich selbst oder ein 2tes aufrufen. dann sollte das formular auf gueltigkeit geprueft wreden und dann via sendmail verschickt werden.

Ja. Nur wie das 2.te

Kannst du mir den Code von der send.php geben und den Code vom Submit button den ichd ann nur einbauen muss?

Oder hab ich das jetzt falsch verstanden?

Wäre nett und ist auch recht wichtig. Daher bedanke ich mich auch schonmal für die Antworten, freue mich natürlich auf weitere.

Greez :)

Sascha_K1994 23.07.10 21:45

Zitat:

Zitat von DJ-LaCo (Beitrag 21016688)
Ja. Nur wie das 2.te

Kannst du mir den Code von der send.php geben und den Code vom Submit button den ichd ann nur einbauen muss?

Oder hab ich das jetzt falsch verstanden?

Wäre nett und ist auch recht wichtig. Daher bedanke ich mich auch schonmal für die Antworten, freue mich natürlich auf weitere.

Greez :)

So wie es Kotkruemel gemacht hat, brauchst du garkein 2tes Dokument...:D

Mit
Zitat:

action="<? $PHP_SELF;?>"
sendet er es an sich selber, dh. an das selbe Dokuement ... trotzdem würde ich denn php-Code noch ein bisschen aufbessern ;)

Irolight 23.07.10 22:48

Zitat:

Zitat von Sascha_K1994 (Beitrag 21018169)
So wie es Kotkruemel gemacht hat, brauchst du garkein 2tes Dokument...:D

Mit sendet er es an sich selber, dh. an das selbe Dokuement ... trotzdem würde ich denn php-Code noch ein bisschen aufbessern ;)

Kleine Klugscheißer anmerken am späten Abend:
Was aber auch nur Funktioniert weil action am ende leer ist :p. Heißt du kannst auch
Code:

action="<?php echo $_SERVER["PHP_SELF"];?>"
einsetzten wenn man was eintragen will.

Sascha_K1994 24.07.10 00:54

Zitat:

Zitat von Irolight (Beitrag 21018390)
Kleine Klugscheißer anmerken am späten Abend:
Was aber auch nur Funktioniert weil action am ende leer ist :p. Heißt du kannst auch
Code:

action="<?php echo $_SERVER["PHP_SELF"];?>"
einsetzten wenn man was eintragen will.

Tzz zu viel Kluggeschissen :p

Ist ja egal, wie man es machen will, ich würde das Dokuent selbst anders machen, deshalb mal hier meine Version ;)

Da ich nicht genau weiß welche Felder du brauchst und warum er das an den User senden soll, der sich einträgt ... egal, der Kunde ist König ... :D

Außerdem gehe ich mal von diesem Kontaktformular aus ::

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

So und hier meine Version, bei Fragen, ich beiße nicht :P:P

Ach ja und bedanken tut auch nicht weh ;)

PHP-Code:

<?php


/* Prüfen ob das Formular abgesendet wurde */

if (isset($_POST['submit']) and $_POST['submit'] == 'Absenden') {

    
/* wenn das Formular abgesendet wurde, überprüfen, ob alle felder exestieren */

    
$errors = array();

    if (!isset(
$_POST['Name'], $_POST['Mail'], $_POST['Betreff'], $_POST['Text'])) {
        
$errors[] = "Das Formular wurde manipluiert, bitte wenden Sie sich an den Webmaster.";
    } else {

        
/* wenn alle Felder da sind, überprüfen, ob der User in dein formular kein kak reinschreibt */

        
if (trim($_POST['Name']) == '')
            
$errors[] = "Bitte geben Sie einen gültigen Namen ein.";
        elseif (
strlen(trim($_POST['Name'])) < 3)
            
$errors[] = "Ihr Name muss mindestens 3 Zeichen lang sein.";
        elseif (
trim($_POST['Mail']) == '')
            
$errors[] = "Bitte geben Sie Ihre E-Mailadresse ein.";
        elseif (!
preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§'trim($_POST['Mail'])))
            
$errors[] = "Ihre E-Mailadresse hat eine falsche Syntax.";
        elseif (
trim($_POST['Betreff']) == '')
            
$errors[] = "Bitte geben Sie einen Betreff ein.";
        elseif (
trim($_POST['Text']) == '')
            
$errors[] = "Bitte geben Sie eine Nachricht ein.";

        
/* wenn irgendwo ein fehler gefunden wurde, wird dieser ausgegeben */

        
if (count($errors)) {
            echo 
"Das Formular konnte nicht abgesendet werden.<br><br>" "<br>";
            foreach (
$errors as $error)
                echo 
$error "<br>";
        } else {

            
/* ansonsten das formular gesendet, natürlich mit htmlentities, stripcslashes, Uhrzeit &' Datum und der IP */

            
$empfaenger htmlentities($_POST['Mail']);
            
$titel htmlentities($_POST['Betreff']);
            
$mailbody 'Guten Tag ' htmlentities($_POST['Name']) . '<br><br>' .
                
'Sie haben sich gerade eben an unser Formular gewand.<br><br>' .
                
'Dabei haben Sie folgende Nachricht hinterlassen:<br><br>---<br>' '' .
                
htmlentities(stripcslashes($_POST['Text'])) . '' .
                
'<br>---<br><br>Diese Nachricht wurde am ' date('d.m.Y \- H:i \U\h\r'time()) .
                
' von der IP-Adresse "' $HTTP_SERVER_VARS['REMOTE_ADDR'] . ' gesendet.';
            
$header 'From: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]';
            if (@
mail($empfaenger$titel$mailbody$header)) {

                echo 
'Das Formular wurde erfolgreich gesendet.';

            } else {
                echo 
'Beim Senden ist ein Fehler aufgetreten, bitte wenden Sie sich an den Webmaster';

            }


        }

    }

} else {

    
/* wenn das FFormaular nicht gesendet wurde, das formulareingabefeld anzeigen */

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="de" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Kontakt</title>
</head>

<body>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <h1>Kontakt</h1>
    <table style="width: 25%">
        <tr>
            <td style="width: 550px">Name :</td>
            <td>
            <input name="Name" style="width: 200px" type="text" /></td>
        </tr>
        <tr>
            <td style="width: 550px">E-Mailadresse : </td>
            <td>
            <input name="Mail" style="width: 200px" type="text" /></td>
        </tr>
        <tr>
            <td style="width: 550px">Betreff :</td>
            <td>
            <input name="Betreff" style="width: 200px" type="text" /></td>
        </tr>
        <tr>
            <td style="width: 550px">Text :</td>
            <td>
            <textarea name="Text" rows="2" style="width: 200px"></textarea></td>
        </tr>
        <tr>
            <td style="width: 550px"></td>
            <td><input type="submit" value="Absenden" name="submit" class="button_text" id="saveForm" /></td>
        </tr>
    </table>
</form>

</body>

</html>
<?php
}
?>


Irolight 24.07.10 10:03

Darf ich dir ein Vorschlag machen wie du das S***** Optimieren kannst?
Alles was oben mit einem echo ausgegeben wird, sollte am besten in eine Variable gespeichert werden (wie bei $error) so das man sie im HTML Teil ausgeben kann, ideal wäre wohl eine extra Tabellenzeile oder darüber. zudem sollten die Feld mit ein value die alten Daten wieder bekommen, hat man ein Pflichtfeld vergessen darf alles noch einmal eingeben werden. Ist zwar nicht nötig hat ist aber etwas benutzerfreundliches ;)

Sascha_K1994 24.07.10 11:48

Zitat:

Zitat von Irolight (Beitrag 21019151)
Darf ich dir ein Vorschlag machen wie du das S***** Optimieren kannst?
Alles was oben mit einem echo ausgegeben wird, sollte am besten in eine Variable gespeichert werden (wie bei $error) so das man sie im HTML Teil ausgeben kann, ideal wäre wohl eine extra Tabellenzeile oder darüber. zudem sollten die Feld mit ein value die alten Daten wieder bekommen, hat man ein Pflichtfeld vergessen darf alles noch einmal eingeben werden. Ist zwar nicht nötig hat ist aber etwas benutzerfreundliches ;)

Stimmt auch wieder ... :P

Naja war spät, wenn der Kunde es so möchte, soll er es selber bitte auch äußern...:p

DJ-LaCo 24.07.10 15:53

Ich habe noch ein Formular mit Boxen zum Anklicken.
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Da muss man ja noch was anderes machen im Code.
Wäre nett wenn mir da wer hilft.

Bei obrigen Code wo muss ich meine E-Mail eintragen?

Das 3. Formular ist übrings [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

MFG
EDIT: @Sascha_K1994 Das soll garnicht an den User gesendet werden welcher sich dort einträgt, sondern an mich. Weiß nicht ob ihr das falsch verstanden habt.
Greez

DJ-LaCo 25.07.10 19:17

So habe es nun nach langem herumprobieren und einstellen geschaft.
Ich benutzte nun den Onlex Formmailer.

Das einzige Problem ist das man in der erhaltenen Mail ruhig ab und zu eine Leertaste haben könnte.
Wie mache ich das?

Greez :)

--------------------
Meine Formulare:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Sascha_K1994 29.07.10 11:32

Zitat:

Zitat von DJ-LaCo (Beitrag 21020347)
Ich habe noch ein Formular mit Boxen zum Anklicken.
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Da muss man ja noch was anderes machen im Code.
Wäre nett wenn mir da wer hilft.

Bei obrigen Code wo muss ich meine E-Mail eintragen?

Das 3. Formular ist übrings [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

MFG
EDIT: @Sascha_K1994 Das soll garnicht an den User gesendet werden welcher sich dort einträgt, sondern an mich. Weiß nicht ob ihr das falsch verstanden habt.
Greez

Achso sags doch ;)

Kann dir ruhig noch eins machen, habe heute Zeit, musst nur sagen ;) das würde ich dann komplett nochmal überarbeiten, so wie andere mir auch Tipps usw. gegeben haben...

Sascha_K1994 29.07.10 11:34

Zitat:

Zitat von DJ-LaCo (Beitrag 21024639)
So habe es nun nach langem herumprobieren und einstellen geschaft.
Ich benutzte nun den Onlex Formmailer.

Das einzige Problem ist das man in der erhaltenen Mail ruhig ab und zu eine Leertaste haben könnte.
Wie mache ich das?

Greez :)

--------------------
Meine Formulare:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Oh wie ich gerade sehe, hast du ja schon eins ;)

Naja, für die Leerzeichen bräuchten wir wohl das S*****, weil du dort wohl Zeilenumbrüche vergessen hast ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:11 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.