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 15.09.2006, 16:03:39
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 winksmiley.jpg bo pisałem tylko z głowy, a w głowie jeszcze mam mało informacji o php 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" winksmiley.jpg
OK poucze sie, codziennie coś czytam ucze sie, no ale szybko sie nie da nauczyć winksmiley.jpg

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

Przepraszam za głupi post, już nie będe pisał więcej głupot, tylko pierw się podszkole winksmiley.jpg

Dzięki
I Przepraszam za głupoty smile.gif

Ten post edytował pik 15.09.2006, 16:56:00


--------------------
w3c & c++
Go to the top of the page
+Quote Post
phpion
post 15.09.2006, 16:46:18
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 15.09.2006, 16:56:29
Post #3





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

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


ad1. no tak racja smile.gif
ad2. tu też masz racje, zapomniałem ;/ (wywalało bład, i pisałem że mam źle 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"


--------------------
w3c & c++
Go to the top of the page
+Quote Post
phpion
post 15.09.2006, 19:58:27
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 15.09.2006, 20:12:57
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


--------------------
w3c & c++
Go to the top of the page
+Quote Post
Jim
post 15.09.2006, 20:23:11
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 18.09.2006, 13:50:13
Post #7





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

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


No juz mam smile.gif

Ale przcież tak to nie działa, a nikt mi tu tego nie napisał winksmiley.jpg

I tak dzięki. smile.gif

Nie będe pisał nowego tematu, bo to sie tyczy mojego formularza smile.gif

A więc, formularz mam, i działa (sam nie wieże ze sam go zrobiłem 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 smile.gif


--------------------
w3c & c++
Go to the top of the page
+Quote Post
strife
post 18.09.2006, 14:21:43
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 18.09.2006, 21:49:25
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 winksmiley.jpg

Teraz juz kumam, i juz wszystko zrobione (prawie) winksmiley.jpg

Pyt. 1
Jeszcze jedno 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


--------------------
w3c & c++
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:43