Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FUnkcja mail a załączniki - problem
Forum PHP.pl > Forum > PHP
saydack
Mam problem z wysyłaniem mail ze strony z załącznikami - proszę bardzo o pomoc w zlokazlizowaniu problemu

wyskakuje mi [function.fopen]: failed to open stream: No such file or directory
w linii z fopen

[php]
<?php




// sprawdzamy, czy zmienna $submit jest pusta
if (empty($_POST['submit'])) {
// wy¶wietlamy formularz
echo "<table border=\"0\"><form method=\"post\">

<tr>
<td width=\"150\">Imię i Nazwisko *</td>
<td><input type=\"text\" name=\"imie\" style=\"width: 350px\"></td>
</tr>
<tr>
<td>Adres e-mail *</td>
<td><input type=\"text\" name=\"email\" style=\"width: 350px\"></td>
</tr>
<tr>
<td>Telefon (np. 606123123) *</td>
<td><input type=\"text\" name=\"telefon\" style=\"width: 350px\" size=\"9\" maxlength=\"9\"></td>
</tr>
<tr>
<td>Rekrutacja na stanowisko: *</td>
<td> <SELECT name=\"temat\">
<OPTION>Pracownik produkcyjny</OPTION>
<OPTION>Asystentka</OPTION>
</SELECT></td>
</tr>
<tr>
<td>Informacje dodatkowe</td>
<td><textarea name=\"tresc\" style=\"width: 350px; height: 50px\"></textarea></td>
</tr>
<tr>
<td>Doł±cz CV</td>
<td><input type=\"file\" name=\"cv\" style=\"width: 350px\"></td>
</tr>
<tr>
<td colspan=\"2\"><input type=\"checkbox\" name=\"zgoda\" value=\"Wyrażam\"> Wyrażam zgodę na przetwarzanie moich danych osobowych dla potrzeb niezbędnych do realizacji procesu rekrutacji (zgodnie z ustaw± o ochronie danych osobowych z dn. 29.08.97 Dz. U. 133 Poz. 883) </td>
</td>
</tr>
<tr>
<td> </td>
<td><input type=\"submit\" name=\"submit\" value=\"Wy¶lij\"> 
<input type=\"reset\" value=\"Kasuj\"></td></form>
</tr>
</table>";
}
// sprawdzamy, czy zmienne przesłane z formularza nie s± puste
elseif (!empty($_POST['telefon']) && !empty($_POST['imie']) && !empty($_POST['email']) && !empty($_POST['zgoda'])) {
// jeżeli powyższy warunek jest spełniony tworzona jest wiadomo¶ć
if ($_POST[zgoda]="on")
$zgoda="Wyrażam zgodę na przetwarzanie moich danych osobowych dla potrzeb niezbędnych do realizacji procesu rekrutacji (zgodnie z ustaw± o ochronie danych osobowych z dn. 29.08.97 Dz. U. 133 Poz. 883)";

// zmienna $message zawiera tre¶ć wiadomo¶ci
$message = "Rekrutacja na stanowisko: <b>$_POST[temat]<br></b><br>\n\nImię i nazwisko: $_POST[imie]<br>\nTelefon kontaktowy: $_POST[telefon]<br>\ne-mail: $_POST[email]<br><br>\n\n$_POST[tresc]<br><br>\n\n$zgoda<br>\n";
// zmienna $header zawiera przede wszystkim adres zwrotny
$cv = "$_POST[cv]";
// funkcja $temat
$temat = "$_POST[telefon] - Rekrutacja na stanowisko: $_POST[temat]";
$headers = "MIME-Version: 1.0 \n";
$headers .= "Content-type: text/html; charset=iso-8859-2\r\n";

$headers .= "X-Priority: 1\n";
$headers .= "X-MSMail-Priority: High\n";
//konwertowanie z utf-8 na iso 8859-2
$tresc = stripslashes($tresc);
$tresc = strtr($tresc, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC");
$temat = stripslashes($temat);
$temat = strtr($temat, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC");
//wysyłanie maila
$headers .= "From: $_POST[imie] <$_POST[email]>";
// funkcja mail() za pomocą której wiadomość zostanie wysłana





if ($cv != "")
{
$file = fopen($cv, "r");
$contents = fread($file, filesize($cv));
$encoded_cv = chunk_split(base64_encode($contents));
fclose($file);

$headers .= "MIME-version: 1.0\n";
$headers .= "Content-type: multipart/mixed; ";
$headers .= "boundary=\"Message-Boundary\"\n";
$headers .= "Content-transfer-encoding: 7BIT\n";
$headers .= "X-attachments: $cv_name";

$body_top = "--Message-Boundary\n";
$body_top .= "Content-type: text/plain; charset=US-ASCII\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= "Content-description: Mail message body\n\n";

$message = $body_top . $message;

$message .= "\n\n--Message-Boundary\n";
$message .= "Content-type: $attach_type; name=\"$cv_name\"\n";
$message .= "Content-Transfer-Encoding: BASE64\n";
$message .= "Content-disposition: attachment; filename=\"$cv_name\"\n\n";
$message .= "$encoded_attach\n";
$message .= "--Message-Boundary--\n";
}




@mail("adres@mail.com","$temat","$message","$headers")
or die('Nie udało się wysłać wiadomości');
// wyświetlenie komunikatu w przypadku powodzenia
echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
}
// lub w przypadku nie wypełnienia formularza do końca
else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";

?>
kossa
Opis błędu wskazuje że nie utworzyć plik, tzn. że prawdopodobnie katalog w którym tworzony jest tymczasowy załącznik nie ma odpowiednich praw (777)

Łukasz
saydack
NIestety to nie to katalog ma 777, to jest cały komunikat:
Warning: fopen(log_c_darek.log) [function.fopen]: failed to open stream: No such file or directory in /home/domena/public_html/www2/modules/mod_php.php on line 79

Warning: fread(): supplied argument is not a valid stream resource in /home/domena/public_html/www2/modules/mod_php.php on line 80

Warning: fclose(): supplied argument is not a valid stream resource in /home/domena/public_html/www2/modules/mod_php.php on line 82
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.