Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Mały problem z if'em
Forum PHP.pl > Forum > Przedszkole
ryba303
  1. <?php
  2. $osoba = addslashes(nl2br(htmlspecialchars($_POST['osoba'])));
  3. $wpis = addslashes(nl2br(htmlspecialchars($_POST['wpis'])));
  4.  
  5. if(isset($_POST['send']))
  6. {
  7. if (strlen($osoba) > 5 ){
  8. echo "Za dużo znaków";
  9. }
  10. elseif (strlen($wpis) > 5 ){
  11. echo "Za dużo znaków";
  12. }
  13. elseif(empty($osoba)){
  14. echo "<table border=\"5\" width=\"100%\"><tr><td align=\"center\"><b>";
  15. echo "Nie podałeś nicku";
  16. echo "</b></td></tr></table>";
  17. }
  18. elseif(empty($wpis)){
  19. echo "<table border=\"5\" width=\"100%\"><tr><td align=\"center\"><b>";
  20. echo "Nic nie wpisałeś";
  21. echo "</b></td></tr></table>";
  22. }
  23. else {
  24. header("Location: wyslane.php");
  25. } }
  26. ?>



chodzi dokladnie o to
  1. <?php
  2. if (strlen($osoba) > 5 ){
  3. echo "Za dużo znaków";
  4. }
  5. elseif (strlen($wpis) > 5 ){
  6. echo "Za dużo znaków";
  7. }
  8. ?>



na mój gust powinno sprawdzić czy ma więcej niż 5 znaków jeśli tak to komunikat jeśli nie to sprawdza resztę no i w sumie tak robi tylko że komentarz i tak jest zatwierdzany czyli się wyświetla nawet jeśli przekroczy sie te 5 znaków worriedsmiley.gif
parzygnat
Dziwnie sformuowałeś to swoje pytanie bo cieżko odpowiedzieć smile.gif Brak logiki. Napisz może jeszcze raz.
ryba303
Chodzi o to, że jak przekrocze te 5 znaków to owszem wyskakuje komunikat, że jest za dużo znaków, ale też zatwierdza ten komentarz a chodzi mi o to że ma wyskoczyć tylko komunikat.
hiszpanespaniol
może komentarz jest dodawany zanim Twój skrypt go zwaliduje? jeśli nie, to może zamiast echo, że "za dużo znaków" daj header do pliku z tym napisem. albo daj exit() pod echem.

edit:
dla przykładu:
exit ("za dużo znaków");
ryba303
Cała ta formułka jest dana przed dodaniem komentarza.
Rozawiazanie z header mam ale tam musze dawac linka powrotnego a bardziej mi zalezy na tym.
Z
exit;
pod
echo;
tez robiłem i działa ale wtedy też musze dac linka powrotnego bo na stronie zostaje wyswietlony tylko komunikat, formularz i komentarze znikaja.
hiszpanespaniol
jeśli "cała ta formułka jest dana przed dodaniem komentarza, to też źle.
dodanie komentarza (wpis do bazy, czy pliku tekstowego) powinno się odbywać wewnątrz if'a, czyli w miejscu, gdzie Ty masz:

  1. <?php
  2. header("Location: wyslane.php");
  3. ?>


jeżeli tam będzie, to wszystko bedzie w porządku. oprócz dodania wpisu do księgi, możesz tam jeszcze dać dowolne "echa" żeby Ci się stronka wyświetlała taka jaką chcesz
ryba303
  1. <?php
  2. $osoba = addslashes(nl2br(htmlspecialchars($_POST['osoba'])));
  3. $wpis = addslashes(nl2br(htmlspecialchars($_POST['wpis'])));
  4.  
  5. if(isset($_POST['send']))
  6. {
  7. if (strlen($osoba) > 5 ){
  8. echo ("Za dużo znaków");
  9. }
  10. elseif (strlen($wpis) > 5 ){
  11. echo "Za dużo znaków";
  12. }
  13. elseif(empty($osoba)){
  14. echo "<table border=\"5\" width=\"100%\"><tr><td align=\"center\"><b>";
  15. echo "Nie podałeś nicku";
  16. echo "</b></td></tr></table>";
  17. }
  18. elseif(empty($wpis)){
  19. echo "<table border=\"5\" width=\"100%\"><tr><td align=\"center\"><b>";
  20. echo "Nic nie wpisałeś";
  21. echo "</b></td></tr></table>";
  22. }//dodanie do bazy
  23. elseif ($osoba && $wpis) {
  24.  
  25.  $query = "INSERT INTO ksiegagosci (data, osoba ,wpis) " .
  26. "VALUES (now(), '$osoba', '$wpis' );";
  27.  $wynik = mysql_query ($query)
  28. or die ("Nieporawne zapytanie : ". mysql_error());
  29. }
  30. else {
  31. header("Location: wyslane.php");
  32. }  }
  33. ?>


Teraz jesli juz jest za dużo znaków wyswietla komunikat tak jak chce czyli jak za duzo znakow to blad no i oczywiscie wpis nie dodany plus to ze nie musze dawac zadnych linkow zwronych bo komunikat jest nad formularzem no ale pojawil sie kolejny problem nie przerzuca mnie do strony wysłane.php po zatwierdzeniu komentarza sadsmiley02.gif
nithajasz
Bo masz przekierowanie w zupełnie innym miejscu. Co masz w tym wyslane, że chcesz tam iść zarówno jak nie dodasz nic do bazy jak i dodasz? Bo tak wnioskuje po Twoich postach..
ryba303
Ma mnie tam przeniesc po dodaniu komentarza i po sprawdzeniu tego co tam jest u gory a tam poprostu jest link powrotny do komentarzy. Robie to dlatego zeby obejsc odswiezanie bo poki co to sie ucze i innego spspobu jeszcze nie umie.
nithajasz
  1. <?php
  2. $osoba = addslashes(nl2br(htmlspecialchars($_POST['osoba'])));
  3. $wpis = addslashes(nl2br(htmlspecialchars($_POST['wpis'])));
  4.  
  5. if(isset($_POST['send']))
  6. {
  7.  if (strlen($osoba) > 5 ){ echo "Za dużo znaków";}
  8.  elseif (strlen($wpis) > 5 ){echo "Za dużo znaków";}
  9.  elseif(empty($osoba)){
  10. echo "<table border=\"5\" width=\"100%\"><tr><td align=\"center\"><b>";
  11. echo "Nie podałeś nicku";
  12. echo "</b></td></tr></table>";
  13.  }
  14.  elseif(empty($wpis)){
  15.  echo "<table border=\"5\" width=\"100%\"><tr><td align=\"center\"><b>";
  16.  echo "Nic nie wpisałeś";
  17.  echo "</b></td></tr></table>";
  18.  }
  19.  elseif ($osoba && $wpis) {
  20.  
  21.  $query = "INSERT INTO ksiegagosci (data, osoba ,wpis) " .
  22. "VALUES (now(), '$osoba', '$wpis' );";
  23.  if($wynik = mysql_query ($query)){ header("Location: wyslane.php"); }
  24.  else die ("Nieporawne zapytanie : ". mysql_error());
  25. }
  26. }
  27. ?>
ryba303
Bosko dzieki smile.gif
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.