Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co zrobić aby php pilnował czy wypełniono wszystkie pola?
Forum PHP.pl > Forum > PHP
harbii
Mam taki formularz:
  1. <table><tr><td>
  2. </td><td><h1><i>Zamówienie produktu.</i></h1></td></tr>
  3. <tr><td align="right" valign="top">
  4. <form method="post" action="zam.php">
  5. twój e-mail: </td><td><input type="text" name="cc" /></td></tr>
  6. <tr><td align="right" valign="top">
  7. Podaj symbol produktu</td><td>
  8. <textarea name="symbol" cols="50" rows="1">MK-</textarea></td></tr>
  9. <tr><td align="right" valign="top">
  10. Wpisz treść zamówienia</td>
  11. <td>
  12. <textarea name="zamowienie" cols="50" rows="8"></textarea></td></tr><tr><td></td><td align="right" valign="top">
  13. <input type="submit" value="Zamów !" />
  14. </form>
  15. </td></tr></table>


I skrypcik wysyłka:


  1. <?php 
  2. $d = $_REQUEST["symbol"];
  3. $e = $_REQUEST["zamowienie"];
  4. $m = $_REQUEST["cc"];
  5. $headers = "";
  6. if(isset($_REQUEST["cc"])){
  7. $headers .= "cc:" . $_REQUEST["cc"] . "rn";
  8. }
  9. $result = mail("mail@mail.pl", "ZAMÓWIENIE: ".$d."  Od: ".$m,"ZAMÓWIENIE: ".$d."/n"."Od: ".$m."n".$e, $headers);
  10. ?>
?>

Co zrobić aby php pilnowało aby były wypełnione pola z e-mail'em i symbolem, lub aby poprostu wszystkie pola były wypełnione?
Jeżeli któreś wymagane pole jest puste ma napisac np "wpisz e-mail" i oczywiście nie wysyłać dopóki nie wypełni się wymaganych pól.


----------
Prosze pamietac o odpowiednim bbcode!
--
dr_bonzo
PHPSESSID
Hej harbii
sory za takiego przeplatanca i wogole taki prymitywny kod ale dziala a chybba tylko to ci jest potrzebne. Dalem wszytsko do jednego pliku bo tak wygodniej operowac tymi bledami a nie tluc sie z przesylaniem errorow pomiedzy plikami. Zmien se lepiej wyglad tych errorow najlepiej dodaj klase w css i na tym wyswietlaj a nie tak jak ja zrobilem, i wogole proponowal bym ta 'validacje' napisac jeszcze w JS zeby klientowi nie zabierac zcsu i odrazu zeby mial pokazane co ma poprawic. Jak masz jakies inne wymagania co do tej 'validacji' to chyab dasz rade poprawic a jak nie to pisz.

  1. <?php
  2. if(isset($_POST['submit'])){
  3. if(!ereg ("^.+@.+..+$", $_POST['cc'])){$error['mail']="<span style='color: red;'>Nieprawidłowy adres e-mail</span>";}
  4. if(strlen($_POST['symbol'])<=3){$error['symbol']="<span style='color: red;'>Niewybrałeś symbolu</span>";}
  5. if($_POST['zamowienie']==""){$error['zamowienie']="<span style='color: red;'>Niewpisałeś treści zamówienia</span>";}
  6. if(empty($error)){
  7. $d = $_REQUEST["symbol"];
  8. $e = $_REQUEST["zamowienie"];
  9. $m = $_REQUEST["cc"];
  10. $headers = "";
  11. $headers .= "cc:" . $_REQUEST["cc"] . "rn";
  12. $result = mail("mail@mail.pl", "ZAMÓWIENIE: ".$d." Od: ".$m,"ZAMÓWIENIE: ".$d."/n"."Od: ".$m."n".$e, $headers);
  13. echo "Mail zostal wyslany"; die();
  14. }
  15. }
  16.  
  17. ?>
  18.  
  19.  
  20. <table><tr><td>
  21. </td><td><h1><i>Zamówienie produktu.</i></h1></td></tr>
  22. <tr><td align="right" valign="top">
  23. <form method="post" action="?">
  24. twój e-mail: <br /><?php echo $error['mail']; ?></td><td><input type="text" name="cc" value="<?php echo $_POST['cc']; ?>" /></td></tr>
  25. <tr><td align="right" valign="top">
  26. Podaj symbol produktu: <br /><?php echo $error['symbol']; ?></td><td>
  27. <textarea name="symbol" cols="50" rows="1"><?php echo !$error['symbol']?$_POST['symbol']:'MK-'; ?></textarea></td></tr>
  28. <tr><td align="right" valign="top">
  29. Wpisz treść zamówienia: <br /><?php echo $error['zamowienie']; ?></td>
  30. <td>
  31. <textarea name="zamowienie" cols="50" rows="8"><?php echo $_POST['zamowienie']; ?></textarea></td></tr><tr><td></td><td align="right" valign="top">
  32. <input type="submit" name="submit" value="Zamów !" />
  33. </form>
  34. </td></tr></table>
nasty
Cytat
sory za takiego przeplatanca i wogole taki prymitywny kod ale dziala a chybba tylko to ci jest potrzebne.


z tym sie nie zgodze, nie chodzi o to zeby tylko zrobic ale zeby zrobic to dobrze, pamietaj o tym a ci sporo w zyciu pomoze....

chodzi o to zeby kod nie byl dzirawy, wolny albo podatny na bledy...
co do tego kodu co postowales, to sie nie czepiam ale sie czepiam do twojej filozofji
PHPSESSID
heh nasty_psycho wcale niemam takiej filozofii smile.gif zauwaz ze gdybym mial taka filozofie to bym nie przepraszal za jakosc kodu, bo bym tego nie zauwazyl. Widze ze harbiemu zalezy zeby dzialalo, to szybko odpusuje w miare czytelnym kodem. Milo widziec ze ludzie zwracaja na takie rzeczy uwage, a harbii sie chyba nie obrazi ^^
harbii
kurde wywala błąd
Notice: Undefined variable: error in c:\serwer\www\mk-jubiler\zamow.php on line 24
Notice: Undefined variable: error in c:\serwer\www\mk-jubiler\zamow.php on line 26
Notice: Undefined variable: error in c:\serwer\www\mk-jubiler\zamow.php on line 29

a w txtboxy mail i symbol wrzuca tekst: <br />
a w tresci : <br />
<b>Notice</b>: Undefined index: zamowienie in <b>c:\serwer\www\mk-jubiler\zamow.php</b> on line <b>31</b><br />

help. blinksmiley.gif
PHPSESSID
daj na poczatku
  1. <?php
  2. error_reporting(E_ALL^E_NOTICE^E_WARNING);
  3. ?>


php poprostu wywala tz. uwage gdyz kazemy mu operowac na nieistniejacej zmiennej, tak jest tylko jak te zmienne $_POST niemaja wartosci (a raczej nei istnieja tongue.gif )
, no i przez to ze wypisuje ten blad to wcina sie w htmla przypadkowo

sory ze tego nie zauwazylem wczesniej ale mam wylaczone E_NOTICE I E_WARNING
harbii
ok. błąd znikł
ale po wciśnięciu zamów otwiera mi się startowa stronka
(bez znaczenia czy coś wpiszę czy nie)

i gdzie wcisnąć from:... bo doczytałem ze w php.ini ale tam nie mam dostępu
PHPSESSID
Kod
<form method="post" action="?">
daj w action sciezke do tego samego pliku

Kod
$headers .= "cc:" . $_REQUEST["cc"] . "\r\n";


tak jak masz 'Cc', tak daj 'From:' czy tez 'Reply-To:'
harbii
nie działa sad.gif
już jest ok wizualnie ale nie wysyła maili
erix
A mail W OGOLE Ci dziala?
harbii
Cytat(PHPSESSID @ 17.06.2006, 16:09 ) *
Kod
<form method="post" action="?">
daj w action sciezke do tego samego pliku

Kod
$headers .= "cc:" . $_REQUEST["cc"] . "\r\n";


tak jak masz 'Cc', tak daj 'From:' czy tez 'Reply-To:'


Gdzie konkretnie wpisać ten kod aby działał from? czy replay-to?
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.