PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Sendmail mit Radiobuttons (http://www.selfphp.de/forum/showthread.php?t=10315)

huetchen 20.04.2005 13:54:30

Sendmail mit Radiobuttons
 
Hallo allerseits,

bin heute in dieses Forum eingetreten, weil ich Hilfe brauche. Habe schon den ganzen Vormittag im www gesucht, um eine Lösung für mein Problem zu finden.

Ich habe ein Formular. Wenn man dieses Formular ausfüllt und abschickt, soll beim Empfänger ein formatiertes Email ankommen. Das heißt, schreibt jemand seinen Vornamen und Namen jeweils in ein Formularfeld, soll im Email dann z.B. das so stehen:

... Sie bekamen ein Email von Emil Richter.

Ich habe praktisch ein Script, was das Formular beschreibt. Und noch eines, was das Sendmail beschreibt. Mit einfachen Formularfeldern gibt es kein Problem, aber mit Radiobuttons:

In meinem Formular-Script steht:
<input type="radio" name="kontaktart" value="mail" tabindex="1">per E-Mail</td>
<input type="radio" name="kontaktart" value="anruf" border="0">Rufen Sie mich an</font></td>

Im Email soll es dann heißen, wenn jemand einen Anruf will:
Der Absender möchte, dass Sie ihn anrufen.

Oder wenn er den anderen Button wählt:
Der Absender möchte, dass Sie zurückmailen.

Wie muss ich das in dem Script für das Mail einfügen, dass bis jetzt wegen den anderen normalen Formularfeldern so aussieht (Ausschnitt):

mail("$site_email",
"Kontaktaufnahme über meine Homepage",
"Diese eMail wurde mit $site_name gesendet !r
Der Absender dieser eMail ist: $emailrn
Gesendet am: $datumrn

Von:
$vorname $name
$strasse
$plz $ortrn

Telefonnummer: $telefon
Faxnummer: $faxrn

E-Mail: $emailrn

$kommentarrn

Wisst ihr, der Empfänger des Mails ist ein Internetdummy, der alles auf einem Blick und Umschweife lesen und erkennen will. Deshalb der Umstand...

Viele Grüße
huetchen

|Coding 20.04.2005 14:11:36

AW: Sendmail mit Radiobuttons
 
Das kannst Du mit [FUNC]switch()[/FUNC] realisieren:

PHP-Code:

<?php
switch($_POST['kontaktart']){ // oder bei method="get", eben $_GET['kontaktart']
    
case 'mail':
        
$kontaktper 'MAIL - MICH - AN!';
        break;
    case 
'anruf':
        
$kontaktper 'RUF - MICH - AN!';
        break;
}

$headers 'From: $vorname $name<$email>' "n";
$headers .= 'X-Mailer: PHP/' phpversion(). "n";

mail($site_email,
"Kontaktaufnahme über meine Homepage",
"Diese eMail wurde mit $site_name gesendet !r
Der Absender dieser eMail ist: $emailrn
Gesendet am: $datumrn

Von:
$vorname $name
$strasse
$plz $ortrn

Telefonnummer: $telefon
Faxnummer: $faxrn

E-Mail: $emailrn

$kommentarrn

Kontaktart: $kontaktper"
$header);
?>


huetchen 20.04.2005 14:39:28

AW: Sendmail mit Radiobuttons
 
Hallo Coding,

vielen Dank für die schnelle und super Hilfe! Es hat geklappt!

Jetzt nur noch eine Frage. Wenn diese Auswahl zwingend erforderlich ist (also mit *), wie muss ich das schreiben? Bei den normalen Formularfeldern ging es so:

$fehler="Schade, Ihre Eingaben sind nicht vollständig!<br>
Bitte gehen Sie zurück und füllen das Formular vollständig aus<br>
und beachten auch die eMail-Schreibweise! Danke.</B><br><br><br>
<input type=button value=zurück onClick=history.back()>";
$erfolg="<B>Die eMail wurde gesendet !</B></FONT><br><br><br>
<input type=button value=zurück onClick=history.back()>";

if ( $vorname == "") {
echo "$fehler";
exit;
}

Danke schon mal...
Viele Grüße
huetchen

|Coding 20.04.2005 14:49:51

AW: Sendmail mit Radiobuttons
 
Das kannst Du genau so handeln:

PHP-Code:

$fehler="<B>Guckst Du</B><br>
Du hast krass vergessen, da was auszuwaehlen!<br><br>
<input type=button value=zurück onClick=history.back()>"
;

if(empty(
$_POST['kontaktart'])){
    echo 
$fehler;
    exit;



huetchen 20.04.2005 15:17:01

AW: Sendmail mit Radiobuttons
 
Hallo Coding,

danke danke danke! Noch eine allerletzte Frage:

Normalerweise habe ich auch ein * bei Telefonnummer, d.h. die Angabe ist dringend notwendig. Wenn einer allerdings bei der Kontaktart Email angibt, ist die Telefonnummerangabe nicht mehr nötig.

Kann man das auch in ein kleines Script packen?
Danke schon mal!

Viele Grüße
huetchen

xabbuh 20.04.2005 15:21:27

AW: Sendmail mit Radiobuttons
 
PHP-Code:

<?php
    
if(trim($_POST['email']) == '' && trim($_POST['telefon']) == '') {
        print 
'Sie haben weder E-Mail noch Telefonnummer angegeben.';
    }
?>


huetchen 20.04.2005 15:54:05

AW: Sendmail mit Radiobuttons
 
Hallo xabbuh,

das triffts leider nicht ganz, habe mich evtl. zu schwammig ausgedrückt. Ich konnte es auch nicht selber ändern, weil ich nicht weiß, was "trim" macht.

Die Telefonnummer ist praktisch nicht mehr nötig, wenn als Kontaktart Email gewählt wurde. Die Emailadresse ist auch nicht notwendig, wenn als Kontaktart Telefon gewählt wurde. Aber sie kann natürlich übermittelt werden, wenn sie trotz Kontaktart Telefon angegeben wurde.

Es müsste also einmal heißen:
print 'Sie wollen von angerufen werden. Sie haben aber leider keine Telefonnummer angegeben. Bitte ändern Sie das.

Oder:
Sie wollen eine Antwort per Mail von uns. Sie haben aber leider keine Emailadresse angegeben. Bitte ändern Sie das.

Das war jetzt ein bisschen präziser von mir.
Viele Grüße
huetchen

|Coding 20.04.2005 16:31:35

AW: Sendmail mit Radiobuttons
 
Hi,

zuerst einmal trim() entfernt Whitespaces (wie Leerzeichen, Tabulatoren...) am Anfang und am Ende eines Strings.

Damit auch das so funktioniert wie Du es dir vostellst, musst Du dein switch etwas umschreiben:

PHP-Code:

//...
switch($_POST['kontaktart']){ // oder bei method="get", eben $_GET['kontaktart'] 
    
case 'mail':
        if(empty(
trim($_POST['email']))){
            echo 
'Sie wollen eine Antwort per Mail von uns. 
                  Sie haben aber leider keine Emailadresse 
                  angegeben. Bitte ändern Sie das.'
;
            exit();
        }else{
            
$kontaktper 'MAIL - MICH - AN!'
        }
        break; 
    case 
'anruf':
        if(empty(
trim($_POST['telefon']))){
            echo 
'Sie wollen von angerufen werden. 
                  Sie haben aber leider keine Telefonnummer 
                  angegeben. Bitte ändern Sie das.'
;
            exit();
        }else{
            
$kontaktper 'RUF - MICH - AN!';
        }
        break; 
}
//... 

edit:
Das echo bzw. exit() kannst Du ja noch aus dem switch() auslagern (per Variable), wenn es an der Stelle etwas unglücklich steht.

huetchen 20.04.2005 17:26:28

AW: Sendmail mit Radiobuttons
 
Hallo,

leider hat das nicht geklappt. Also ich hab das so in mein Script reingeschrieben:

...

if ( $telefon == "") {
echo "$fehler"; //bekannter Text, der bereits definiert wurde
exit;
}

if(empty($_POST['kontaktart'])){
echo $kontaktartvergess; //bekannter Text
exit;
}
switch($_POST['kontaktart']){
case 'mail':
if(empty(trim($_POST['email']))){
echo 'Sie wollen eine Antwort per Mail von uns.
Sie haben aber leider keine Emailadresse
angegeben. Bitte ändern Sie das.';
exit();
}else{
$kontaktper = 'MAIL - MICH - AN!';
}
break;
case 'anruf':
if(empty(trim($_POST['telefon']))){
echo 'Sie wollen von angerufen werden.
Sie haben aber leider keine Telefonnummer
angegeben. Bitte ändern Sie das.';
exit();
}else{
$kontaktper = 'RUF - MICH - AN!';
}
break;
}

Da kommt aber folgende Meldung:

Parse error: parse error, expecting `T_VARIABLE' or `'$'' in /srv/www/htdocs/web15/html/formular1/0senddaten.php on line 63 = fettgedruckte Zeile oben

Das kommt jetzt immer, egal, was ich eintrage oder nicht eintrage. Das ganze Script funzt nimmer. Muss vor das telefon oder email noch ein $?

Viele Grüße
huetchen

|Coding 20.04.2005 17:40:56

AW: Sendmail mit Radiobuttons
 
Ich sehe da keinen Fehler, wie sieht denn der Rest vor diesem Scriptteil aus.

Ach und bitte benutze [php] und [/php ] (ohne das Leerzeiche) um deinen PHP-Code, dann wird er Farblich hervorgehoben und man kann alles besser erkennen.


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

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