php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.08.2005, 13:19  
Gast
 
Beiträge: n/a
Standard PHP Script wird sofort ausgeführt

Hallo, ich habe eine php seite programmiert in der eine mail verschickt wird. Es ist ein Formular darauf und ein Bild upload.
DAs Problem ist nun dass die email schon verschickt wird wenn die seite aufgerufen wird, nicht erst wenn ich auf submit klicke.
Das liegt wahrscheinlich daran dass der php code nicht in eine externe Datei ausgelagert ist. Das will ich auch nicht machen, was kann ich also tun um dieses Problem zu beheben?

Danke
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.08.2005, 13:21  
Gast
 
Beiträge: n/a
Standard

Dann zeig doch mal den wesentlichen Teil der Seite; wahrscheinlich liegt es daran, dass das Script ausgelagert werden muss und Du es dann als Action im Form-Tag definieren solltest, also

<form action="schickmichab.php" method="post">
 
Alt 01.08.2005, 13:28  
Gast
 
Beiträge: n/a
Standard

<?php
$fmtResponse= implode("", file("response.htt"));
$fmtMail= implode("", file("mail.htt"));
foreach($HTTP_POST_VARS as $key=> $val) {
$fmtResponse= str_replace("<$key>", $val, $fmtResponse);
$fmtMail= str_replace("<$key>", $val, $fmtMail);
}
?>
<?php

$an= "???"; /*Adresse des Emailempfänger hier eintragen*/
$von= "Kontaktformular 1888"; /*Sender von dem die Email ausgeht in unserem Falle das Formular*/
$mail_content= $fmtMail; /*Der schriftliche Mail Inhalt*/
$subject= "1888 Online Formular"; /*Die Email Betreffzeile*/
$dateiname= "bewerbungsfoto1888.jpeg"; /*Der Dateiname des eingefügten Bildes max.72 zeichen lang*/
$content_type= "text/html"; /*Gibt die Email formatierung an in unserem Fall HTML*/
$anhang_content_type= "image/jpeg"; /*Gibt die Art des Anhangs an hier JPEG, wichtig es können somit nur JPEG´s versendet werden*/

/* pruefe, ob ein Absender und ein Mail-Inhalt eingegeben wurde */
if($von && $mail_content) {

/* Beginne den Mail-Header mit der Definition des Absenders */
$mail_header = "From: $von";

/* Wenn eine Datei als Anhang ausgewaelt wurde... */
if($anhang=="Werbespot" && $dateiname && $datei && $datei != "none") {

/* Lese die temporaere Datei, die der Benutzer hochgeladen hat aus */
$datei_content = fread(fopen($datei,"r"),filesize($datei));

/* Codiere Datei ins BASE64-Format, falls noetig */
if($contenttypes[$anhang_content_type][encoding]=="base64") $datei_content = chunk_split(base64_encode($datei_content));
else $datei_content = $datei_content;

/* Generiere einen Boundary */
$boundary = strtoupper(md5(uniqid(time())));

/* Beginne den Mail-Header mit MIME-Mail-Header */
$mail_header .= "\nMIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";

/* Hier faengt der normale Mail-Text an */
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: $content_type";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$mail_content";

/* Hier faengt der Datei-Anhang an */
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: $anhang_content_type; name=\"$dateiname\"";
/* Lese aus dem Array $contenttypes die Codierung fuer den MIME-Typ des Anhangs aus */
$mail_header .= "\nContent-Transfer-Encoding: ".$contenttypes[$anhang_content_type][encoding];
$mail_header .= "\nContent-Disposition: attachment; filename=\"$dateiname\"";
$mail_header .= "\n\n$datei_content";

/* Gibt das Ende der eMail aus */
$mail_header .= "\n--$boundary--";
} else {
$mail_header .= "\nContent-Type: $content_type";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n".$mail_content;
}

/* Sende eMail und gebe Fehler bzw. Bestaetigung aus */
if(@mail($an,$subject,"",$mail_header))
echo $fmtResponse;
else
echo "Es ist ein Fehler beim senden der eMail aufgetreten.";
} else {
}
?>

so das ist das wesentliche php script, weiter oben ist das formular...
 
Alt 01.08.2005, 13:45  
Erfahrener Benutzer
 
Registriert seit: 09.05.2005
Beiträge: 193
akratellio
Standard

hallo Jazzid,

warum sollte die mailfunktion auch nicht ausgeführt werden?
alle anforderungen sind, nach meiner ansicht, erfüllt.

mfg

akatellio
__________________
"Ich lüge immer..."
http://www.akratellio.de/dai
akratellio ist offline  
Alt 01.08.2005, 13:47  
Erfahrener Benutzer
 
Registriert seit: 30.07.2005
Beiträge: 142
jesus666
Standard

Nun überprüfe ob das formular abgeschikt wird und nur dann soll die mail auch wirklich gesendet werden.
PHP-Code:
<?php

if(isset($submit)) // nur wenn die seite über den button submit aufgerufen wurde dann mach-->
{
  if(@
mail($an,$subject,"",$mail_header)) 
echo 
$fmtResponse
else 
echo 
"Es ist ein Fehler beim senden der eMail aufgetreten."
} else { 

}
?>
jesus666 ist offline  
Alt 01.08.2005, 15:27  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

Register GLobals!
PHP-Code:
<?php
if(isset($_POST['submit'])) { .....
?>
Chr!s ist offline  
Alt 02.08.2005, 11:56  
Gast
 
Beiträge: n/a
Standard

ok, wenn ich das script jetzt doch auslagern will, muss ich dann variablen übergeben? oder kann ich einfach den php code in ne andere Datei stecken?
Wie übergebe ich die Variablen?
Danke
 
Alt 02.08.2005, 12:50  
Erfahrener Benutzer
 
Registriert seit: 30.07.2005
Beiträge: 142
jesus666
Standard

Variablen die in ein Formular element input eingegeben werden oder über hidden declariert sind.
Werden an die datei übergeben welche im form tag bei action angegeben wird :
beisspiel:
PHP-Code:
<?php
<form action="neuedatei.php" methode="post" name="testformular">
<
input name="variable1" >
<
input type="hidden" name="steuervariable" value="5">
<
submit value="abschicken">
?>
Hier wird bei klicken des submitbuttons die datei neuedatei.php aufgerufen und die variablen: $variable1 und $steuervariable übergeben wobei die $steuervariable den wert 5 fix zugewiesen bekommen hat und $variable1 jeh nach eingabe des users.
jesus666 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Diverses aus meinem Apache Logs robo47 Server, Hosting und Workstations 5 25.05.2007 22:45
Script beendet sich ohne Fehlermeldung Zahl PHP Tipps 2006 6 04.06.2006 20:41
Suche coder für script infiltrate Trash 7 27.03.2006 08:42
passwort script problem PHP Tipps 2006 8 15.02.2006 10:30
Gesuch / Einladung: PHP - Anti-Spam Script SvenLittkowski Trash 7 14.01.2006 03:38
[Erledigt] php script und ixed PHP Tipps 2005-2 14 12.10.2005 13:34
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
[Erledigt] Hilfe bei Download Verwaltungs Script PHP Tipps 2005 8 04.05.2005 10:29
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
Ganze Objekte an Script weitergeben dreamingof8a PHP Tipps 2004-2 6 23.11.2004 12:17
python script mit php aufrufen... PHP-Fortgeschrittene 1 17.11.2004 17:11
PHP Script aus PHP aufrufen Stümper PHP Tipps 2004 5 26.09.2004 08:15
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php script wird nicht sofort ausgeführt

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.