TweakPC

Zurück   Computer Hardware Forum - TweakPC > Games und Software > Programmiersprachen
Registrieren Hilfe Community Downloads

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27.12.2004, 13:16   #1 (permalink)
Overclocker
 
Benutzerbild von LeoHart
 

Registriert seit: 18.04.2004
Beiträge: 292

LeoHart befindet sich auf einem aufstrebenden Ast

Standard mailer in php ?!

Hallo,
wollte einen mailer programmieren doch leider habe ich kaum Erfahrung in php deswegen hab ich mal im Internet nach einen fertigen gesucht und den dann versucht um zuschreibein. Das sieht dann so aus -->
Code:
<html>
<head>
<title>Kontakt-Formular</title>
</head>
<body>

<?php
echo $abschicken;
if($abschicken == "Absenden")
{
   if(empty($nick) || empty($name) || empty($alt) || empty($geschlecht ||empty($ort) || empty($land) || empty($mail) || empty($icq) || empty($page) || empty($inet) || empty($clans))
   {
      echo "Es wurden nicht alle Felder ordnungsgemäß ausgefüllt. Bitte kehren Sie zurück und vervollständigen Sie Ihre Angaben!";
   }
   else
   {
      while(list($feld,$wert)=each($HTTP_POST_VARS))
      {
         if($feld!="abschicken")
         {
            $mailnachricht.=ucfirst($feld).": $wert\n";
         }
      }
      $mailnachricht.="\nDatum/Zeit: ";
      $mailnachricht.=date("d.m.Y H:i:s");
      $mailbetreff="JoinUS: ";
      $mailbetreff.=$HTTP_POST_VARS[betreff];
      mail("leo14@uboot.com", $mailbetreff, $mailnachricht, "From: $email");
      echo "Ihre Anfrage wird bearbeitet!";
   }
}
else
{
   echo "Ein Fehler ist aufgetreten.";
}

?>

</body>
</html>
Leider weiß ich nicht ganz was die Werte $feld und $wert bedeuten sollen . Oder kann mir einer erklären wie was funktioniert.

Danke
LeoHart ist offline   Mit Zitat antworten
Alt 30.12.2004, 23:59   #2 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: mailer in php ?!

sind variablen in php, das ding sieht auch etwas unvollständig aus - da sollte nochwas dazugehören
tele ist offline   Mit Zitat antworten
Alt 31.12.2004, 14:37   #3 (permalink)
Overclocker
 
Benutzerbild von LeoHart
 

Registriert seit: 18.04.2004
Beiträge: 292

LeoHart befindet sich auf einem aufstrebenden Ast

Standard AW: mailer in php ?!

Ich weiß es nicht,hab nun mal keine Erfahrung in php deswegen auch meine Frage
LeoHart ist offline   Mit Zitat antworten
Alt 01.01.2005, 19:18   #4 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: mailer in php ?!

einen mailer in php selbst zu schreiben ist eigentlich kein problem,

du solltest mal eine testumgebung installieren (z.b. ne vollintegrierte apachefriends version) da kannste dann n paar php skripte erstellen.

1. mal ein wenig mit input von html formularen rumspielen
2. den input an php variablen übergeben
3. die referenz auf php.net nach der funktion mail() befragen
4. lösung implementieren


5. ggf. nochmal hier zu spieziellen probs. nachfragen
tele ist offline   Mit Zitat antworten
Alt 05.01.2005, 16:16   #5 (permalink)
Overclocker
 
Benutzerbild von LeoHart
 

Registriert seit: 18.04.2004
Beiträge: 292

LeoHart befindet sich auf einem aufstrebenden Ast

Standard AW: mailer in php ?!

Kann mir einer die Befehle zeigen wie man Überprüfen kann ob etwas in den Feldern drinne steht und dann eben die passende Antwort bekommt?!
Und wie kann z.B wenn ein Formular gesendet worden ist und nach dem die Nachrichtkam Erfolgreich das der nach 2sec wieder auf die Startseite geht?!

Danke für die Hilfe
LeoHart ist offline   Mit Zitat antworten
Alt 05.01.2005, 16:27   #6 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: mailer in php ?!

wenn du ein formular hast (in html)

<input type=text name=eingabefeld1>

dann wird das was hinter name steht, also eingabefeld1 eine variable in php, auf die du zugreifen kannst. solltest du register_globals off haben so geht das einfach mit

$eingabefeld1

wenn register_globals on sind musst du

$_POST['eingabefeld1']

benutzen ($_POST ist ein superglobales array für sachen die mit der POST methode übertragen worden sind, was bei formularen standard sein sollte)

nun brauchst du nur noch zu prüfen ob in der variable auch wirklich was drinsteht bzw. ob die existiert

(im folgenden gehe ich davon aus, dass register_globals on sind)

if(!$_POST['eingabefeld1'] || $_POST['eingabefeld1'] == null)


was dann damit passieren soll ist deine sache bzw. kannst du das ausgeben was drinne ist

echo "im eingabefeld \"eingabefeld1\" wurde $_POST['eingabefeld1'] eignegeben";

oder halt sonstwas damit machen.



ich hoffe ich konnte dir weiterhelfen.
sollte etwas von dem obigen nicht gehen sg einfach nochmal bescheid - ich habs nicht getestet


gruß tele
tele ist offline   Mit Zitat antworten
Alt 05.01.2005, 19:09   #7 (permalink)
Extrem Performer
 
Benutzerbild von HyperY2K
 

Registriert seit: 12.12.2003
Beiträge: 1.009

HyperY2K sorgt für eine eindrucksvolle AtmosphäreHyperY2K sorgt für eine eindrucksvolle Atmosphäre

Standard AW: mailer in php ?!

hier mal ein konkretes Code-bsp.:

Code:
<?php
//php beginn

// die von tele erwähnten Post-variablen...
$mail_receiver = $HTTP_POST_VARS['mail_receiver'];
$mail_input = $HTTP_POST_VARS['mail_input'];
$mailing = $HTTP_POST_VARS['sendmail'];
$sendmail = $HTTP_POST_VARS['sendmail'];
// springe aus php
?>
<html>
      <head>
            <title> Mailing in php </title>
      </head>
      <body>
            <table width=100%>
     

<?php 
// php beginnt...

// Funktion zum Einlesen der Daten...
function mailInput()
{
	global $mail_receiver,$fn_user;
	//voreingestellte Mailempfänger ...
	$mail_receiver= "xxx@yyy.de, xxxx@web.de";
	// der eigentliche text
        $body = "Für xxxxx\n";
        $body .= ".....\n\n";
        $body .= "Datum: ".date("d.m.Y, H:i:s")." Uhr\n";
        ?>  
        <form action="<?echo $SELFNAME ?>" method="post" align="center">
              <table>
                      <tr>
                              <td>
					<input type="text" size="70" maxsize="70" 
                                          name="mail_receiver" class="input" 
                                          value="<?echo $mail_receiver ?>">
			      </td>
		      </tr>
		      <tr>
		      	      <td>
                                        <textarea cols="150" rows="9" 
                                          name="mail_input"><?echo $body ?>
                                        </textarea>
			      </td>
                      </tr>
                      <tr>
                              <td>
                                        <input type="Submit" value="Mail schicken ..."
                                          name="sendmail" class="button">
                              </td>
                      </tr>

                </table>
        </form>
        <?php
}
// die Funktion die die Daten von der mailInput-Funktion nimmt und die Mail schickt
function sendMail()
{
	global $mail_receiver,$mail_input;
        echo 'Mail wurde an '.$mail_receiver.' verschickt...<br><br>';
        // subject kann auch noch in eine Form ausgelagert werden...
        $subject = "MAIL";
        @mail($mail_receiver, $subject, $mail_input, "From: $mail_receiver");
}

if (isset($mail_receiver) && isset($mail_input))
{
    // wenn link geklingt mit der GET-Variablen...
    if ($_GET['action']=='mail')
    {
          mailInput(); // Eingabe der Daten für die Mail
    }
    else
        if(isset($sendmail))
        {
        	sendmail(); //eigentliche Mail schicken
        }
}
else
{
       echo "STARTSEITE...";
       echo "<a href=\"$SELFNAME?action=mail<b>Mail schicken ...</b></a>";

}
?>
            </table>
        </body>
</html>
müsste eigentlich gehen..
HyperY2K ist offline   Mit Zitat antworten
Alt 05.01.2005, 20:11   #8 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: mailer in php ?!

ich wollte eigentlich keinen kompletten code posten aber egal,


hier mal nochn paar anmerkungen, falls du dich wunderst:
  • $_POST und $HTTP_POST_VARS sind effektiv das gleiche genauso wie
    $_GET und $HTTP_GET_VARS, nur dass der zweite name eigentlich veraltet ist
  • das @ vor einer funktion (z.b. bei @mail()) unterdrückt einfach nur eine eventuelle fehlermeldung
  • das komische .= müsste eioentlich den string nur dem weiter oben gesetzten anfügen
  • nein, ein mailer muss nicht immer so kompliziert geschrieben werden

viel Spass beim selber coden,

tele
tele ist offline   Mit Zitat antworten
Alt 06.01.2005, 21:25   #9 (permalink)
Overclocker
 
Benutzerbild von LeoHart
 

Registriert seit: 18.04.2004
Beiträge: 292

LeoHart befindet sich auf einem aufstrebenden Ast

Standard AW: mailer in php ?!

Ehm kurze Frage,muss das html Formular auch den php mailer enthalten wie oben. Dachte eigentlich das zuerst das Formular aufgerufen wird dann werden die daten an den php.mailer geschickt mit action="mailer.php" z.B. Oder hab ich was falsch verstanden?!
LeoHart ist offline   Mit Zitat antworten
Alt 06.01.2005, 21:58   #10 (permalink)
Polsterwaffenkampfsportle r
 
Benutzerbild von tele
 

Registriert seit: 29.10.2003
Beiträge: 14.561

tele hat eine strahlende Zukunft
tele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunfttele hat eine strahlende Zukunft

Standard AW: mailer in php ?!

also prinzipiell kann beides getrennt sein, z.b. du hast eine .html file die das formular enthält und die das dann in <form action=mailer.php> dem mailer übergibt.

Wir beide schreiben mittlerweile das formular mit in den PHP text, da man so viel flexiblere seiten aufbauen kann, z.b. mit verschiedenen sprachen oder dynamischen inhalten für verschiedene user.


falls es dich interessiert hier noch ein kleines code example von einem mailer, der imho etwas simpler aufgebaut ist:


Code:
<?php
include("meinebliothek.php");  
$set_mail=$HTTP_POST_VARS['set_mail'];
$an="andreas@knuffelhaeschen.gotdns.com";

//--------entweder mailen oder mailformular---------------------------------------------------
my_header2($_SERVER['PHP_SELF']);

if($set_mail==1)
{
	// mail an den webmaster
        mail($an, $betr, $nachricht,"From:".$abs);

	// Empfangsbestätigung an den user
	//$nachricht= "Sie haben eine Kontaktaufnahme zu Knuffelhaeschen vollzogen,
	//	     dabei haben Sie folgende NAchricht übersendet:<br><br>".$nachricht;
 	mail($abs, $betr, $nachricht, "From:".$an);
	echo '<p align=\"center\">Vielen Dank, Ihre E-Mail wurde an den Webmaster weitergeleitet. Wir werden Ihre Anfrage so schnell wie möglich bearbeiten.</p>';
 	$set_mail=0;
}

else
{
        ?>
	<body onload="setfocus_form_mail()">
        <form name=form_mail action=<?php echo $scrname; ?> method=post onSubmit="return chk_form_mail()">
        <table class=cont style="width:50%">
         <tr>
		<td rowspan =5 width=20>&nbsp;</td>
                <td><?php echo $co_fld_to; ?></td>
		<td>Webmaster</td>
	 </tr>
	 <tr>
		<td><?php echo $co_fld_from; ?></td>
		<td><input type=text size=30 name=abs></td>
	 </tr>
         <tr>
		<td width=50><?php echo $co_fld_subject; ?></td>
		<td><input type=text name=betr size=30></td>
	 </tr>
         <tr>
		<td style="vertical-align:top"><br><?php echo $co_fld_message; ?></td>
		<td><textarea name=nachricht cols=30 rows=10></textarea></td>
	 </tr>
         <tr>
		<td colspan=2 align=center>
					<input type=hidden value=1 name=set_mail>
					<input type=submit class=button value="<?php echo $co_fld_send; ?>">
		</td>
	 </tr>
        </table>
	</form>
	<?php
}
my_footer2();
?>
Das prinzip ist einfach - mit dem Formular setzt du die variable $set_mail, welche dann die verarbeitung auslöst

Ich habe den php code vor den html code geschoben, da ich das für weitere sache wie sessions und header kontrollen benötige und es so einfacher geht.

wie du siehst hat der user keine möglichkeit die zieladresse anzugeben - der mailer ist nur für den einsatz als kontaktformular auf webseiten gedacht.


hoffe das konnte helfen


gruß

tele


PS: ist mir grad noch aufgefallen - die my_header() und my_footer() sind funktionen in denen der kopf und fuß der html seite dargestellt wird und dann einfach aufgerufen wird, so brauch ich nicht die komplette seite in jeder php datei neu coden. Die funktionen werden in der datei deklariert die in include() steht

Geändert von tele (06.01.2005 um 22:01 Uhr)
tele ist offline   Mit Zitat antworten
Antwort

Stichworte
mailer, php


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an



Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr.






Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.
Impressum, Datenschutz Copyright © 1999-2015 TweakPC, Alle Rechte vorbehalten, all rights reserved