Willkommen in der Webstatt
User-1 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?
User-2 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']);

User-1 am 24.06.06 13:37

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

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

User-2 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

User-1 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..

User-3 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..

User-1 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.

User-4 am 24.06.06 14:07

Quote
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: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

User-5 am 24.06.06 15:36

sind das in zeile 2 wirklich konstanten?

User-1 am 24.06.06 19:43

wie konstanten?

User-5 am 25.06.06 01:47

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

User-6 am 25.06.06 08:44

Quote
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:51

und 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 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

User-3 am 25.06.06 15:04

Typo: file_get_contents

User-7 am 25.06.06 15:08

sorry :)

User-1 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

User-7 am 25.06.06 16:56

dann hast du aber ein sehr altes php

User-1 am 25.06.06 17:33

4.2.2.

User-7 am 25.06.06 18:35

aua...dringend updaten!

User-1 am 25.06.06 19:41

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

User-3 am 25.06.06 20:20

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

User-8 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