09-10-2012, 02:29
Witam,
Prosiłbym jeśli możecie o pomoc w rozwiązaniu problemu dotyczącego linka, który ma dochodzić na skrzynkę e-mail.
A mianowicie mam następujący kod wysyłający e-maila z załącznikiem (ten kod działa i nie ma żadnych błędów przy wysyłce)- pojawia się nastepujacy komunikat: Plik przesłany nazwa_pliku_1.jpg / 43 [kB] Wiadomość została wysłana poprawnie!- czyli jest ok:
Plik kontakt.php wygląda następująco:
Problem polega na tym, że na skrzynce e-mailowej na którą przyhcpdzi wysłany e-mail wszystko się wyświetla tylko, nawet rozmiar wysłanego pliku oraz link z nazwą pliku, ale niestety po kliknięciu w link nie otwiera się on a jedynie jest komunikat: 404 Not Found nginx.
Czy moglibyście doradzić co należy zrobić aby ten błąd naprawić?
Pozdrawiam
martinprz
Prosiłbym jeśli możecie o pomoc w rozwiązaniu problemu dotyczącego linka, który ma dochodzić na skrzynkę e-mail.
A mianowicie mam następujący kod wysyłający e-maila z załącznikiem (ten kod działa i nie ma żadnych błędów przy wysyłce)- pojawia się nastepujacy komunikat: Plik przesłany nazwa_pliku_1.jpg / 43 [kB] Wiadomość została wysłana poprawnie!- czyli jest ok:
Plik kontakt.php wygląda następująco:
Kod PHP:
<?php
//include("poczatek_strony.php");
$imie = htmlspecialchars(trim($_POST['imie']));
$nazwisko = htmlspecialchars(trim($_POST['nazwisko']));
$e_mail = htmlspecialchars(trim($_POST['e_mail']));
$temat_wiadomosci = htmlspecialchars(trim($_POST['temat_wiadomosci']));
$tresc_wiadomosci = htmlspecialchars(trim($_POST['wiadomosc']));
$wynik = htmlspecialchars(trim($_POST['wynik']));
$wyslij = $_POST['wyslij'];
//Sprawdzam imię
if (empty($imie))
{
echo "Nie wypełniłeś pola <span>Imię !</span><br>";
}
elseif (strlen($imie) > 20)
{
echo "Za długie imię - max. 20 znaków <br>";
}
//Sprawdzam nazwisko
if (empty($imie))
{
echo "Nie wypełniłeś pola <span>Nazwisko!</span><br>";
}
elseif (strlen($nazwisko) > 50)
{
echo "Za długie imię - max. 50 znaków <br>";
}
//Sprawdzam e-mail
if (empty($e_mail))
{
echo "Nie wypełniłeś pola <span>E-mail !</span><br>";
}
elseif (strlen($e_mail) > 50)
{
echo "Za długi e-mail - max. 50 znaków <br>";
}
elseif (preg_match('/^[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\-\_\.]+\@[a-zA-ZąćęłńóśźżĄĆĘŁŃÓŚŹŻ0-9\-\_\.]+\.[a-z]{2,4}$/',$e_mail) == false)
{
echo "Niepoprawny adres E-mail! <br>";
}
//Sprawdzam temat
if (empty($temat_wiadomosci))
{
echo "Nie wypełniłeś pola <span>Temat !</span><br>";
}
elseif (strlen($temat_wiadomosci) > 200)
{
echo "Za długi temat - max. 200 znaków <br/>";
}
//Sprawdzam wiadomość
if (empty($tresc_wiadomosci))
{
echo "Nie wypełniłeś pola <span>Wiadomość !</span><br>"; }
elseif (strlen($tresc_wiadomosci) > 500)
{
echo "Za długa wiadomość - max. 500 znaków <br>";
}
//Sprawdzam czy wynik działania jest prawidłowy
if ($wynik!= "9")
{
echo "Błąd: nieprawidłowy wynik działania!";
exit();
}
//dodawanie plików do formularza
if(is_uploaded_file($plik_tmp)) die ('Nie załadowano żadnego pliku');
{
//pobieramy rozszerzenie pliku,
$typ=substr($_FILES['dodaj_plik']['name'],-4,4);
//sprawdzamy typ
if($typ!='.doc' and $typ!='.docx'and $typ!='.docm' and $typ!='dotx' and $typ!='dotm' and $typ!='.odt'and $typ!='.ods'and $typ!='.odp'and $typ!='.odf' and $typ!='.zip' and $typ!='.rar' and $typ!='.jpg' and $typ!='.gif' and $typ!='.bmp' and $typ!='.png' and $typ!='.avi' and $typ!='.mpg' and $typ!='mpeg' and $typ!='.mp3'and $typ!='.wav'and $typ!='html' and $typ!='.htm' and $typ!='.exe' and $typ!='.txt' and $typ!='.asc' and $typ!='.xls' and $typ!='xlsx' and $typ!='xlsm' and $typ!='xltx' and $typ!='xltm' and $typ!='xlam' and $typ!='.ppt' and $typ!='.pptx' and $typ!='.pptm' and $typ!='.potx' and $typ!='.potm' and $typ!='.ppam' and $typ!='.ppsx' and $typ!='.ppsm' and $typ!='.mdb' and $typ!='db' and $typ!='.cdr' and $typ!='.pdf')
{
echo "Niewłaściwy format pliku, bo $typ";
exit();
}
//zapisujemy plik na dysku
move_uploaded_file($_FILES['dodaj_plik']['tmp_name'],$_FILES['dodaj_plik']['name']);
echo "Plik przesłany ";
}
if(file_exists($_FILES['dodaj_plik']['name']))
{
$rozmiar=ceil($_FILES['dodaj_plik']['size']/1024);
echo "<a href='{$_FILES['dodaj_plik']['name']}'>{$_FILES['dodaj_plik']['name']}</a> / $rozmiar [kB]";
}
// sprawdzam, czy zmienne przesłane z formularza nie są puste
if (!empty($imie)&&!empty($nazwisko)&&!empty($e_mail)&&!empty($temat_wiadomosci)&&!empty($tresc_wiadomosci)&&!is_uploaded_file($_FILES['dodaj_plik']['tmp_name'])&&!empty($wynik))
{
// jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
// zmienna $wiadomosc zawiera treść wiadomości
$wiadomosc = "Wysłał: $imie $nazwisko<br>E-mail nadawcy: $e_mail<br>Temat wiadomości: $temat_wiadomosci<br>Treść wiadomości: $tresc_wiadomosci<br><p style='margin-left: 250px; color: black;'>Pliki:<br><a href='{$_FILES['dodaj_plik']['name']}'>{$_FILES['dodaj_plik']['name']}</a> / $rozmiar [kB]'<br>'<br><p style='margin-left: 250px; color: black;'>Data wysłania:<span style='margin-left: 20px; color: red;'>".date('d-m-Y')."</span></p>";
//Adrese-maila od nadawcy (zwrotny)
$adresod = 'From: [email protected]'.PHP_EOL.'Content-type: text/html; charset=utf-8';
// funkcja mail() za pomocą której wiadomość zostanie wysłana
@mail("[email protected]","Wiadomość ze strony WWW","$wiadomosc","$adresod") or die('Nie udało się wysłać wiadomości');
// wyświetlenie komunikatu w przypadku powodzenia
echo "<div style='text-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;\"><strong>Wypełnij wszystkie pola formularza!</strong></span>";
}
//include("koniec_strony.php");
?>
Problem polega na tym, że na skrzynce e-mailowej na którą przyhcpdzi wysłany e-mail wszystko się wyświetla tylko, nawet rozmiar wysłanego pliku oraz link z nazwą pliku, ale niestety po kliknięciu w link nie otwiera się on a jedynie jest komunikat: 404 Not Found nginx.
Czy moglibyście doradzić co należy zrobić aby ten błąd naprawić?
Pozdrawiam
martinprz