Zacznę od początku. Niedawno rozpocząłem swoja przygodę z PHP i język sprawa mi sporo problemu. Jestem w trakcje tworzenia strony www z elementami PHP. Struktura strony wygląda następująco menu poziome wraz z grafiką znajdującą się po prawej stronie jest statyczne natomiast treść znajdująca się po lewej dynamiczna. Problem ten rozwiązałem za pomocą instrukcji include_once(), jednak nie na tym problem polega jedna z podstron kontakt.php posiada następujący kod:
<h3>Formularz kontaktowy:
</h3>
<form method="post" action="index.php?id=8"> <div class="tabelaTresc"><input type="text" id="firstname" name="firstname" style="width:290px;" /><br /></div> <div class="clear" style="height: 5px;"></div> <div class="tabelaTresc"><input type="text" id="email" name="email" style="width:290px;" /><br /></div> <div class="clear" style="height: 5px;"></div> <div class="tabelaTresc"><input type="text" id="phone" name="phone" style="width:290px;" /><br /></div> <div class="clear" style="height: 5px;"></div> <div class="tabelaTresc"><input type="text" id="theme" name="theme" style="width:290px;" /><br /></div> <div class="clear" style="height: 5px;"></div> <div class="clear" style="height: 10px;"></div> <div class="tabelaTresc"><input type="submit" value="Wyślij" name="Wyślij" /></div>
natomiast skrypt odpowiedzialny za wysyłanie wygląda następująco:
<?php
$imie = $_POST['firstname'];
$email = $_POST['email'];
$tel = $_POST['phone'];
$temat = $_POST['theme'];
$wiadomosc = $_POST['other'];
$to = '...@gmail.com';
$subject = "$temat";
$msg = "Imię: $imie\n" .
"Telefon: $tel\n" .
"Treść wiadomości: $wiadomosc";
mail($to, $subject, $msg, 'From:'.$email); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<title>Salon Dom</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="styl.css" type="text/css" />
</head>
<body>
<p>Dziękuję za przesłanie formularza</p>
</body>
</html>
W takim wypadku formularz działa, wysyła maila odraz w miejscu formularza wyświetlany jest komunikat dziękujący za wysłanie maila. W momencie gry zamiast fragmentu napisanego w html użyć echo nie wyświetla mi się podziękowanie. I nie bardzo wiem dlaczego ;/ Chciałem również dokonać sprawdzenia dwóch pól imię i temat napisałem taki kawałek kodu:
<?php
if (isset($_POST['submit'])) { $imie = $_POST['firstname'];
$email = $_POST['email'];
$tel = $_POST['phone'];
$temat = $_POST['theme'];
$wiadomosc = $_POST['other'];
echo'Nie podałeś imienia i tematu wiadomości.<br />'; }
echo'Nie podałeś imienia.<br />'; }
echo'Nie podałeś tematu.<br />'; }
$to = '...@gmail.com';
$subject = "$temat";
$msg = "Imię: $imie\n" .
"Telefon: $tel\n" .
"Treść wiadomości: $wiadomosc";
mail($to, $subject, $msg, 'From:'.$email); echo 'Dziękuję za przesłanie formularza'; }
}
?>
po wrzuceniu tego kodu na serwer ani nie wyświetla się żaden komunikat anie mail nie zostaje wysłany. Tematy na formum przeglądałem jednak nie znalazłem odp na mój problem - być może źle szukałem .
Ten post edytował MatBlo 2.06.2010, 10:57:21