Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Formularz email "szczegółowy" ? ;), tylko sie nie śmiać :)
lopik
post
Post #1





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


Więc tak, moim "marzeniem" (; jest zrobić formularz email w php.

Ale taki formularz, który zwraca, zawsze inne info przy źle wypełnionym każdym polu w formularzu.
Chodzi o to że, jak np: ktos wypełni źle pole "email" to napisze że 'źły email' , jak wypełni źle pole 'imie' to napisze 'złe imie' itd.

No i wykombinowałem coś ale napewno źle (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) bo pisałem tylko z głowy, a w głowie jeszcze mam mało informacji o php (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Takie coś wymysliłmem <gafa>

  1. <?php
  2. $imie = $_POST['imie'];
  3. $email = $_POST['email'];
  4. $tresc = $_POST['tresc'];
  5. $tresc_min = 10;
  6.  
  7. if (ereg("[[:alpha:]]" , $imie) and ereg("^[^@]+@([a-z0-9-]+.)+[a-z]{2,4}$" , $email) and strlen($tresc) > $tresc_min)) {
  8. mail("webmas@o2.pl", "Imię: $imie", "Treść $tresc", "OD: $email");
  9. echo "Dziękuję za wysłanie wiadomości";
  10. }
  11. elseif (ereg("[[:digit:]]", $imie)) {
  12. echo "Pole Imię może zawierać wyłącznie litery!"; }
  13.  
  14. elseif (ereg("^[^@]+@([a-z0-9-]+.)+[a-z]{2,4}$", $email) == false) {
  15. echo "Błędnie napisany adres email";
  16. }
  17. elseif (strlen($tresc) > $tresc_min) {
  18. echo "Tresc jest zbyt krótka";
  19. }
  20.  
  21. else { echo "Żle wypełniony formularz"; 
  22. }
  23. ?>


No nic, uprzedze was " Poucz się więcej php" (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
OK poucze sie, codziennie coś czytam ucze sie, no ale szybko sie nie da nauczyć (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

PS.
Czy dużo rzeczy jest tu źle (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ?
Czy da sie tu coś w miare zmienić żeby było dobrze (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ?
Czy może tak tez się nie powinno pisac takiego skryptu php ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Przepraszam za głupi post, już nie będe pisał więcej głupot, tylko pierw się podszkole (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Dzięki
I Przepraszam za głupoty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował pik 15.09.2006, 16:56:00
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




1. Nie uzywasz zmiennej $strlen (w sumie nie ma potrzeby jej tworzenia)
2.
  1. <?php
  2. if (ereg("[[:alpha:]]", $imie) ereg("^[^@]+@([a-z0-9-]+.)+[a-z]{2,4}$", $email) strlen($tresc) > $tresc_min))
  3. ?>

ten warunek jest zle skonstruowany, nie uzywasz operatorow && (AND) ani || (OR) wiec nie ma prawa dzialac (nie wywala bledu?)
3.
  1. <?php
  2. elseif (ereg("^[^@]+@([a-z0-9-]+.)+[a-z]{2,4}$", $email)= false)
  3. ?>

nie = a == (= to przypisanie)
Go to the top of the page
+Quote Post
lopik
post
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


ad1. no tak racja (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
ad2. tu też masz racje, zapomniałem ;/ (wywalało bład, i pisałem że mam źle (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) )
ad3. dokładnie ;/ ups


Poprawiłem kod (poprawiony kod, w 1 poście) i wywala mi taki błąd:
"Parse error: syntax error, unexpected ')' in /home2/webmaker/public_html/php/form.php on line 29"
Go to the top of the page
+Quote Post
phpion
post
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




To moze pokaz okolice linii 29?
Go to the top of the page
+Quote Post
lopik
post
Post #5





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


U mnie linia 29 to jest to: (linia 7 w pierwszym poście)
  1. <?php
  2. if (ereg("[[:alpha:]]" , $imie) and ereg("^[^@]+@([a-z0-9-]+.)+[a-z]{2,4}$" , $email) and strlen($tresc) > $tresc_min)) {
  3. ?>


Ten post edytował pik 15.09.2006, 20:13:27
Go to the top of the page
+Quote Post
Jim
post
Post #6





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 27.07.2005

Ostrzeżenie: (0%)
-----


Cytat
syntax error
oznacza błąd syntaktyczny (składniowy).

Cytat
unexpected ')'
oznacza że parser napotkał na nieprzewidziny znak ')'.

popatrz na swój kod, sprawdź czy wszystkie nawiasy się zgadzają, zobaczysz na końcu o jeden za dużo.
Go to the top of the page
+Quote Post
lopik
post
Post #7





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


No juz mam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ale przcież tak to nie działa, a nikt mi tu tego nie napisał (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

I tak dzięki. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Nie będe pisał nowego tematu, bo to sie tyczy mojego formularza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A więc, formularz mam, i działa (sam nie wieże ze sam go zrobiłem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )

Ale mam takie pytanie, jak formularz jet już wypełniony, i klikam na przycisk "wyśli" i jest jakiś błąd - ok tak ma być, i strona z formularzem jest przeładowana, i wpisana treść z formularza znika - i pytanie takie, czy da się jakoś w miare prosto zrobić, zeby ta treść z formularza nie znikała po przeładowaniu strony w przypadku błędu ?


I jeszcze jedno, jak powinna być napisana funkcja mail() z dodatkowymi nagłówkami, bo coś mi nie wychodzi :|

  1. <?php
  2. mail("aders@poczty.com" , "Wiadomosc z www", $_POST['wiadomosc'], "OD:$_POST['imie']rn email:$_POST['email']");
  3. ?>


W formularzu mam:
- imie
- email
- wiadomosc

I chcial bym wszystkie te dane dostać na mejla.

Dziękuję, za każdą pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
strife
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(pik @ 18.09.2006, 14:50:13 ) *
(...) i strona z formularzem jest przeładowana, i wpisana treść z formularza znika - i pytanie takie, czy da się jakoś w miare prosto zrobić, zeby ta treść z formularza nie znikała po przeładowaniu strony w przypadku błędu ?

Przykładowo w ten sposób:
  1. <form method="post" action="?">
  2. <input type="text" name="tekst" value="<?php echo $_POST['tekst'] ?>" />
  3. <input type="submit" />
  4. </form>

Cytat(pik @ 18.09.2006, 14:50:13 ) *
I jeszcze jedno, jak powinna być napisana funkcja mail() z dodatkowymi nagłówkami, bo coś mi nie wychodzi :|

Poczytaj, dokładnie o mail" title="Zobacz w manualu php" target="_manual i co się wpisuje w nagłówkach ( przeczytaj komentarze ).
Go to the top of the page
+Quote Post
lopik
post
Post #9





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


Ok dzięki, załapałem teraz, przedtem czytałem ale jakoś mi nie wchodziło do głowy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Teraz juz kumam, i juz wszystko zrobione (prawie) (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pyt. 1
Jeszcze jedno (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Wstawiłęm ten kod co podałeś że po przeładowaniu strony w przypadku jakiegos błędu, tresc z formularza nie znika.

A żeby znikała jesli formularz jest dobrze wypełniony, po wysłaniu wiadomości ? da się ?

//

Pyt. 2
I jeszcze zrobiłem sobie takie coś:

  1. <?php
  2. $plik = fopen("plik.txt", "a+");
  3.  
  4. $zapisac = ''.$_POST['imie'].'n'.$_POST['email'].'n'.$_POST['odpisz'].'n'.$_POST['wiadomosc'].'n';
  5.  
  6. if (!empty($zapisac)) {
  7. fwrite($plik, $zapisac); }
  8.  
  9. ?>


I chciał bym zeby dane z formularza były zapisywane kazde w nowej linijce, "imie" w osobnej, "email" w osobnej itd.
Wstawiłem znak "\n" ale nie działa :|

Ten post edytował pik 18.09.2006, 21:50:40
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 20:44