Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Pomoc przy stworzeniu metody z strlen
#1
Witam,
Próbuję stworzyć funkcję z strlen, kombinuję, kombinuję i nie wiem jak dokończyć. Proszę o nakierowanie.

Kod PHP:
public function min_max($val_min$val_max$argument) {
        
$val_min strlen($argument) > $val_min;
        
$val_max strlen($argument) < $val_max;
        if (
$minmax = ($val_min or $val_max)) {
            return 
$minmax;
        }
    } 

Używać chciałbym mniej więcej tak:
Kod PHP:
if ($this->min_max(325$_POST['tytul']) == false) {
                    echo
"tytul od 3 do 25 znakow";
                } else if (
$this->min_max(5250$_POST['tresc']) == false) {
                    echo
"Treśc min 5 znakow max 250";
                } else {
                    
$query... 


Pewnie wszystko jest totalnie do D...
No ale uczę się i chcę zrobić coś sam, a nie kopiować na łebka.
Odpowiedz
#2
Hmmm... tak na szybko. w if porównujesz za pomocą == , a po za tym $minmax nie masz zdefiniowanego więc jak chcesz porównywać?
Odpowiedz
#3
@Marys - ma zdefiniowane...

Co do samej funkcji... ja bym rekomendował jednak pójście w zwykłe zwaracanie true/false.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Odpowiedz
#4
Aaa dobra
Odpowiedz
#5
Hah. Kod php bardzo fajny chociaż nigdy tak w php nie pisałem. Raczej w JS.

Będę pisał o samej funkcji bo reszta 100% ok.

Ogólnie brakuje mi tam znaku równości czyli >= i <=
No i zamień or na and, ponieważ

2,4,"kod" = $val_min or $val_max = true or true = true
2,4,"krokodylek" = $val_min or $val_max = true or false = true

Ja pierdziu ale jestem magik Big Grin
Odpowiedz
#6
Wczoraj kombinowałem i doszedłem do tego co piszecie Wink
Testuję na osobnej klasie i mam tak:
Kod PHP:
class xx {

            public function 
min_max($val_min$val_max$argument) {
                
$argument strlen($argument);
                
$val_min $argument >= $val_max;
                
$val_max $argument <= $val_max;
                if (
$val_min $val_max)
                    return 
true;
            }
        }

        
$num = new xx();
        echo 
$num->min_max('2''10''alddddddddddddro'); 
Gdy słowo łapie się w kryteria echo wywala mi 1, a gdy nie są spełniane nie wyświetla nic czyli dobrze myślę, że NULL ?

Mogę też dodać :
Kod PHP:
else
                 return 
0
i wtedy będzie 0 lub 1 zwracane, więc tutaj jakoś to rozegram.

Problem pojawia się w mojej roboczej klasie.
Wygląda to tak:
Kod PHP:
if (isset($_POST['tytul']) and isset($_POST['tresc'])) {
            
$_POST['tytul'] = stripslashes(strip_tags(trim($_POST["tytul"])));
            
$_POST['tresc'] = stripslashes(strip_tags(trim($_POST["tresc"])));
            if (isset(
$_POST['submit'])) {
                if (
$this->min_max("3""25"$_POST['tytul']) = NULL) { //44 linia
                    
echo"Tytuł min 3 max 25 znakow";
                } elseif (
$this->min_max("5""250"$_POST['tresc']) = NULL) { // 46 linia
                    
echo"Treść min 5 max 250 znaków";
                } else {
                    
$query "insert into `coment` (`tytul`, `tresc`, `data_dodania`) VALUES('{$_POST['tytul']}','{$_POST['tresc']}',NOW())";
                    
$this->mysqli->query($query);
                    
header('Location: index.php');
                }
            }
        } 

Komunikat błędu
Kod PHP:
Can't use method return value in write context in config.php on line 44 

Gdy zrobię == NULL wtedy normalnie mogę dodawać wpisy ale omija mi sprawdzanie ilości znaków.

Co robię nie tak ?
Odpowiedz
#7
Jeżeli macie jakieś sugestie co do tego lub wiecie co można zrobić, żeby zrobić to w szybszy sposób to proszę o posty.
Z chęcią przyjmę wszelką konstruktywną krytykę oraz dobre rady Wink

Ok a poniżej jak udało mi sie to zrobić by działało tak jak chciałem by działało.


Kod PHP:
$error "";
  if (isset(
$_POST['tytul']) || isset($_POST['tresc']) || isset($_POST['submit'])) {
            
$_POST['tytul'] = stripslashes(strip_tags(trim($_POST["tytul"])));
            
$_POST['tresc'] = stripslashes(strip_tags(trim($_POST["tresc"])));
            if ((
$this->min_max(325$_POST['tytul'])) == false) {
                
$error++;
                echo 
"Tytuł min 3 max 25 znakow. <br />";
            }
            if ((
$this->min_max(5250$_POST['tresc'])) == false) {
                
$error++;
                echo 
"Treść min 5 max 250 znaków. <br />";
            }
            if (
$error == 0) {
                
$query "insert into `coment` (`tytul`, `tresc`, `data_dodania`) VALUES('{$_POST['tytul']}','{$_POST['tresc']}',NOW())";
                
$this->mysqli->query($query);
                
header('Location: index.php');
            }
        }


funkcja min_max

Kod PHP:
public function min_max($val_min$val_max$arg) {
        
$arg strlen($arg);
        
$val_min $arg >= $val_min;
        
$val_max $arg <= $val_max;
        if (!
$val_min || !$val_max) {
            return 
true;
        }
    } 
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  pomoc z google analitycs blondynka2 1 2,530 09-03-2015, 04:54
Ostatni post: blondynka2
  Prosze o pomoc - kolor formularza kontaktowego puchallowen 3 4,017 08-11-2014, 14:40
Ostatni post: Kartofelek
  Wyszukiwarka na stronie - kod proszę o pomoc saur0n 2 2,552 10-05-2013, 23:45
Ostatni post: kornell
  Pomoc z szablonem do bloggera dominator1 0 1,965 01-05-2013, 22:40
Ostatni post: dominator1
  Pomoc! patrique1 4 4,030 10-01-2013, 13:50
Ostatni post: patrique1

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl