User-1 am 24.06.06 13:28Hallo,
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
User-2 am 24.06.06 13:34Wie 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']);
User-1 am 24.06.06 13:37Also ich kenne mich mit Klasses nicht so aus, was muss ich hier machen?
$mail = new klassenname(... Parameter ...);
User-2 am 24.06.06 13:41Das 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
User-1 am 24.06.06 13:43Wie 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..
User-3 am 24.06.06 13:47Wenn 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..
User-1 am 24.06.06 13:58Mit 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.
User-4 am 24.06.06 14:07Quote
Original von xyz-145
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 ;)
User-1 am 24.06.06 14:52Also 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ä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
User-5 am 24.06.06 15:36sind das in zeile 2 wirklich konstanten?
User-6 am 25.06.06 08:44Quote
Original von xyz-27
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*
User-7 am 25.06.06 11:51und ersetz
implode("", file($file))
durch
file_get_conents($file)
in der zeile
$data = chunk_split(base64_encode(implode("", file($file))));
User-1 am 25.06.06 15:46Es 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
User-7 am 25.06.06 16:56dann hast du aber ein sehr altes php
User-1 am 25.06.06 19:41FRAGE: Wie mache ich das bei localhost ??
Das Downloaden der PHP Version, ok aber weiter??
User-3 am 25.06.06 20:20Schritt Nummero Zwei: PHP installieren 0_o
Ich frag mich echt, wofür es Dokumentationen gibt... :tired:
User-8 am 27.06.06 14:39weil es evtl. Leute gibt die es verstehen? :D