Witam,
Mam problem z załącznikiem do formularza w PHP.
Kiedy wysyłam formularz bez załącznika wszystko ok, ładnie w HTML dochodzi.
Kiedy zaś wysyłam z załącznikiem, po kliknieciu na "Wyślij" pokazuje mi sie pusta biała strona.
Musze dodać, że w PHP programuję od 2 miesięcy, więc może popełniłem jakiś błąd laika.
Oryginał testowy: http://gugsen.ddl2.pl/aktor/aktor.php
Oto kody:
aktor.php - odpowiadający za wyslanie pliku - czesc kodu:
<?php
<input type="hidden" name="wyslij" value="1" />
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" size="25" name="plik"></td>
?>
wykonanie.php - nie trzeba tlumaczyć

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
</head>
<?php
// zdefiniowanie krótkich nazw zmiennych
tutaj zeby chidzlo bez register globals, musialem wyciac
$plik = $_POST['plik'];
$error = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Aby wysłać wiadomość musisz wypełnić wszystkie wymagane pola!<br>Prosimy o <a href=\"javascript:history.back();\">powrót do</a> formularza!";
$fatal_error = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Niestety formularz nie został wysłany poprawnie!<br>Prosimy o <a href=\"javascript:history.back();\">powrót do</a> formularza!";
$submit_ok = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Wiadomość wysłana poprawnie!<br>Jeśli chcesz, <a href=\"javascript:history.back();\">wróć do</a> formularza!";
$error_akceptacja = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Aby wysłac zgłoszenie musisz zaakceptować warunki!<br>Jeśli chcesz, <a href=\"javascript:history.back();\">wróć do</a> formularza!";
$erroremail = "<body bgcolor=000000><p style =\"font-family: verdana;font-size:10pt;text-align:center;color:#ffffff;\"><br><br>Aby wysłac zgłoszenie musisz wpisać poprawny adres e-mail!<br>Jeśli chcesz, <a href=\"javascript:history.back();\">wróć do</a> formularza!";
if ($akceptacja == "") {
}
//sprawdzenie czy załącznik pochodzi z formularza
if ($_POST["wyslij"]==1)
{
// dane o odbiorcy, nadawcy
$odbiorca="a@a.pl";
$tytul=" Formularz;
$nadawca = "Formularz";
$nadawca_mail="mail-ze-strony@domena.pl";
// treść listu
$tresclistu = "
<html>
<head>
<meta content=text/html; charset=ISO-8859-2 http-equiv=content-type>
</head>
<style type=text/css>
td {
font-face: verdana;
font-size: 10px;
}
</style>
tutaj cale dane forma
// definicja nagłówków
$naglowki = "From: $nadawca <$nadawca_mail>\n";
$naglowki .= "MIME-Version: 1.0\n";
$naglowki .= "Content-Type: multipart/mixed;\n";
$naglowki .= "\tboundary=\"___$znacznik==\"";
// nagłówki listu
$tresc="--___$znacznik==\n";
$tresc .="Content-Type: text/html; charset=\"iso-8859-2\"\n";
$tresc .="Content-Transfer-Encoding: 8bit\n";
$tresc .="\n$tresclistu\n";
// nagłówki i obsługa załącznika
$plik_nazwa_tmp = $_FILES["plik"]["tmp_name"];
$plik_nazwa_oryginalna = $_FILES["plik"]["name"];
$plik_wielkosc = $_FILES["plik"]["size"];
{
$tresc .="--___$znacznik==\n";
$tresc .="Content-Type: image/gif\n";
$tresc .="Content-Disposition: attachment;\n";
$tresc .=" filename=\"$plik_nazwa_oryginalna\"\n";
$tresc .="Content-Transfer-Encoding: base64\n\n";
$f = fopen($plik_nazwa_tmp,"rb"); $tresc .="--___$znacznik==--\n";
}
//walidiacja poprawnosci
// sprawdzanie wypełnienia pól
elseif ($imie == "") echo $error; elseif ($nazwisko == "") echo $error; elseif ($adresemail == "") echo $error; elseif ($telefon == "") echo $error; elseif ($miasto == "") echo $error; elseif ($ulicainrdomu == "") echo $error; elseif ($kodpocztowy == "") echo $error; elseif ($wojewodztwo == "") echo $error; elseif ($rokurodzenia == "") echo $error; elseif ($rozmiarubrania == "") echo $error; elseif ($rozmiarkolnierzyka == "") echo $error; elseif ($rozmiarbuta == "") echo $error; elseif ($wzrost == "") echo $error; elseif ($waga == "") echo $error; elseif ($biust == "") echo $error; elseif ($talia == "") echo $error; elseif ($aktualnykolorwlosow == "") echo $error; elseif ($koloroczu == "") echo $error; elseif ($zawod == "") echo $error; elseif (!eregi("^.+@.+..+$", $adresemail)) echo $erroremail;
else {
// wysłanie listu
if (mail($odbiorca,$tytul,$tresc,$naglowki)) {
}
else
{
}
}
}
?>
</html>
Wiem, ze to dużo kodu, ale może dlatego że formular zstaje się z załącznikiem za duzy tak jest?