Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Formularz - długość
ols1994
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.06.2009

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


Witam... Jestem nowy na forum i od niedawna interesuję się PHP wiele już umiem lecz jeszcze dużo przede mną. Mam pewien problem. Przerabiam pewien silnik gry i robię dla niej Teamy. Na początku sprawdzam if'em czy gracz zalogowany ma team jeśli tak to go do niego przenosi jeśli nie to wyskakuje okienko do założenia teamu... I tu zaczynają się schody;/ Moglibyście mi powiedzieć jak zrobić żeby nazwa teamu miała minimum 4 znaki a max. 16 i Tag: min. 3znaki max. 5. Nie mam pomysłu jak to zrobić;/
Z góry dziękuje za odpowiedź i pozdrawiam:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


strlen" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
mac_fly
post
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 18
Dołączył: 11.08.2008
Skąd: 127.0.0.1

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


  1. <?php
  2. $nazwa_team=//$_POST;
  3. $nazwa_team2=strlen($nazwa_team);
  4. if($nazwa_team2<4)
  5. {
  6. echo"Musza byc co najmniej 4 znaki";
  7. }
  8. ?>

powyższy przykład do mininum znaków, a teraz możesz max ustawić albo w formularzu np. maxlength(html) bądź w php odbierasz i wrzucasz do funkcji substr.

//P.S. w html możesz z tym maxlength tak:<input type="text" name="nazwa_team" maxlength="16">

Ten post edytował mac_fly 22.07.2009, 20:27:26
Go to the top of the page
+Quote Post
#luq
post
Post #4





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Cytat(mac_fly @ 22.07.2009, 21:24:33 ) *
//P.S. w html możesz z tym maxlength tak:<input type="text" name="nazwa_team" maxlength="16">

Tyle, że to w bardzo prosty sposób da się ominąć
Go to the top of the page
+Quote Post
erix
post
Post #5





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




~nospor kiedyś podał fajny sposób, który jest wydajniejszy od:
  1. <?php
  2. $nazwa_team=//$_POST;
  3. $nazwa_team2=strlen($nazwa_team);
  4. if($nazwa_team2<4)
  5. {
  6. echo"Musza byc co najmniej 4 znaki";
  7. }
  8. ?>


:
  1. <?php
  2. if(!isset($zmienna{3})){
  3. //zmienna krotsza niz 4 znaki
  4. }
  5. ?>
Go to the top of the page
+Quote Post
ols1994
post
Post #6





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.06.2009

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


Czyli ten przykład który podał Erix jest najlepszy?
Go to the top of the page
+Quote Post
Asmox
post
Post #7





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Skoro uczysz się php i sporo już wiesz, na pewno znasz sposób definiowania funkcji. Możesz stworzyć funkcję dla siebie testującą długość znaków danego parametru.
  1. <?php
  2. function testlength($zmienna, $params) { // $zmienna typu string, a $params typu array
  3. // Jeżeli drugi parametr to na przykład array(\"min\" => 3, \"max\" =>16) to odczytując klucze i wartości funkcja dowiaduje się ograniczeń
  4. }
  5. ?>

No i jak napiszesz tę funkcję (jakbyś miał problemy śmiało pisz w temacie lub na pw, a może masz własną koncepcję?) to robisz tak jak chciałeś:
  1. <?php
  2. if(testlength($team, array("min" => 3, "max" => 16)) && testlength($tag, array("min" => 3, "max" => 5))) {
  3. //warunki spełnione :)
  4. }
  5. ?>


Ten post edytował Asmox 22.07.2009, 21:24:04
Go to the top of the page
+Quote Post
tomekpl
post
Post #8





Grupa: Zarejestrowani
Postów: 134
Pomógł: 5
Dołączył: 9.08.2008
Skąd: Szczecin

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


To ja podzielę się z tobą moją funkcją do sprawdzania długości (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. <?php
  2. if(preg_match("/^[0-9A-Z@]{4,16}$/i", $nazwa) ){
  3. dobra nazwa
  4. }else{
  5. za d&#322;uga bądź za krótka
  6. }
  7. ?>


[0-9A-Z@] - Tutaj określasz jakie znaki mają być użyte. Dobra do rejestracji, żeby nie rejestrowali się na polskie litery i znaki specjalne.
{4,16} - tutaj wiadomo

Pzdr

Ten post edytował tomekpl 23.07.2009, 02:37:47
Go to the top of the page
+Quote Post
ols1994
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.06.2009

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


Dziękuje wszystkim za pomoc:) wpadłem na coś takiego:
  1. <?php
  2. $nazwaa = strlen($nazwa);
  3.       $tagg = strlen($tag);
  4.      if($nazwaa > 3 && $nazwaa < 16 && $tagg >3 && $tagg < 5){
  5. //co jeżleli się spełni
  6. }
  7. else{
  8. echo "Liczba znaków w nazwie oraz tagu nie powinna być mniejsza od 3";
  9. }
  10. ?>


Dobrze wymyśliłem? Nawet działa:)
Najbardziej mi pomogła wypowiedź mac_fly i dlatego specjalne podziękowania:)

Ten post edytował ols1994 23.07.2009, 07:25:36
Go to the top of the page
+Quote Post
Kojak
post
Post #10





Grupa: Zarejestrowani
Postów: 70
Pomógł: 5
Dołączył: 11.09.2007
Skąd: Kielce

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


Ale jak dasz długość 3 dla tagu teamu to będzie za krótkie. Zrób najlepiej funkcję coś w stylu:

  1. <?php
  2. function InCorrectLenght($wartosc, $min, $max)                // sprawdzanie poprawności długości wpisanego tekstu
  3. {
  4.    if (strlen($wartosc) >= $min && strlen($wartosc) <= $max) return false;
  5.    else return true;
  6. }
  7.  
  8. if (InCorrectLenght($nazwa, 4, 16)) echo 'Błędna długość nazwy zespołu';
  9. else echo 'Poprawna długość';
  10.  
  11. if (InCorrectLenght($tag, 3, 5)) echo 'Błędna długość tagu zespołu';
  12. else echo 'Poprawna długość';
  13. ?>


Ten post edytował Kojak 23.07.2009, 07:32:23
Go to the top of the page
+Quote Post
ols1994
post
Post #11





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 29.06.2009

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


Ale w tym wypadku mogę dać 2 if'y jeden z nazwą drugi z tagiem... Chyba że się mylę...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 18:43