ausgeführte .php datei mit fpdf, soll sich selbst per mail v

Alles andere zum Thema FPDF und PDF Format
Kowkase
Benutzer
Beiträge: 17
Registriert: Do 20. Jul 2006, 14:59

Beitragvon Kowkase » Di 25. Jul 2006, 15:28

hmm, er mosert irgendwas in Zeile 36 rum

Code: Alles auswählen

Parse error: parse error, unexpected '[', expecting ')' in /var/www/web21/html/test/function-1.php on line 36


erst dachte ich es sei wegen des Semikolons am Ende und habe das weggemacht und dafür die Klammer geschlossen, war's dann aber leider doch nicht.

Kowkase
Benutzer
Beiträge: 17
Registriert: Do 20. Jul 2006, 14:59

Beitragvon Kowkase » Mi 26. Jul 2006, 07:53

tschuldigung das ich schon wieder nerve, aber könntest Du Dein Script nicht dochmal kurz testen?

Deine Unterstützung ist wirklich beispeilhaft, und ich werde das Ergebnis Deiner Arbeit und auch dieses Forum in anderen Foren entsprechend präsent machen. Es ist wirklich Klasse, dass Du sogar umfangreiche Kommentare reingepackt hast, aufdass auch Blondi langsam versteht worum's geht :-)

Was allerdings die Fehlermeldung angeht, da komm ich halt einfach nicht weiter ...

f.mue.ks
Benutzer
Beiträge: 13
Registriert: Di 30. Aug 2005, 08:08

Beitragvon f.mue.ks » Mi 26. Jul 2006, 08:25

Die Meldung sagt aus das in der Line 36 ein ) fehlt.
Habe ich nun angefügt und das Script noch mit einer
Rückmeldung versehen.

Bitte schön :


<html>
<head>
<title>E-mail mit Anhang</title>
<body>
<form name="form1" method="post" >
<input name="Empfaenger" type="text" id="an" value="frank9.bauer@volkswagen.de">
<input type="submit" name="Submit" value="Abschicken">
</form>

<?

# Beim drücken des Submit buttons, wird die Seite neu geladen
# und die Daten werden an PHP in die Variable $_POST übergeben, da die Methode Post gewählt wurde.
# Wurde die Methode Get gewählt so stehen die Daten in dem Array $_GET
# Ansprechen kann ich den jeweiligen Wert mit dem Namen des Formular Feldes
# $_POST['Empfaenger'] Liefert mir den Wert aus dem Feld Empfaenger
# Möchte man nun beim Aufruf der Seite prüfen, ob der User das Formular abgesendet hat
# so prüfen wir es einfach.

# Drückt der User den Submit button so passiert folgendes.
# Unter den Namen des Submit button wird ein Wert der unter Value ist mit über
# die Post Variablen gesendet.
# Diese kann ich genauso wie die anderen Variablen abfragen

if ($_POST[Submit] == "Abschicken"){
# Da der user nun submit betätigt hat, prüfen wir natürlich,
# ob der Inhalt der Variablen Empfaenger mind 2 zeichen hat

if (strlen($_POST[Empfaenger]) > 1){
# Ok Das Stimmt auch man kann natürlich die eMail Adresse validieren,
# dazu gibt es aber genügend tuts im Netz

# Wir wären jetzt soweit, die Mail zu versenden.
# Dazu rufen wir unsere tolle Funktion auf.


# Prüfen ob datei exestiert

$Dateiname ="phpinfo.php";

if(file_exists($Dateiname)){

Mail_Anhang($_POST[Empfaenger],"Der Betreff","Die Nachricht", $Dateiname, $Dateiname);
$Message = "Mail wurde versendet.";
}
else
{
$Message = "Mail wurde nicht versendet, da die Datei nicht gefunden wurde.";
}

Echo $Message;



# Nun wird die Mail an den Empfaenger gesendet.
#Dabei wird die Datei ./test.pdf aus dem gleichen verzeichniss geladen
# und mit versendet.
# Das Email Programm zeigt dann den Dateinamen test.pdf an.

}


}


Function Mail_Anhang($Empfaenger,$Betreff,$Nachricht,$Datei,$Dateiname = "test.zip"){

$grenze="grenzlinie";
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: Elektronisches Schichtbuch\n";
$headers.="Content-Type: multipart/related;\n\tboundary=$grenze\n";
$botschaft.="=\n--$grenze\n";
$botschaft.="Content-transfer-encoding: 8BIT\r\n";
$botschaft.="Content-type: text/html\n\n";
$botschaft.= $Nachricht;
$botschaft.="\n\n";


if (strlen($Datei) > "1"){
$botschaft.="\n--$grenze\n";
$botschaft.="Content-Type: application/octetstream;\n\tname=".$Dateiname."\n";
$botschaft.="Content-Transfer-Encoding: base64\n";
$botschaft.="Content-ID: <bild_$i>\n";
$botschaft.="Content-Disposition: attachment;\n\tfilename=".$Dateiname."\n\n";
$zeiger_auf_datei=fopen($Datei,"rb");
$inhalt_der_datei=fread($zeiger_auf_datei,filesize($Datei));
fclose($zeiger_auf_datei);
$inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
$botschaft.=$inhalt_der_datei;
$botschaft.="\n\n";
}


$botschaft.="--$grenze";

mail($Empfaenger,$Betreff,$botschaft,$headers);

return "true";

}



?>

f.mue.ks
Benutzer
Beiträge: 13
Registriert: Di 30. Aug 2005, 08:08

Beitragvon f.mue.ks » Mi 26. Jul 2006, 08:27

Kein Problem stand auch mal am anfang :-))

Kowkase
Benutzer
Beiträge: 17
Registriert: Do 20. Jul 2006, 14:59

Beitragvon Kowkase » Mi 26. Jul 2006, 13:07

<Haare_rauf>

oh mann und ich dachte ich hätte alle möglichen Varianten durchprobiert. Eine Fehlermeldung lesen kann ich schließlich auch :-)

</Harre_rauf>

Hey Frank, Du bist der Gößte, nun sieht alles schick aus und funzt. Ich hatte in einem anderen Forum auch schonmal nachgefragt, dort werde ich nun das Ergebnis mit dem Link hierher posten.

Suuper Sache man. Auf jeden Fall habe ich in den letzten Tagen ne Menge über MIME gelernt und werd da auf jeden Fall dran bleiben.

LG und nen klimatisiertes Büro

Kowkase

f.mue.ks
Benutzer
Beiträge: 13
Registriert: Di 30. Aug 2005, 08:08

Beitragvon f.mue.ks » Mi 26. Jul 2006, 13:12

Kein problem.

Nix Klima Ventilator läuft auf Hochtouren.

Kowkase
Benutzer
Beiträge: 17
Registriert: Do 20. Jul 2006, 14:59

Beitragvon Kowkase » Mi 26. Jul 2006, 14:11

na dann bete das er durchhält ...

ähm, dadurch, dass der mailempfänger immer der Gleiche ist wollte ich eigentlich die Adresse fest hinterlegen. Daher habe ich versucht via:

Code: Alles auswählen

$Empfaenger = "peter-1000@gmx.de";

den Empfaenger fest zu definieren und daher dann auch in der "tollen Function" den Code von

Code: Alles auswählen

Mail_Anhang($_POST[Empfaenger],"Der Betreff","Die Nachricht", $Dateiname, $Dateiname);


in

Code: Alles auswählen

Mail_Anhang($Empfaenger,"Der Betreff","Die Nachricht", $Dateiname, $Dateiname);

geändet. Leider imponiert das dem Script recht wenig.Du weißt doch bestimmt an welcher Stelle da der Haase im liegen am pfeffern ist .

f.mue.ks
Benutzer
Beiträge: 13
Registriert: Di 30. Aug 2005, 08:08

Beitragvon f.mue.ks » Mi 26. Jul 2006, 14:23

Sehe da jetzt auch keinen Fehler !
Sollte dann gehen.

Poste nochmal den ganzen Code.

PS :

unter

$headers.="From: Elektronisches Schichtbuch\n";
Kannst du den Absender ändern.

Kowkase
Benutzer
Beiträge: 17
Registriert: Do 20. Jul 2006, 14:59

Beitragvon Kowkase » Mi 26. Jul 2006, 14:37

Code: Alles auswählen

<?PHP #ab hier kommt die Mailgeschichte

$Empfaenger = "peter-1000@gmx.de";

# Beim drücken des Submit buttons, wird die Seite neu geladen
# und die Daten werden an PHP in die Variable $_POST übergeben, da die Methode Post gewählt wurde.
# Wurde die Methode Get gewählt so stehen die Daten in dem Array $_GET
# Ansprechen kann ich den jeweiligen Wert mit dem Namen des Formular Feldes
# $_POST['Empfaenger'] Liefert mir den Wert aus dem Feld Empfaenger
# Möchte man nun beim Aufruf der Seite prüfen, ob der User das Formular abgesendet hat
# so prüfen wir es einfach.

# Drückt der User den Submit button so passiert folgendes.
# Unter den Namen des Submit button wird ein Wert der unter Value ist mit über
# die Post Variablen gesendet.
# Diese kann ich genauso wie die anderen Variablen abfragen

if ($_POST[Submit] == "Abschicken"){
# Da der user nun submit betätigt hat, prüfen wir natürlich,
# ob der Inhalt der Variablen Empfaenger mind 2 zeichen hat

if (strlen($_POST[Empfaenger]) > 1){
# Ok Das Stimmt auch man kann natürlich die eMail Adresse validieren,
# dazu gibt es aber genügend tuts im Netz

# Wir wären jetzt soweit, die Mail zu versenden.
# Dazu rufen wir unsere tolle Funktion auf.


# Prüfen ob datei exestiert

# diese Variable wird aus dem PHP-Fomular übergeben
$Dateiname = $_POST[name];

if(file_exists($Dateiname)){

Mail_Anhang($Empfaenger,"Der Betreff","Die Nachricht", $Dateiname, $Dateiname);
$Message = "Mail wurde versendet.";
}
else
{
$Message = "Mail wurde nicht versendet, da die Datei nicht gefunden wurde.";
}

Echo $Message;



# Nun wird die Mail an den Empfaenger gesendet.
#Dabei wird die Datei ./test.pdf aus dem gleichen verzeichniss geladen
# und mit versendet.
# Das Email Programm zeigt dann den Dateinamen test.pdf an.

}


}


Function Mail_Anhang($Empfaenger,$Betreff,$Nachricht,$Datei,$Dateiname = " "){

$grenze="grenzlinie";
$headers ="MIME-Version: 1.0\r\n";
$headers.="From: der tolle Absender\n";
$headers.="Content-Type: multipart/related;\n\tboundary=$grenze\n";
$botschaft.="[I][/I]=\n--$grenze\n";
$botschaft.="Content-transfer-encoding: 8BIT\r\n";
$botschaft.="Content-type: text/html\n\n";
$botschaft.= $Nachricht;
$botschaft.="\n\n";


if (strlen($Datei) > "1"){
$botschaft.="\n--$grenze\n";
$botschaft.="Content-Type: application/octetstream;\n\tname=".$Dateiname."\n";
$botschaft.="Content-Transfer-Encoding: base64\n";
$botschaft.="Content-ID: <bild_$i>\n";
$botschaft.="Content-Disposition: attachment;\n\tfilename=".$Dateiname."\n\n";
$zeiger_auf_datei=fopen($Datei,"rb");
$inhalt_der_datei=fread($zeiger_auf_datei,filesize($Datei));
fclose($zeiger_auf_datei);
$inhalt_der_datei=chunk_split(base64_encode($inhalt_der_datei));
$botschaft.=$inhalt_der_datei;
$botschaft.="\n\n";
}


$botschaft.="--$grenze";

mail($Empfaenger,$Betreff,$botschaft,$headers);

return "true";

}



?>


ach ja, vielleicht ist das auch ein Grund: ähm, beim abspeichern des Dukumentes wird zwar ein Name vergeben, eben jender der aus dem Anmeldeformular kommt, aber kein Dateityp.
!

Code: Alles auswählen

$pdf->Output( $_POST['name']);


Da bei MIME der jedoch hinterlegt werden muss könnte das vielleicht ein Ansatz sein?

f.mue.ks
Benutzer
Beiträge: 13
Registriert: Di 30. Aug 2005, 08:08

Beitragvon f.mue.ks » Mi 26. Jul 2006, 14:51

Ist doch ganz einfach !!

Du willst die EMail Adresse nicht mehr mittels Post übergeben,
sondern in einer Variablen fest vorgeben.

Soweit hast du das ja schon richtig gemacht.

Gehe ich richtig davon aus, das die Mail nicht versendet wird ??

Das liegt an folgenden :

Du prüfst , ob in der Übergebenen Variablen $_POST was drin steht.
Ist das der Fall, so kann die Mail versendet werden.

if (strlen($_POST[Empfaenger]) > 1){

Da du ja keine $_POST[Empf-... bekommst,
mußt du natürlich diesen part auch ändern, sonst
wird der Aufruf nie gestartet !!!

also =>

if (strlen($Empfaenger) >1 ){

Und hab ich recht ?? :-))


Zurück zu „Sonstiges“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste