Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] Problem z załącznikiem w formularzu kontaktowym
#1
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:

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
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Minki lub Znaczniki w formularzu rafciorb 3 2,779 05-10-2011, 16:03
Ostatni post: Kartofelek
  problem z formularzem kontaktowym neo_17 1 2,071 06-06-2009, 18:28
Ostatni post: kanion

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl