Willkommen in der Webstatt Zum Webstatt Blog und Stories
BNightSpeeder am 24.06.06 13:28

Hallo,

ich habe nen Mailer Formular, und ich verschicke die E-Mail so:

$mail->AddAddress("" . $_POST['to'] . "");
$mail->From = $_POST['from'];
$mail->Subject = $_POST['title'];
$mail->Body = $_POST['text'];
$mail->AddAttachment("".$_POST['data']."", "".$_POST['data']."");


Nur leider kommt dieser fehler:

Quote
Fatal error: Call to a member function on a non-object in C:\FoxServ\www\Re-Design\admin\page\mail.php on line 6


Zeile 6 ist die erste zeile im Code oben..

Kann mir jemand helfen??


Mfg. BNS

netcup.de Warum gibt es hier Werbung?
sili sili am 24.06.06 13:34

Wie wärs, wenn du die Klasse auch noch instanziieren würdest? ;)
$mail = new klassenname(... Parameter ...);

Und das ist ganz hässlich, erlichgesagt:
$mail->AddAttachment("".$_POST['data']."", "".$_POST['data']."");

Viel besser:
$mail->AddAttachment($_POST['data'], $_POST['data']);

BNightSpeeder am 24.06.06 13:37

Also ich kenne mich mit Klasses nicht so aus, was muss ich hier machen?

$mail = new klassenname(... Parameter ...);

sili sili am 24.06.06 13:41

Das erstellt ein Objekt deiner Klasse. Damit kannst du dann auf die Methoden (Funktionen) und Attribute (Variablen) zugreifen. Klassenname musst du natürlich durch den Namen deiner Klasse ersetzen. Versuche es einfach mal so:

$mail = new Klassenname;

Wenn das nicht geht, zeig uns deine Klasse.

Ansonsten wie immer: php.net

BNightSpeeder am 24.06.06 13:43

Wie gesagt ich kenne mich mit Klassen nicht aus, und weiß net mal was das ist, und ich habe auch keine in meinem Script, ich habe das mal in einem meiner PHP Bücher gefunden.. da stand aber nichts von einer Klasse..

milahu milahu am 24.06.06 13:47

Wenn du dich mit Klassen nicht auskennst, warum nimmst du sie dann her..?
Ist doch auch vieel schöner, die Mail eigenhändig und schön prozedual zusammenzuflicken und dann
einfach durch mail() zu jagen..

BNightSpeeder am 24.06.06 13:58

Mit mail sieht das so aus:

$empfaenger = $_POST['to'];
$betreff = $_POST['title'];
$nachricht = $_POST['text'];
$header = 'From: '.$_POST['from'].'' . "\r\n" .

mail($empfaenger, $betreff, $nachricht, $header);


Aber wie verschicke ich dan den Anhang, davon stand nichts in der php doc.

nuit nuit am 24.06.06 14:07

Quote
Original von milahu
Wenn du dich mit Klassen nicht auskennst, warum nimmst du sie dann her..?
Ist doch auch vieel schöner, die Mail eigenhändig und schön prozedual zusammenzuflicken und dann
einfach durch mail() zu jagen..

weil es mit klassen immer schöner ist ;)

genau so gehts...und wenn du nochnen Attachment anfügen willst ;) dann musste das im Header definieren *fg*

http://www.php4u.net/index.php?main=codeschnipsel&source=41

schöne funktion ;)

BNightSpeeder am 24.06.06 14:52

Also das ist mein ganzer code:

<?
if ($_GET['page'] == send || $_GET['page'] == SEND) {

//
//

mail_att($_POST['to'], $_POST['from'], $_POST['title'], $_POST['text'], $_POST['Anhang']);
?>
<table align="center" width="682" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="oben_links"></td>
<td id="oben_mitte"></td>
<td id="oben_rechts"></td>
</tr>
<tr valign="top">
<td id="mitte_links"></td>
<td id="mitte_mitte"><h2 align="center">Meldung</h2><br><div align="center">Die E-Mail wurde versand!</div></td>
<td id="mitte_rechts"></td>
</tr>
<tr>
<td id="unten_links"></td>
<td id="unten_mitte"></td>
<td id="unten_rechts"></td>
</tr>
</table><?
}

else {
?>
<form name="form" method="post" action="page.php?action=mail<? echo $end; ?>&page=send">
<table align="center" width="682" border="0" cellpadding="0" cellspacing="0">
<tr>
<td id="oben_links"></td>
<td id="oben_mitte"></td>
<td id="oben_rechts"></td>
</tr>
<tr valign="top">
<td id="mitte_links"></td>
<td id="mitte_mitte"><h2 align="center">E-Mail versenden</h2><table width="100%" border="0">
<tr>
<td width="150">Empf&auml;nger:</td>
<td><input type="text" name="to" size="70"></td>
</tr>
<tr>
<td>Absender:</td>
<td><input type="text" name="from" size="70"></td>
</tr>
<tr>
<td>Betreff:</td>
<td><input type="text" name="title" size="70"></td>
</tr>
<tr>
<td><hr class="hr"></td>
<td><hr class="hr"></td>
</tr>
<tr>
<td>Text:</td>
<td><textarea name="text" cols="70" rows="10"></textarea></td>
</tr>
<tr>
<td>Anhang:</td>
<td><input type="file" name="data" size="50"></td>
</tr>
<tr>
<td></td>
<td><input name="send" type="submit" value="Senden"></td>
</tr>
</table></td>
<td id="mitte_rechts"></td>
</tr>
<tr>
<td id="unten_links"></td>
<td id="unten_mitte"></td>
<td id="unten_rechts"></td>
</tr>
</table></form>
<? } ?>


Aber leider kommt es zu nem fehler beim Absenden:

Quote

Warning: file("") - No error in C:\FoxServ\www\Re-Design\admin\function.ini.php on line 77

Warning: Bad arguments to implode() in C:\FoxServ\www\Re-Design\admin\function.ini.php on line 77

Warning: Failed to Connect in C:\FoxServ\www\Re-Design\admin\function.ini.php on line 95

Franky Franky am 24.06.06 15:36

sind das in zeile 2 wirklich konstanten?

BNightSpeeder am 24.06.06 19:43

wie konstanten?

Franky Franky am 25.06.06 01:47

datda: http://de2.php.net/manual/de/function.define.php

Wasili am 25.06.06 08:44

Quote
Original von BNightSpeeder
wie konstanten?


if ($_GET['page'] == send || $_GET['page'] == SEND) {
Du hast da KOnstanten, meinst aber sehr wahrscheinlich Strings ;)

if (strtolower($_GET['page']) == 'send') {
So wolltest du es doch schreiben? *g*

Snake am 25.06.06 11:51

und ersetz
implode("", file($file))

durch
file_get_conents($file)
in der zeile
$data = chunk_split(base64_encode(implode("", file($file))));

BNightSpeeder am 25.06.06 14:54

Quote
Fatal error: Call to undefined function: file_get_conents() in C:\FoxServ\www\Re-Design\admin\function.ini.php on line 77

milahu milahu am 25.06.06 15:04

Typo: file_get_contents

Snake am 25.06.06 15:08

sorry :)

BNightSpeeder am 25.06.06 15:46

Es kommt weiter der Fehler:

Quote
Fatal error: Call to undefined function: file_get_contents() in C:\FoxServ\www\Re-Design\admin\function.ini.php on line 77

Snake am 25.06.06 16:56

dann hast du aber ein sehr altes php

BNightSpeeder am 25.06.06 17:33

4.2.2.

Snake am 25.06.06 18:35

aua...dringend updaten!

BNightSpeeder am 25.06.06 19:41

FRAGE: Wie mache ich das bei localhost ??
Das Downloaden der PHP Version, ok aber weiter??

milahu milahu am 25.06.06 20:20

Schritt Nummero Zwei: PHP installieren 0_o
Ich frag mich echt, wofür es Dokumentationen gibt... :tired:

Kevz am 27.06.06 14:39

weil es evtl. Leute gibt die es verstehen? :D

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt