Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak umieścić if w zmiennej
Forum PHP.pl > Forum > Przedszkole
zientek18
Witam Serdecznie, robię formularz kontaktowy i mam pewien problemik.

Oto moje pole Imię w formularzu.

Pytanie nr 1

Jak poniższy kod umieścić w zmiennej ?
Chciałbym, aby komunikat wyświetlał się w określonym miejscu, dlatego muszę go wrzucić w zmienną, ale nie wiem jak to zrobić próbowałem poprzez $zmienna = kod
ale nie udało mi się.

  1. <?php
  2. if (strlen($imie)==0) {
  3.    echo "<p>Pole \"imię\" nie zostało wypełnione (jest puste).</p>";
  4.  } else if (eregi("[0-9]",$imie)) {
  5.    echo "<p>Pole \"imię\" nie może zawierać cyfr...</p>";
  6.  }
  7.    else if (strlen($imie)<=2) {
  8.    echo "Pole \"imię\" musi zawierać co najmniej 3 znaki";
  9.  }
  10.  
  11.     else if (strlen($imie)>=15) {
  12.    echo "Pole \"imię\" nie może zawierać więcej niż 15 znaków";
  13.  }
  14. ?>


Pytanie nr 2
Chciałbym jeszcze dodać do tego kodu, aby nie było można wpisać dwóch ciągów znaków tylko jeden ciąg znaków, bo jak wiadomo imię nie może składać się z dwóch wyrazów, przynajmniej nie w moim formularzu smile.gif Ktoś wie jak to zrobić, przy pomocy jakiej funkcji ?

Pytanie nr 3
Chciałbym, aby nie było możliwości wpisania dwóch takich znaków koło siebie np. "aa" "paatryk" itd. jaka funkcja za to odpowiada ? smile.gif

Uwagi dotyczące kodu mile widziane.

Proszę o pomoc, z góry dziękuję, pozdrawiam
Spawnm
tam gdzie echo daj $tresc='<p>costam</p>';
jeśli mają się te treści dodawać dajesz $tresc.='kolejna';
i na koniec gdzie ci się podoba dajesz echo $tresc;
osl
1. Po co w zmiennej? nie lepiej po prostu treść komunikatu wrzucić do zmiennej i wyświetlić go w odpowiednim miejscu? albo najzwyczajniej wstawić kod php w odpowiednim miejscu? nie rozumiem takiej idei smile.gif
2. Musisz wyszukać czy ciąg zawiera spację - np. strpos()
3. to zapewne da się rozwiązać wyrażeniami regularnymi. Tylko po co? A jak ktoś ma na imię "Anna"?
Spawnm
Cytat(osl @ 7.05.2009, 10:45:40 ) *
1. Po co w zmiennej? nie lepiej po prostu treść komunikatu wrzucić do zmiennej...


Jaśniej proszę blinksmiley.gif
zientek18
Cytat(Spawnm @ 7.05.2009, 08:43:10 ) *
tam gdzie echo daj $tresc='<p>costam</p>';
jeśli mają się te treści dodawać dajesz $tresc.='kolejna';
i na koniec gdzie ci się podoba dajesz echo $tresc;


Ja mam to wszystko w jednym pliku i na początku skryptu.

Ten kod co podałem znajduje się w if ,a echo z wyświetlaniem formularza w else dlaczego ten kod chciałbym dać w zmienną po to aby był czytelny bo tak to zaraz mi się wszystko pokiełbasi.
Dałem cały kod w $zmienna="kod"; jak również $zmienna='kod'; ale niestety nie działa tak.



Cytat(osl @ 7.05.2009, 08:45:40 ) *
1. Po co w zmiennej? nie lepiej po prostu treść komunikatu wrzucić do zmiennej i wyświetlić go w odpowiednim miejscu? albo najzwyczajniej wstawić kod php w odpowiednim miejscu? nie rozumiem takiej idei smile.gif
2. Musisz wyszukać czy ciąg zawiera spację - np. strpos()
3. to zapewne da się rozwiązać wyrażeniami regularnymi. Tylko po co? A jak ktoś ma na imię "Anna"?


1. Po to, aby było mi łatwiej w odczytaniu kodu smile.gif
3. No okej, nie mogłem znaleźć imiona w dwoma takimi samymi znakami, ale widzę, że mi pomogłeś dlatego chciałbym, aby były dopuszczalne dwa takie same koło siebie, ale 3 już nie.
Wyrażeniami regularnymi ? Dużo z tym roboty ?
osl
1. Nie widze specjalnie korzyści w czytelności, skoro i tak musisz to gdzieś wstawić.
Jak już musisz, to może po prostu wyrzuć to do osobnego pliku i wstaw include. Ewentualnie jest jeszcze funkcja eval(), ale tu musisz bardzo uważać ze względu na bezpieczeństwo.
3. No to już zależy jak szybko sobie poradzisz z opanowaniem ich - ale jak już dasz rade, to otworzy to sporo możliwości winksmiley.jpg
tylko się nie przeraź od razu jak to często bywa na początku ;P
Spawnm
  1. <?php
  2. $imie='co';
  3. $tresc=(strlen($imie)==0)?"<p>Pole \"imię\" nie zostało wypełnione (jest puste).</p>":( (eregi("[0-9]",$imie) )?"<p>Pole \"imię\" nie może zawierać cyfr...</p>" : ( (strlen($imie)<=2)?"Pole \"imię\" musi zawierać co najmniej 3 znaki":( (strlen($imie)>=15)?"Pole \"imię\" nie może zawierać więcej niż 15 znaków":'' ) ) );
  4. echo $tresc;
  5. ?>

wszystko ma być w zmiennej? ok, ale eval to przesada.
choć lepiej imho to rozbić jak wcześniej ale jak kto woli:)
zientek18
Cytat(Spawnm @ 7.05.2009, 08:43:10 ) *
tam gdzie echo daj $tresc='<p>costam</p>';
jeśli mają się te treści dodawać dajesz $tresc.='kolejna';
i na koniec gdzie ci się podoba dajesz echo $tresc;


Zrobiłem tak:

  1. <?php
  2. echo $poka='<p style="color: red">Pole "imię" nie zostało wypełnione (jest puste).</p>';
  3. ?>


i w rezultacie teraz mam w dwóch miejscach komunikat, a ja chcę tylko w jednym, gdzie tkwi problem ?
Spawnm
//zapis danych do zmiennej
if(strlen($imie)<3){
$poka='mało';
}
//w dowolnym innym miejscu
echo $poka;

wyświetlasz w 1 miejscu
ryba616
Rozumiem że skrypty chcesz oddzielić od reszty kodu strony ? W tym wypadku najwygodniej będzie użyć funkcji.

  1. <?php
  2.   function sprawdzImie($imie) {
  3.   if (strlen($imie)==0) {
  4.       echo "<p>Pole \"imię\" nie zostało wypełnione (jest puste).</p>";
  5.     } else if (eregi("[0-9]",$imie)) {
  6.       echo "<p>Pole \"imię\" nie może zawierać cyfr...</p>";
  7.     }
  8.       else if (strlen($imie)<=2) {
  9.       echo "Pole \"imię\" musi zawierać co najmniej 3 znaki";
  10.     }
  11.    
  12.        else if (strlen($imie)>=15) {
  13.       echo "Pole \"imię\" nie może zawierać więcej niż 15 znaków";
  14.     }
  15.   }
  16.   ?>


Teraz w miejscu gdzie chcesz "wstawić" ten kod wpisujesz:

  1. <? sprawdzImie($imie); ?>


$imie - zmienna która przechowuje imie które chcesz sprawdzić
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.