Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML][PHP]Formularz PHP
Forum PHP.pl > Forum > Przedszkole
overs
Witam
Skorzystałem z poniższego skryptu PHP jak go zmodyfikować aby skrypt sprawdzał czy zostały zmienione domyśle pola value.
Jeżeli ich nie ma wszystko jest ok ale niestety musi tak zostać.

  1. <?php
  2. if (count($_POST))
  3. {
  4. ////////// USTAWIENIA //////////
  5. $email = 'e-mail'; // Adres e-mail adresata
  6. $subject = 'temat'; // Temat listu
  7. $message = 'Dziękujemy za wysłanie formularza'; // Komunikat
  8. $error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
  9. $charset = 'utf-8'; // Strona kodowa
  10. //////////////////////////////
  11.  
  12. $head =
  13. "MIME-Version: 1.0\r\n" .
  14. "Content-Type: text/plain; charset=$charset\r\n" .
  15. "Content-Transfer-Encoding: 8bit";
  16. $body = '';
  17. foreach ($_POST as $name => $value)
  18. {
  19. if (is_array($value))
  20. {
  21. for ($i = 0; $i < count($value); $i++)
  22. {
  23. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  24. }
  25. }
  26. else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  27. }
  28. echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
  29. }
  30. else
  31. {
  32. ?>

  1. <form action="?" method="post" id="form">
  2. <input type="text" id="name" name="name" value="Imię i Nazwisko:" onBlur="if(this.value=='') this.value='Imię i Nazwisko:';" onFocus="if(this.value=='Imię i Nazwisko:') this.value='';"/>
  3. </label>
  4. <input type="text" id="phone" name="phone" value="Telefon:" onBlur="if(this.value=='') this.value='Telefon:';" onFocus="if(this.value=='Telefon:') this.value='';"/>
  5. </label>
  6. <input type="text" id="mail" name="email" value="E-mail:" onBlur="if(this.value=='') this.value='E-mail:';" onFocus="if(this.value=='E-mail:') this.value='';"/>
  7. </label>
  8. <input value="Wyczyść" class="button" name="reset" type="reset" />
  9. <input value="Wyślij" class="button" name="submit" id="submit" type="submit" />
  10.  
  11.  
  12. </form>

  1. <?php
  2. }
  3. ?>
Damonsson
HTML > Placeholder, zamiast value i skrypt php możesz zostawić w spokoju smile.gif

A i JS wywalić smile.gif


Tylko uważaj na IE 9 w dół, niewspierane sad.gif
overs
Za to coś z Submit nie tak:
Na pusto wysyła i dostaję w mejlu:

name=
phone=
email=
submit=Prześlij

Hm nie dobrze trochę bez IE 8.
Jakiś sposób w PHP?
Lwik
strlen.
IF(strlen($value) > 5) // Jeżeli długość wartości jest większa niż 5.
overs
zielony jestem smile.gif która linijka najlepiej?
Damonsson
Hmmm dziwnie to robisz, pakujesz całego posta do tablicy ;/

Tak na szybko to zrób tak:

Po: if (count($_POST)) {
daj warunek sprawdzający czy name phone i e-mail nie są puste. A jak nei chcesz używać placeholder, to sprawdzaj czy nie są puste lub czy nie równają się 'Imię i Nazwisko:' itd.

A tak na zaś, to chyba trzeba to porządnie przebudować.
overs
Właśnie z PHP to nie wiele mam narazie wspólnego. Zaczynam coś dłubać. Ten skrypt z netu jest.
Mój własny był poniżej. Ale nie wiem jak sobie poradzić z empty() aby sprawdzać wypełnienie pól zwłaszcza gdy jest value.
Plus aby pojawiała się wiadomość o wysyłce lub niepowodzeniu.

  1. <?php
  2. $name = trim($_POST['formName']);
  3. $phone = trim($_POST['formPhone']);
  4. $mail = trim($_POST['formEmail']);
  5. $subject = 'temat';
  6.  
  7. $ip = $_SERVER['REMOTE_ADDR'];
  8. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  9.  
  10. $receiver = 'email';
  11.  
  12.  
  13. $message = "Witam<br>
  14. <p>Nazywam się <b>$name</b>.<br></p>
  15. <p>Kontakt pod numerem telefonu: <b>$phone</b><br>
  16. Mój adres e-mail: <b>$mail</b></p>
  17. <p>Wiadomość wysłana z adresu IP $ip Host: $host</p>";
  18.  
  19. $header = "MIME-Version: 1.0\r\n";
  20. $header .= "Content-type:text/html;charset=utf-8\r\n";
  21. $header .= "From: $name <$mail>";
  22.  
  23. mail($receiver, $subject, $message, $header);
  24.  
  25. ?>
Lwik
Proszę, na podstawie Twojego.
  1. <?php
  2. $name = trim($_POST['formName']);
  3. $phone = trim($_POST['formPhone']);
  4. $mail = trim($_POST['formEmail']);
  5. $subject = 'temat';
  6. IF(strlen($name) > 5 && strlen($phone) > 5 && strlen($mail) > 5)
  7. {
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  10.  
  11. $receiver = 'email';
  12.  
  13.  
  14. $message = "Witam<br>
  15. <p>Nazywam się <b>$name</b>.<br></p>
  16. <p>Kontakt pod numerem telefonu: <b>$phone</b><br>
  17. Mój adres e-mail: <b>$mail</b></p>
  18. <p>Wiadomość wysłana z adresu IP $ip Host: $host</p>";
  19.  
  20. $header = "MIME-Version: 1.0\r\n";
  21. $header .= "Content-type:text/html;charset=utf-8\r\n";
  22. $header .= "From: $name <$mail>";
  23.  
  24. mail($receiver, $subject, $message, $header);
  25.  
  26. }else echo'Niestety zawartość pól jest za krótka:)';
Damonsson
A co jeśli mam na imię Jan? wink.gif
overs
Zatem
  1. if(strlen($name) > 3 && strlen($phone) > 8 && strlen($mail) > 5)

powinno grać ? smile.gif

A potwierdzenie tak?:

  1. echo "Formularz wysłany";
  2. mail($receiver, $subject, $message, $header);
  3.  
  4. } else {
  5. echo "Wystapił blad";
Damonsson
Chodzi o to, że takie sprawdzanie jest po prostu do bani, ale na upartego może zostać.
overs
Zrobiłem tak ale coś tu nie działa.
  1. <?php
  2. $name = trim($_POST['name']);
  3. $phone = trim($_POST['phone']);
  4. $email = trim($_POST['email']);
  5. $subject = 'temat';
  6. if(strlen($name) > 2 && strlen($phone) > 8 && strlen($mail) > 5)
  7. {
  8. $ip = $_SERVER['REMOTE_ADDR'];
  9. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  10.  
  11. $receiver = 'e-mail';
  12.  
  13.  
  14. $message = "Witam<br>
  15. <p>Nazywam się <b>$name</b>.<br></p>
  16. <p>Kontakt pod numerem telefonu: <b>$phone</b><br>
  17. Mój adres e-mail: <b>$email</b></p>
  18. <p>Wiadomość wysłana z adresu IP $ip Host: $host</p>";
  19.  
  20. $header = "MIME-Version: 1.0\r\n";
  21. $header .= "Content-type:text/html;charset=utf-8\r\n";
  22. $header .= "From: $name <$email>";
  23.  
  24. $send = mail('<'.$receiver.'>', $subject, $message, $header);
  25.  
  26. if ($send) {
  27. echo '<p>Wiadomość została wysłana.</p>';
  28. } else {
  29. echo '<p>Wiadomość nie została wysłana.</p>';
  30. }
  31. ?>
Damonsson
Byłoby naprawdę miło, gdybyś napisał co wink.gif
overs
Hehe ok:

Parse error: syntax error, unexpected $end in /form.php on line 32
Damonsson
Forum, to nie parser kodu.
overs
Ok. W każdym razie dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.