Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Przenosiny z ereg na preg
DestiX
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.04.2010

Ostrzeżenie: (10%)
X----


Witajcie, mam do napisania pewien skrypt i potrzebne jest mi tutaj wyszukiwanie słów w pliku. Udało mi się to zrobić przy pomocy jak się okazało przestarzałego "ereg". Próbowałem samemu przerobić to na "preg_match" no ale niestety nie potrafię. Zamieszczam poniżej mój kod i liczę na jak najszybszą pomoc.

  1. <?php
  2. if (isset($_POST['loguj'])){
  3. if ($_POST['login'] == '' || $_POST['pass'] == ''){
  4. echo ('Musisz uzupełnić pola.');
  5. } else {
  6. $login = $_POST['login'];
  7. $haslo = $_POST['pass'];
  8.  
  9.  
  10.  
  11. //wczytuje plik
  12.  
  13. //czy zmienne są puste
  14.  
  15. if($login!='' || $haslo!='')
  16. {
  17.  
  18. //szukanie konta
  19. if(ereg($login,$tekst)|| ereg($haslo,$tekst))
  20. {
  21. echo 'Zalogowałeś się na konto:'.$login;
  22. }
  23. else
  24. {
  25. echo 'Konto: '.$login.'nie istnieje';
  26. }
  27. }
  28. }
  29. }
  30. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Nie masz żadnego wzorca więc samo strpos wystarczy.
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Turson wystarczyc moze i wystarczy, co nie zmienia faktu, ze bedzie do kitu....

przyklad:
koles wpisujesz w pole LOGIN 'bam'
a w "bazie" ma 'bambus'
i ups, zalogouje sie
Go to the top of the page
+Quote Post
Daimos
post
Post #4





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


nospor, ale chyba o to autorowi tematu chodzi (IMG:style_emoticons/default/wink.gif) bo z tego co widzę, to chce szukać loginu w jakimś tekście. Po co i dlaczego, to już nie nam oceniać, ale jeśli to system logowania, to faktycznie...

Ten post edytował Daimos 17.11.2014, 21:26:51
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Daimos to że autor robi logicze bledy nieznaczy, że mamy mu ich niewypomnieć (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
DestiX
post
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.04.2010

Ostrzeżenie: (10%)
X----


Robię prosty skrypt sklepu do szkoły, nie musi to być nie wiadomo co dlatego też proszę nie wnikać w to jak to jest napisane albo co w czym szukam bo jest to nie istotne. Kod, który wstawiłem wyżej działa w sposób dla mnie odpowiedni. Jedyne co jest nie tak to fakt, że na stronie mam info o tym, że funkcja ereg jest przestarzała dlatego też proszę was o zamienienie tej funkcji na ponoć nowszą "preg". To wszystko (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




NO to dostales odpowiedz: strpos... Ile razy mozna pisac o tym?
Go to the top of the page
+Quote Post
DestiX
post
Post #8





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.04.2010

Ostrzeżenie: (10%)
X----


No ale wyczytałem też jak sam podałeś, że można podać "bam" a zaloguje się na konto "bambus". W ereg tego nie było, jeżeli nie znalazło dokładnie całego "bambus" to nie logowało.
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A, zrozumialem, ze w ereg miales podobny blad (IMG:style_emoticons/default/smile.gif)

edit: no ale chwila... w ereg miales wpisac BAM a nie BAMBUS. Jak wpisales BAM to ci nie znalazl mimo ze byl BAMBUS? cos krescisz (IMG:style_emoticons/default/wink.gif)

edit:
if (ereg('bam','blabla bambus blala')) echo 'ok'; else echo 'nieok';
nom, czyli jest jak mowilem, wiec rownie dobrze mozesz stosowac STRPOS
Go to the top of the page
+Quote Post
DestiX
post
Post #10





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.04.2010

Ostrzeżenie: (10%)
X----


Rzeczywiście, wpisuje "bam" i loguje na "bambusa". Widocznie mi się tylko wydawało. No dobra to niech już tak to zostanie.

  1. if(strpos($login, $tekst)|| strpos($haslo, $tekst))


Tak to ma/może wyglądać?
Go to the top of the page
+Quote Post
Turson
post
Post #11





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Zajrzyj do manuala. Zobaczysz, że strpos jest pehapowym wyjątkiem od reguły i kolejność argumentów jest inna
Go to the top of the page
+Quote Post
DestiX
post
Post #12





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.04.2010

Ostrzeżenie: (10%)
X----


  1. <?php
  2. if (isset($_POST['loguj'])){
  3. if ($_POST['login'] == '' || $_POST['pass'] == ''){
  4. echo ('Musisz uzupełnić pola.');
  5. } else {
  6. $login = $_POST['login'];
  7. $haslo = $_POST['pass'];
  8.  
  9.  
  10.  
  11. //odczyt pliku - wczytanie jego treści do stringa
  12.  
  13. //Warunek: Czy w zmiennej $wyraz coś istnieje?
  14.  
  15. if($login!='' || $haslo!='')
  16. {
  17. $log = strpos($tekst, $login);
  18. $pas = strpos($tekst, $haslo);
  19.  
  20. if($log !== FALSE|| $pas !== FALSE)
  21. {
  22. echo 'Zalogowałeś się na konto:'.$login;
  23. $plik = "db/logged.(IMG:style_emoticons/default/haha.gif) ";
  24. $fp = fopen($plik, "a+");
  25. fwrite($fp, $login);
  26. fclose($fp);
  27. }
  28. else
  29. {
  30. echo 'Konto: '.$login.'nie istnieje';
  31. }
  32. }
  33. }
  34. }
  35. ?>


No teraz to nie wiem ocb. Za każdym razem dostaje info, że zalogowano na konto. Zmieniałem "FALSE" na "TRUE", usuwałem i dodawałem"!" i jedyna różnica to taka, że albo za każdym razem loguje na konto (nawet jak nie istnieje) albo nie loguje (nawet jak istnieje).
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale logika sie klania...
nie: if($log !== FALSE|| $pas !== FALSE)
a: if($log !== FALSE && $pas !== FALSE)

To jak miales
if($log !== FALSE|| $pas !== FALSE)
to wystarczy ze albo zgadza sie login albo haslo i juz loguje

To samo tutaj:
if($login!='' || $haslo!='')

tak ma byc:
if($login!='' && $haslo!='')
I login i haslo mają byc wypelnione
Go to the top of the page
+Quote Post
DestiX
post
Post #14





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 17.04.2010

Ostrzeżenie: (10%)
X----


A no fakt, myślenie o tej godzinie nie działa u mnie najlepiej. Jak na razie wszystko działa tak, że dzięki za pomoc. Gdy jeszcze coś zepsuje to napiszę (IMG:style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post
Daimos
post
Post #15





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


Cytat(nospor @ 17.11.2014, 21:28:23 ) *
@Daimos to że autor robi logicze bledy nieznaczy, że mamy mu ich niewypomnieć (IMG:style_emoticons/default/wink.gif)

co prawda to prawda (IMG:style_emoticons/default/smile.gif)

Cytat(DestiX @ 17.11.2014, 21:36:49 ) *
Robię prosty skrypt sklepu do szkoły, nie musi to być nie wiadomo co dlatego też proszę nie wnikać w to jak to jest napisane albo co w czym szukam bo jest to nie istotne. Kod, który wstawiłem wyżej działa w sposób dla mnie odpowiedni...


Tak samo podejrzewam, że twierdziła słynna studentka z Łodzi, z jej prostą aplikacją za 500tys zł do liczenia głosów (IMG:style_emoticons/default/wink.gif)
Lepiej się uczyć od razu dobrych nawyków, bo to jak jest teraz napisane, odbije się na Twoich aplikacjach w przyszłości, każdy to potwierdzi. Sam mam nawyki, za które bym się zabił, a jednak czasami z przyzwyczajenia je stosuje, żałuje, ale tak się nauczyłem i czasami ponosi (IMG:style_emoticons/default/smile.gif)
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: 15.09.2025 - 09:10