Formularz kontaktowy.

0

Witam, mam taki formularz kontaktowy:)Formularz wziąłem z innej strony ale nikt mi nie odpisuje więc wstawiam tutaj:)

Wyskakuje mi taki błąd na serwerze w necie:)Co jest dziwne na xampie serwerze lokalnym dziala:)Tzn nie mam błędu:)

Error occurred: 404 - not found

Apache Server at: s1206268-73445.home-whs.pl

<!DOCTYPE HTML>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Formularz Kontaktowy - Tytuł naszej strony</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
<div id="formularz">

<form method="post" action="kontakt.php">

<label>Imię i nazwisko</label>
<input name="name" placeholder="Jan kowalski">

<label>Email</label>
<input name="email" type="email" placeholder="[email protected]">
            
<label>Wiadomość</label>
<textarea name="message" placeholder="Napisz tu wiadomość"></textarea>
            
<input id="submit" name="submit" type="submit" value="Wyślij">
</form>

<!-- byłbym wdzięczny za link zwrotny ale jak chcesz możesz go usunąć -->
<p class="copy">Formularz kontaktowy z <a href="http://www.79level.pl/blog">79LEVEL.PL</a></p>

</div>
</body>

</html>
<?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 = "[email protected]";

// Podajesz adres email na który chcesz otrzymać wiadomość
$dokogo = "[email protected]";

// Podajesz tytuł jaki ma mieć ta wiadomość email
$tytul = "Formularz kontaktowy z 79level.pl";

// Przygotowujesz treść wiadomości
$wiadomosc = "";
$wiadomosc .= "Imie i nazwisko: " . $name . "\n";
$wiadomosc .= "Email: " . $email . "\n";
$wiadomosc .= "Wiadomość: " . $message . "\n";

// Dodajemy UTF-8 do naglowka naszej wiadomości
$naglowek = "";
$naglowek .= "Od:" . $odkogo . " \n";
$naglowek .= "Content-Type:text/plain;charset=utf-8";

// Wysyłamy wiadomość
$sukces = mail($dokogo, $tytul, $wiadomosc, $naglowek);

// Przekierowywujemy na potwierdzenie
if ($sukces){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=potwierdzenie.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">";
}
?>

Proszę o pomoc pozdrawiam.

0

Ale w jakim momencie dostajesz błąd? Czy ten drugi listing jest z kontakt.php?

Sprawdź czy masz wszystkie pliki na serwerze.

0

Błąd dostaje po kliknięciu w przycisk submit czyli po wysłaniu:)O jakie dokładnie pliki chodzi:)?Plik kontakt.php mam i potwierdzenie.php . Pliku error.html nie mam ale chyba on nie jest potrzebny:)

A co się stanie w przypadku błędu przy wysyłaniu maila?

0

wyświetl sobie na razie bez przekierowania będziesz pewny:

// Przekierowywujemy na potwierdzenie
if ($sukces){
  print "ok";
}
else{
  print "ng";
}
0

@programy-na-zamowienie wyskakuje mi ng.

@Sarrus dodalem plik error.php z echo 'blad' i pokazalo mi wlasnie "blad"

1

czyli tu jest problem (wiadomość nie została wysłana):

$sukces = mail($dokogo, $tytul, $wiadomosc, $naglowek);
0

Czyli problem nie leży po stronie serwera tylko pliku kontakt.php .Co mam zatem robić :D?

0

Dodaj na początku:

<?php
error_reporting(E_ALL); 
ini_set("display_errors", 1);

powinno pokazać błędy. akurat mail() zwraca tylko wartość logiczną więc ciężka jest do debugowania :)

0

Warning: ini_set() has been disabled for security reasons in /home/hosting/prv-hosting/prv.pl/s/e/meandmyhobbies/kontakt.php on line 3

czyli ini_set("display_errors", 1);

1

Kiedyś niektóre hostingi wyłączały obsługę funkcji mail(); Zorientuj się czy u Ciebie tak właśnie nie jest i skontaktuj z administratorem serwera.

0

zmień jeszcze header i sprawdź czy zadziała:

$naglowek = 'From: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion(); 
0

Cały czas pokazuje mi się błąd w 3 linijce. @programy-na-zamowienie nagłówek zmieniony

0

jak to w 3 linijce - ponumeruje linie lub wskaż o którą linie chodzi?

0

Wyjaśnione.Nie obsługują.Tylko przez smtp albo coś takiego:) Co tera mam zrobić :D? Wgl mam hosting na az.pl

0

Jesteś pewien że na az.pl a nie na prv.pl? :) zasugerowałem się logiem błędu - a tu mail() ( na prv.pl) jest włączony.

jak coś to skorzystaj z tego np: http://phpmailer.worxware.com/?pg=examplebsmtp

0

@programy-na-zamowienie haha masz racje:) Mam dwa hosty bo chciałem sprawdzić czy to nie jest wina serwera:) Na az.pl i prv.pl mam to samo:) A dzwoniłem do działu pomocy w az.pl i powiedział mi że tam nie obsługują funkcji mail() tylko ten smtp. Nie wiem może w takim razie na prv.pl obsługuje. W każdym razie nie działa:) Ogarnę ten link i dam znać :)

0

@programy-na-zamowienie nie wiem jak to wypełnić :D

ten link co podesłałeś http://phpmailer.worxware.com/?pg=examplebsmtp

$mail->Host = ""; //tutaj mam wstawić Nazwa hosta (serwer) FTP?
$mail->Username = ""; //tutaj mam wstawić Użytkownik (login) FTP
$mail->Password = "";//tutaj mam wstawić hasło do serwera?

Po uzupełnieniu tymi danymi wiadomość nie zostaje wysłana i nic nie pokazuje mi się na monitorze :(

Nie pokazuje mi żadnych błędów :(

1

dla az.pl
$mail->Host = "twoja nazwa serwera"; // np masz nazwę serwera ghost wtedy to będzie ghost.az.pl lub ghost.pl
$mail->Username = "[email protected]"; // twój adres e-mail np [email protected]
$mail->Password = "tajne haslo";//hasło do poczty?
$mail->Port= 25// port 25 lub 587

1

AFAIK a było to dawno... funkcja mail nie jest obsługiwana na żadnym darmowym serwerze bo bardzo go obciąża jeśli przeczytasz dokumentację pewnie dowiesz się dlaczego http://php.net/manual/en/function.mail.php.

0
szopenfx napisał(a):

AFAIK a było to dawno... funkcja mail nie jest obsługiwana na żadnym darmowym serwerze bo bardzo go obciąża jeśli przeczytasz dokumentację pewnie dowiesz się dlaczego http://php.net/manual/en/function.mail.php.

na prv.pl jest: ..."php5, php7 (w tym funkcja mail())"... :)

0

Przez żadnym miałem na myśli PHP w wersji 3 czasem 4 (to były "moje czasy") i hostingi w tym jeden wspomniany przez ciebie. Jeśli się pomyliłem wyprowadź mnie z błędu lub napisz dlaczego uważasz inaczej (OFC nie piszę tego złośliwie po prostu wypadłem z tematu na dłuższy czas) - wtedy funkcja ta została uznana za niebezpieczną i niezalecaną z powodu łatwego trafienia na black listę spamerów.

0

Nie działa:D nie wiem co robię źle :( Nic się nie pokazuje załadowaniu strony.

$mail->Host = "meandmyhobbies.prv.pl"; // jako host podałem meandmyhobbies.prv.pl

to do serwera prv.pl :D

0

sprawdź też z hostem meandmyhobbies.pl
dodałeś fizycznie class.phpmailer.php i class.smtp.php ?
zaloguj się na konto w hostingu i sprawdź jakie są prawidłowe ustawienia dla smtp.

co do phpmailer, to jest wszystko opisane: https://github.com/Synchro/PHPMailer + przykłady :)

0
szopenfx napisał(a):

Przez żadnym miałem na myśli PHP w wersji 3 czasem 4 (to były "moje czasy") i hostingi w tym jeden wspomniany przez ciebie. Jeśli się pomyliłem wyprowadź mnie z błędu lub napisz dlaczego uważasz inaczej (OFC nie piszę tego złośliwie po prostu wypadłem z tematu na dłuższy czas) - wtedy funkcja ta została uznana za niebezpieczną i niezalecaną z powodu łatwego trafienia na black listę spamerów.

mail() bez autoryzacji jest prosty w użyciu ale i nadużywany do wysyłania spamu przez boty :) obecnie nie wszędzie można z tego korzystać, hostingi blokują ta funkcję rzecz jasna......

0

@programy-na-zamowienie tak mam dodane fizycznie w pliku php class.phpmailer.php a //include("class.smtp.php"); jest wykomentowane. Nie działa niestety też z tym hostem meandmyhobbies.pl .

0

Nie wiem czy to coś da ale dodaje załączniki :)

0

ale jakiś błąd masz? wiesz do którego miejsca skrypt się wykonuje? przejrzałeś dokładnie kod z tym pod tym linkiem https://github.com/Synchro/PHPMailer
nie dodawaj ew załącznika - z tym później powalczysz

0

Nie wiem w którym miejscu:( Sciągnąłem to z tego linku co wysłałeś ale ten kod jest strasznie duży .Nie ogarniam :( Możesz jakoś mnie nakierować:)? Czy się wgl da mnie jakoś jeszcze nakierować :D Chyba że mam skorzystać z tego co jest niżej napisane pod tymi plikami co trzeba go ściągnąć:)

1

Możesz jeszcze zainstalować sobie XAMPP https://www.apachefriends.org/pl/index.html i testować to lokalnie (bez hostingu). Spróbuj skorzysta z bloku try catch//php.net/manual/en/language.exceptions.php musisz znać podstawy debugowania kodu, bez tego ciężko będzie znaleźć w czym jest problem:)

0

Wykupiłem sobie hosting i skorzystałem z funkcji mail(). Mam na stronie fajny formularzyk z ajaxem :) Ale jakbym potrzebował smtp to odnowie wątek. Na razie dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1