mam koledzy problem. Nie siedzę w php, dlatego proszę o Was o pomoc. Mam na swojej stronie formularz kontaktowy. Działa on, wysyła meila ale jest problem. Nie wyświetla się prawidłowo strona z potwierdzeniem wysłania wiadomości. Nie wiem o co chodzi. Poniżej zamieszczam obrazek z błędu jaki się wyświetla a pod nim kod php
o to link:
[LINK]
Forum > Software > problem w php w formularzu kontakt
Wysłane 2015-01-23 17:33 , Edytowane 2015-01-23 17:35
Wysłane 2015-01-23 19:06
Powinno działać. o ile masz plik kontakt/potwierdzenie.html
sprawdź to wpisując w przeglądarkę twojadomena.pl/kontakt/potwierdzenie.html
może masz .htm albo inny adres, albo leci to przez jakiś mechanizm przyjaznych adresów?
Cóż, żeby sprawę rozwiązać musiałbyś pochwalić się linkiem strony. ;]
Wysłane 2015-01-23 19:10
chwilowo, do momentu zarejestrowania domeny adres jest taki:
[LINK]
i link działa - wrr :/
Wysłane 2015-01-23 19:11
print '<meta http-equiv="refresh" content="0; url=/kontakt/potwierdzenie.html">';
lub gdyby był problem nadal.
print '<meta http-equiv="refresh" content="0; url=http://luc2121.nazwa.pl/kontakt/potwierdzenie.html">';
Wysłane 2015-01-23 19:29
na serwerze masz cały czas opcję
<meta http-equiv="refresh" content="0;URL=kontakt\potwierdzenie.html">
więc jak ma działać ? zmieniasz w dobrym miejscu? nadpisujesz zmiany na serwerze?
[LINK]
Wysłane 2015-01-23 19:50
o to plik kontakt.php
<?php
// Tworzymy zmienną dla imienia i nazwiska
$name = $_POST['name'];
// Tworzymy zmienną dla adresu email
$email = $_POST['email'];
// Tworzymy zmienną dla wiadomości
$message = $_POST['message'];
// Podajesz adres email z którego ma być wysłana wiadomość
$odkogo = "TwojAdresEmail1@gmail.com";
// Podajesz adres email na który chcesz otrzymać wiadomość
$dokogo = "r.melon@wp.pl";
// Podajesz tytuł jaki ma mieć ta wiadomość email
$tytul = "Formularz kontaktowy z mojej strony";
// Przygotowujesz treść wiadomości
$wiadomosc = "";
$wiadomosc .= "Imie i nazwisko: " . $name . "\n";
$wiadomosc .= "Email: " . $email . "\n";
$wiadomosc .= "Wiadomość: " . $message . "\n";
// Wysyłamy wiadomość
$sukces = mail($dokogo, $tytul, $wiadomosc, "Od: <$odkogo>");
// Przekierowywujemy na potwierdzenie
if ($sukces){
print "<meta http-equiv=\"refresh\" content=\"0;URL=kontakt\potwierdzenie.html\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=kontakt\error.html\">";
}
?>
Wysłane 2015-01-23 19:56
tu masz końcówkę poprawioną pliku.
$sukces = mail($dokogo, $tytul, $wiadomosc, "From: $odkogo");
// Przekierowywujemy na potwierdzenie
if ($sukces){
print '<meta http-equiv="refresh" content="0;URL=/kontakt/potwierdzenie.html">';
}
else{
print '<meta http-equiv="refresh" content="0;URL=/kontakt/error.html">';
}
?>
Wysłane 2015-01-23 20:00
może coś bliżej prawdy jesteś bo teraz jest taki błąd:
[table][tr][td][404] File Not Found : Plik nie istnieje[/td]
[/tr]
[tr][td] [/td]
[td]Podany w zapytaniu URL /kontakt%5Ckontakt.php nie został odnaleziony na tym serwerze. [/td]
[/tr]
[tr][td] [/td]
[td] [/td]
[/tr]
[tr][td] [/td]
[td]The requested URL /kontakt%5Ckontakt.php was not found on this server.[/td]
[/tr]
[/table]
Wysłane 2015-01-23 20:06
Zapamiętaj w systemach unixowych (i w internecie) katalogi oddziela się znakiem /
a nie znakiem \ (jak w Windows).
w pliku kontakt.html masz
<form method="post" action=" kontakt\kontakt.php">
powinno być
<form method="post" action=" kontakt/kontakt.php">
Wysłane 2015-01-23 20:23
wiem, że się tak różnią ale próbowałem to wcześniej i nie działało. Jak się okazało po poprawieniu przez Ciebie formuły "From: $odkogo"); zaczęło wszystko działać. Wielkie dzięki. Napisz mi tylko na marginesie czy to taka duża różnica w zapisie:
From: $odkogo")
a
"Od: <$odkogo>");
? ??
ale naprawdę WIELKIE DZIĘKI za pomoc.
Wysłane 2015-01-23 21:32
Cieszę się, że działa.
4 parametr w funkcji mail() określa opcjonalne nagłówki dołączane do wysyłanej wiadomości.
Nie istnieje taki nagłówek jak "Od:" . Jak w większości zagadnień związanych z komputerami nazwy
wywodzą się z języka angielskiego i tak powinny być stosowane.
[LINK]
Zasadniczo nie ma chyba sensu szerzej to tłumaczyć, zawsze można przeczytać też RFC
dotyczące poczty elektronicznej ;] Ale raczej tak bardzo zagadnienia nie chcesz zgłębiać.
Pozdrawiam.
Wysłane 2015-01-23 22:45 , Edytowane 2015-01-23 22:46
Zmień linię
$sukces = mail($dokogo, $tytul, $wiadomosc, "From: $odkogo");
na
$sukces = mail($dokogo, $tytul, $wiadomosc, "Content-type: text/plain; charset=UTF-8\r\nFrom: $odkogo\r\n");
Warto by było wprowadzić też jakiś zabezpieczenie, żeby pustych maili nie wysyłało... :)
Kto jest online: 1 użytkowników, 203 gości