ďťż

formularz E-mail a strona w divach?

       

Podstrony


telcocafe

mam taki problem zrobiłem kiedyś formularz wysyłania maili przez stronke . I mam taki problem Mam strone opartom na divach gdzie podstrony ładujom się do div ( http://forum.ks-eksp...-strony-do-div/ ) i w jednej jest formularz kod:


<?php

echo '<div id="kontakt">';

$imie = stripslashes(htmlspecialchars(trim($_POST[imie])));
$nazwisko = stripslashes(htmlspecialchars(trim($_POST[nazwisko])));
$mail = stripslashes(htmlspecialchars(trim($_POST[mail])));
$tresc = stripslashes(htmlspecialchars(trim($_POST[tresc])));

if(isset($_COOKIE[sent])) echo '<p style="color: red;">Nie możesz tak szybko wysłać jednej wiadomoÂści po drugej:) odczekaj 60 sekund.</p>';

if ((isset($_POST[wyslij])) && (!isset($_COOKIE[sent])))
{
if (empty($imie)) {
$error=1;
$warmings[imie] = " style=\"border: 1px solid red;\" ";
echo '<span class="form-kom1">Nie wypełniłeÂś/aÂś pola <span class="form-kom2">- Imię/nick -</span></span><br />'; }

if (empty($nazwisko)) {
$error=1;
$warmings[nazwisko] = " style=\"border: 1px solid red;\" ";
echo '<span class="form-kom1">Nie wypełniłeÂś/aÂś pola <span class="form-kom2">- Nazwisko -</span></span><br />'; }

if (!ereg("^.+@.+\..+$" , $mail)) {
$error=1;
$warmings[mail] = " style=\"border: 1px solid red;\" ";
echo '<span class="form-kom1">Nie wypełniłeÂś/aÂś pola <span class="form-kom2">- E-mail -</span></span> <br />'; }

if (empty($tresc)) {
$error=1;
$warmings[tresc] = " style=\"border: 1px solid red;\" ";
echo '<span class="form-kom1">Nie wypełniłeÂś/aÂś pola <span class="form-kom2">- WiadomoÂść -</span></span><br />'; }

if ($error==0) {
$list = "
<b> Imie </b> - $imie <br><br>
<b> nazwisko </b> - $nazwisko <br><br>
<b> E-mail </b> - $mail <br><br>
<b> Tresc </b> - $tresc\n\n";
$naglowki = "Content-type: text/html; charset=kodowanie\r\n";
$naglowki .= "From: $mail";
if (@mail("simoc007@interia.pl","konkurs", $list, $naglowki)) {

echo '<p style="color: #FF0000;">WiadomoÂśc została wysłana.</p>';

setcookie ("sent", "sent", time()+60);
} else {
echo '<p style="color: #FF0000;">Nie udało się wysłać wiadomoÂści,<br /> proszę spróbować póÄ˝niej.</p>'; }
}
}

echo '<form action="'.$_SERVER[PHP_SELF].'" method="post" id="formularz">
<legend><span class="margines"><b><font size="+3">Formularz kontaktowy</font></b> </span></legend><br>
<br>
<br>

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="100"><label for="pole1"> - Imię -</label></td>
<td width="200"><input type="text" name="imie" '.$warmings[imie].' value="'.$_POST[imie].'" id="pole1" /></td>
</tr>
<tr>
<td><label for="pole2"> - Nazwisko -</label></td>
<td><input type="text" name="nazwisko" '.$warmings[nazwisko].' value="'.$_POST[nazwisko].'" id="pole1" /></td>
</tr>
<tr>
<td><label for="pole3"> - E-mail -</label></td>
<td><input type="text" name="mail" '.$warmings[mail].' value="'.$_POST[mail].'" id="pole2" /></td>
</tr>
<tr>
<td><label for="pole4"> - WiadomoÂść - </label></td>
<td><textarea '.$warmings[tresc].' name="tresc" cols="20" rows="5" id="pole3">'.$_POST[tresc].'</textarea></td>
</tr>
</table>

<br />
<input type="submit" value="WyÂślij" class="przycisk" name="wyslij">
<input type="reset" value="WyczyÂść" class="przycisk" name="wyczysc">

</form>

</div>';
?>


i mam taki problem:

Formularz po kliknięciu wyślij powinien pokazać komunikat np: że wiadomość wysłana lub że jakiś błąd gdzieś jest a jak mam go zapisanego jako ładowanie do div to nic nie wyświetla tylko do strony głównej przerzuca;/ jak odpalę osobno formularz działa jak pod indexem nie działa(czyli jak wszystko ok wyśle e-meil jak nie nic nie pokaże);/ wiecie jak zrobić by działał?
Użytkownik cimoc007 edytował ten post 03 luty 2010, 09:38


Zrobić to porządnie. Oddzieli HTML od PHP stosując system szablonów (nie printuj HTMLa), do tego od strony PHP zastosować nawet prosty framework (np. CodeIgniter, Kohana) wtedy walidacja formularza, ponowne jego wyświetlanie z komunikatami błędów to żaden problem. Inaczej to zabawa w kodowanie kuli błota z inkludowaniem skrypcików między sobą - co rodzi różne głupie problemy i coraz większy chaos w "kodzie".
Użytkownik Riklaunim edytował ten post 03 luty 2010, 15:31
Nie strasz człowieka, ledwo mu include wytłumaczyli, a Ty już go we frameworki wpychasz :) Ja wiem, że czystość kodu itp itd, ale niech się najpierw PHP nauczy :)

Problem polega na tym, że ładujesz to w stylu index.php?page=mail, a action formularza masz ustawione na $_SERVER['php_self'] - tam jest tylko index.php, bez query stringa, czyli części po pytajniku - dlatego ładuje Ci się główna. Musisz zmienić atrybut action w tagu form tak, żeby wskazywał na stronę z formularzem mailowym.

I włącz sobie jakieś sprawdzanie pisowni, czy coś podobnego, bo aż boli czytanie :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.