Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML] Problem z instrukcją IF
Sublove
post 24.01.2009, 21:28:30
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


Cześć Wam
Siedzię dziś pól dnia i nie wiem co jest. Otóż,
Mam stronę kontakt.php
Na tej stronie jest formularz oraz skrypt php jednocześnie.
Wiem, że można zrobić tak, że nie dając "action" w FORM, ten wykona się na tej samej stronie... tak też próbuję ale...
wpisując wartośći do formularza, instrukcja IF sprawdza czy nie ma gdzieś pustego pola, jeżeli jest to wywala mnie jakby w połowie strony i nie formatuje już HTML-owo strony tylko ucina ją w połowie (menu ucieka naprzykła).
Chciałbym żeby poprostu do tego co mam na stronie dodawał się jeden z dwóch komunikatów pętli IF - Wysłano albo Nie wysłano
Nie wiem co robię źle sad.gif

Załączam poniżej mój plik
  1. <?php
  2. $Name = $_POST['imienad'];
  3. $email = $_POST['mailnad'];
  4. $recipient = "[email="tomczak@gandalf.mac.edu.pl"]tomczak@gandalf.mac.edu.pl[/email]";  
  5. $mail_body = $_POST['tresc'];
  6. $subject = "Zapytanie ze strony www";
  7. if(empty($Name) OR empty($email) OR empty($mail_body))
  8. {
  9. Błąd!<br/>
  10. Upewnij się czy wypełniłeś wszystkie pola...<br/>';
  11. }
  12. $header = "From: ". $Name . " <" . $email . ">r\n";
  13. $header .= "Content-type: text/html; charset=iso-8859-2r\n";
  14. $header .= "Content-Transfer-Encoding: 8bitr\n ";
  15. mail($recipient, $subject, $mail_body, $header);
  16. echo 'Wysłano zapytanie';
  17. ?>
Go to the top of the page
+Quote Post
erix
post 24.01.2009, 21:32:49
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. ?>

To Ci ucina. winksmiley.jpg

Zamiast tego, użyj else" title="Zobacz w manualu PHP" target="_manual w instrukcji warunkowej.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sublove
post 24.01.2009, 21:43:49
Post #3





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


no i już Cię lubię smile.gif Dzięki
ale teraz inny problem... Jeżeli odpalę ten plik, to automatycznie widzę komunikat który pojawia się przy błędzie... tak jakby od razu po wywołaniu tego pliku, jeszcze przed wprowadzeniem jakich kolwiek danych, już sprawdzał pola... w zasadzie to logiczne bo są jaby puste... co na to poradzić można?
Tak, żeby ten IF od razu nie sprawdzał po wczytaniu pliku ze sktryptem, ale dopiero po kliknięciu SUBMITa.
Go to the top of the page
+Quote Post
Cienki1980
post 24.01.2009, 21:48:39
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Wystarczy jak zrobisz takie coś :

  1. <!--formularz-->
  2. <input type="submit" name="wyslij" value="Send">


a potem w php
  1. <?php
  2. //warunek sprawdzajcy czy formularz wyslany
  3. if (isset($_POST['wyslij']) && $_POST['wyslij'] == 'Send') {
  4.  //pozostale warunki sprawdzajace czy pola nie sa puste
  5. // i wyslanie maila
  6. }
  7. ?>


--------------------
404
Go to the top of the page
+Quote Post
deirathe
post 24.01.2009, 21:48:42
Post #5





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

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


dodaj sobie w formularzu ukryte pole o jakiejs wartosci i sprawdzaj czy ma wartosc,np:
  1. <input type="hidden" name="send" value="true" />



i sprawdzaj przez
  1. <?php
  2. isset($_POST['send']) and $_POST['send'] == "true"
  3. ?>



taki przyklad



//nie zdazylem tongue.gif

--
jesteś już tyle czasu na forum, a co z bbcode?

erix


Ten post edytował erix 24.01.2009, 22:01:35


--------------------
Kawałek mojego blogu
Everything should be as simple as possible but not simpler.
A Einstein
Go to the top of the page
+Quote Post
Sublove
post 24.01.2009, 22:07:00
Post #6





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


bardzo Wam dziękuje, teraz śmiga jak szalony smile.gif

Ogólnie muszę zrobić bardzo restrykcyjne pola formularzy, idioto odporne wręcz smile.gif

1.Chciałbym aby pole email koniecznie zawierało małpę w nazwie, jak zbadać zmienną pod tym kątem w php?
2.Czy jest gdzieś jakaś ładna zbiórka wiedzy poza php.pl.... smile.gif gdzie jest więcej o robieniu takich restrykcyjych formularzy? O zakładaniu ograniczeń?
3. Mam bazę w Postrgresie, tam w tabeli są wyrazy pisane raz z dużej raz z małej, zrobiłem wyszukiwarkę i chciałbym aby niezależnie jakimi literami się wpisze (wielkie czy małe) to mogło odnaleźć wyraz w tabeli.. mamy na to jakiś patent ?

Dzięki z góry i sorry za zawracanie gitary ale nie mam aż takiej wiedzy sad.gif
Go to the top of the page
+Quote Post
erix
post 24.01.2009, 22:27:55
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
1.Chciałbym aby pole email koniecznie zawierało małpę w nazwie, jak zbadać zmienną pod tym kątem w php?

strpos" title="Zobacz w manualu PHP" target="_manual

Cytat
2.Czy jest gdzieś jakaś ładna zbiórka wiedzy poza php.pl.... gdzie jest więcej o robieniu takich restrykcyjych formularzy? O zakładaniu ograniczeń?

Hmm, a w jakim celu szukać takich "zbiórek"? Właściwie, to wystarczą gotowce w stylu: http://www.phpclasses.org/browse/package/1.html

Cytat
3. Mam bazę w Postrgresie, tam w tabeli są wyrazy pisane raz z dużej raz z małej, zrobiłem wyszukiwarkę i chciałbym aby niezależnie jakimi literami się wpisze (wielkie czy małe) to mogło odnaleźć wyraz w tabeli.. mamy na to jakiś patent ?

  1. SELECT * FROM test1 WHERE lower(col1) = 'value'


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sublove
post 24.01.2009, 22:46:28
Post #8





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


Cytat(erix @ 24.01.2009, 22:27:55 ) *
  1. SELECT * FROM test1 WHERE lower(col1) = 'value'


Spoko, dziękuję
Tylko gdzie dodać tą funkcję w takim zapytaniu
Przed LIKE czy po LIKE?

  1. <?php
  2. $query = "SELECT nazwa, kategoria, marka, model, producent, roczniki, zapas FROM parts WHERE
  3. nazwa LIKE '%".$nazwa."%' AND
  4. marka LIKE '%".$marka."%' AND
  5. model LIKE '%".$model."%' AND
  6. kategoria LIKE '%".$kategoria."%'
  7. ORDER BY nazwa";
  8. ?>
Go to the top of the page
+Quote Post
erix
post 24.01.2009, 23:05:04
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. lower(nazwa) LIKE '%".$nazwa."%' AND


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sublove
post 24.01.2009, 23:25:18
Post #10





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


Cytat(erix @ 24.01.2009, 23:05:04 ) *
  1. lower(nazwa) LIKE '%".$nazwa."%' AND


Rozumiem, ale sprawa jest taka, że w bazie danych mam pisane raz dużą a raz małą literą (mam pole opisowe które niestety musi mieś kilka wyrazów, jest to opis części samochodowych i naprzykład "Drążek kierowniczy LEWY") I tu jest problem bo chciałbym móc znaleźć z tego pola nie ważne czy wpiszę: Drążek czy DrĄżeK, lEwy czy LEWy... poprostu żeby nie zwracał uwagi na wielkość liter. Podobnie chciałbym zrobić dla polskich znaków, żeby działało w obie stronty, wpisująć drążek, żeby znalazł drazek, i wpisująć drazek żeby mógł znaleźć drążek... jest na to metoda ?
Go to the top of the page
+Quote Post
erix
post 24.01.2009, 23:29:30
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Drążek czy DrĄżeK, lEwy czy LEWy... poprostu żeby nie zwracał uwagi na wielkość liter

Właśnie w ten sposób. Tylko $nazwa też zmniejszasz i po kłopocie. Małe = małe, nie będzie wtedy problemu.

Cytat
wpisująć drążek, żeby znalazł drazek, i wpisująć drazek żeby mógł znaleźć drążek

Nie jestem specem od PostgreSQL, ale trzeba by było chyba napisać najpierw procedurę zamieniającą diakrytyki na odpowiedniki łacińskie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sublove
post 25.01.2009, 00:11:05
Post #12





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


Cytat(erix @ 24.01.2009, 23:29:30 ) *
Właśnie w ten sposób. Tylko $nazwa też zmniejszasz i po kłopocie. Małe = małe, nie będzie wtedy problemu.


Nie jestem specem od PostgreSQL, ale trzeba by było chyba napisać najpierw procedurę zamieniającą diakrytyki na odpowiedniki łacińskie.



Kolejny raz mi pomogłeś smile.gif Dzięki wielkie smile.gif

Ale zrodził mi isę jeszcze jeden problem....

Jak nie znajdzie żadnych wyników zapytania to nie drukuje mi mojego komunikatu który jest printf ("Brak takij części w magazynie");

Co tym razem robię źle?


  1. <?php
  2. $query = "SELECT nazwa, marka, model, roczniki, zapas FROM parts WHERE
  3. lower(nazwa) LIKE lower('%".$nazwa."%') AND
  4. lower(marka) LIKE lower('%".$marka."%') AND
  5. lower(model) LIKE lower('%".$model."%')
  6. ORDER BY nazwa";
  7.  
  8. $result = pg_exec($db, $query);
  9. if (!$result) {
  10. printf ("Brak takij części w magazynie");
  11. }
  12. else
  13. {
  14. $numrows = pg_numrows($result);
  15. $row=0;
  16. printf ("<table width=530>");
  17. printf ("<tr>
  18.  
  19. <td height=30 align=center>Nazwa</td>
  20. <td height=30 align=center>Marka</td>
  21. <td height=30 align=center>Model</td>
  22. <td height=30 align=center>Roczniki</td>
  23. <td height=30 align=center>Zapas</td>
  24. </tr>");
  25. do
  26. {
  27. $myrow = pg_fetch_row ($result);
  28. printf ("<tr><td height=30 >%s</td>
  29. <td height=20 >%s</td>
  30. <td height=20 >%s</td>
  31. <td height=20 >%s</td>
  32. <td height=20 >%s</td>
  33. </tr>",
  34. $myrow[0], $myrow[1], $myrow[2], $myrow[3], $myrow[4]
  35.  
  36. );
  37. $row++;
  38. }
  39.  
  40. while ($row < $numrows);
  41.  
  42. printf ("</table>");
  43. }
  44. ?>








Help please.... sad.gif
Go to the top of the page
+Quote Post
erix
post 25.01.2009, 00:47:49
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. $result = pg_exec($db, $query);
  3. if (!$result) {
  4. ?>

Ono zwróci powodzenie wykonania zapytania. A jeśli chodzi o zwrócone wyniki: wywołujesz przecież:
  1. <?php
  2. $numrows = pg_numrows($result);
  3. $row=0;
  4. ?>

Śmignij to przed warunkiem i sprawdzaj $numrows, a nie pg_exec. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sublove
post 25.01.2009, 01:08:33
Post #14





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


JEst już pół sukcesu, jest komentarz smile.gif Dziękuję po raz n++ biggrin.gif

Ale jeszcze prócz komunikatu są takie krzaki:

Warning: pg_fetch_row() [function.pg-fetch-row]: Unable to jump to row 0 on PostgreSQL result index 3 in /home/informatyka/2004/19dr-q-1/tomczak/public_html/wyszukaj.php on line 72
a poniżej nagłówki tabeli same zwraca

NazwaMarkaModelRocznikiZapasCo możemy poradzić zeby był sam ładny czysty komunikat?
Dlaczego tak się dzieje?
Go to the top of the page
+Quote Post
erix
post 25.01.2009, 01:14:14
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jeśli masz zero rekordów, to już nie wykonuj tamtej pętli.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sublove
post 25.01.2009, 01:18:44
Post #16





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


tzn wywalić wogóle mam ze skryptu pętlę DO WHILE ?
Bo ona to się raz wykona zawsze jak nic smile.gif
Pomógłbyś mi to zamienić bo czuję że nie ogarnę :/

Może kodzik dla przypomnienia dam

  1. <?php
  2. $numrows = pg_numrows($result);
  3. $row=0;
  4. if (!$numrows)
  5. { printf("Brak takiej części w bazie");
  6. }
  7.  
  8. printf ("<table width=530>");
  9. printf ("<tr>
  10.  
  11. <td height=30 align=center>Nazwa</td>
  12. <td height=30 align=center>Marka</td>
  13. <td height=30 align=center>Model</td>
  14. <td height=30 align=center>Roczniki</td>
  15. <td height=30 align=center>Zapas</td>
  16. </tr>");
  17. do
  18. {
  19. @$myrow = pg_fetch_row ($result,$row);
  20. printf ("<tr><td height=30 >%s</td>
  21. <td height=20 >%s</td>
  22. <td height=20 >%s</td>
  23. <td height=20 >%s</td>
  24. <td height=20 >%s</td>
  25. </tr>",
  26. $myrow[0], $myrow[1], $myrow[2], $myrow[3], $myrow[4]
  27.  
  28. );
  29. $row++;
  30. }
  31.  
  32. while ($row < $numrows);
  33.  
  34. printf ("</table>");
  35. }
  36. ?>


Ten post edytował Sublove 25.01.2009, 01:21:43
Go to the top of the page
+Quote Post
erix
post 25.01.2009, 01:23:02
Post #17





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
tzn wywalić wogóle mam ze skryptu pętlę DO WHILE ?
Bo ona to się raz wykona zawsze jak nic
Pomógłbyś mi to zamienić bo czuję że nie ogarnę :/

NIE wywalić, a nie wykonywać, jeśli nie ma rekordów. Oducz się tej małpy przed funkcjami, to zły zwyczaj.

Jest takie magiczne słówko, jak else" title="Zobacz w manualu PHP" target="_manual. tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Sublove
post 25.01.2009, 01:34:13
Post #18





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 23.01.2009

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


nie wiem czy pijasz piwo ale mogę Ci je kupić winksmiley.jpg Baaardzo dziękuję, hula jak należy smile.gif

A mógłbyś mi jeszcze rozwinać zastosowanie tej funkcji co pomoże mi wymusić prawidłowy adres mail?
Chciałbym aby ta małpa się pojawiła... smile.gif
ładnie proszę biggrin.gif
Go to the top of the page
+Quote Post
erix
post 25.01.2009, 01:36:29
Post #19





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przecież napisałem: http://forum.php.pl/index.php?s=&showt...st&p=562405

strpos" title="Zobacz w manualu PHP" target="_manual, szukasz małpy -> jeśli nie ma, adres do bani. A przykład użycia jest w manualu.

Cytat
nie wiem czy pijasz piwo ale mogę Ci je kupić

Nie piję. ;P


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 13.06.2025 - 22:53