Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak umieścić if w zmiennej
zientek18
post 7.05.2009, 09:40:16
Post #1





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

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


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
Go to the top of the page
+Quote Post
Spawnm
post 7.05.2009, 09:43:10
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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;
Go to the top of the page
+Quote Post
osl
post 7.05.2009, 09:45:40
Post #3





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

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


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"?
Go to the top of the page
+Quote Post
Spawnm
post 7.05.2009, 09:59:03
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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
Go to the top of the page
+Quote Post
zientek18
post 7.05.2009, 09:59:36
Post #5





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

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


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 ?
Go to the top of the page
+Quote Post
osl
post 7.05.2009, 10:15:44
Post #6





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

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


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
Go to the top of the page
+Quote Post
Spawnm
post 7.05.2009, 10:27:51
Post #7





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




  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:)

Ten post edytował Spawnm 7.05.2009, 10:32:40
Go to the top of the page
+Quote Post
zientek18
post 7.05.2009, 12:14:14
Post #8





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

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


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 ?
Go to the top of the page
+Quote Post
Spawnm
post 7.05.2009, 12:16:39
Post #9





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




//zapis danych do zmiennej
if(strlen($imie)<3){
$poka='mało';
}
//w dowolnym innym miejscu
echo $poka;

wyświetlasz w 1 miejscu
Go to the top of the page
+Quote Post
ryba616
post 9.05.2009, 23:57:41
Post #10





Grupa: Zarejestrowani
Postów: 8
Pomógł: 1
Dołączył: 11.01.2009

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


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ć

Ten post edytował ryba616 9.05.2009, 23:59:47
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 - 11:39