Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]obiekt + wyczytywanie z pliku danych
shimizu
post 10.06.2012, 10:34:44
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 16.01.2011

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


Witam drugi dzień ucze sie OOP i wpadłem na byle jaki pomysł i staram się go zrobić. Na początku wysyłam id które identifikuje kogo chce wyświetlić nastepnie skrypt ma wyczytać z pliku users.txtid nick haslo i wyswietlic. Staram sie to zrobic za pomocą obiektu.

index.html
  1. <form action='lll.php' method='POST'>
  2. <input type='text' name='pp'>
  3. <input type='submit'>
  4. </form>


lll.php
  1. <?php
  2.  
  3. class post {
  4. public $nick;
  5. public $haslo;
  6. public $id;
  7.  
  8. function __construct($jakie) {
  9. $plik = "users.txt";
  10. $users = file($plik);
  11. $this->id = $jakie;
  12. $id_users = $users[$id];
  13. list($i0, $i1, $i2) = explode(" || ", $id_users);
  14. $this->nick = $i1;
  15. $this->haslo = $i2;
  16. }
  17.  
  18.  
  19. }
  20.  
  21. $user = new post($_POST['pp']);
  22. echo 'ID:'.$user->id.'<br />';
  23. echo 'nick:'.$user->nick.'<br />';
  24. echo 'haslo:'.$user->haslo.'<br />';
  25. ?>


users.txt
Cytat
0 || admin || admin
1 || shimizu1 || haselko1
2 || shimizu2 || haselko2
3 || shimizu3 || haselko3
4 || shimizu4 || haselko4
5 || shimizu5 || haselko5
6 || shimizu6 || haselko6


Nie wyczytuje mi hasla i loginu
*Dlaczego jak uzyłem count($users) przed to mi wyswietlilo 7 a jak w klasie to 0??

Ten post edytował shimizu 10.06.2012, 10:35:13
Go to the top of the page
+Quote Post
kefirek
post 10.06.2012, 12:08:02
Post #2





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

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


tam gdzie masz
  1. $id_users = $users[$id];


Zmien na
  1. $id_users = $users[$this->id];


  1. class post {
  2. public $nick;
  3. public $haslo;
  4. public $id;
  5. private $users;
  6.  
  7. function __construct($jakie) {
  8. $plik = "users.txt";
  9. $this->users = file($plik);
  10. $this->id = $jakie;
  11. $id_users = $this->users[$this->id];
  12. list($i0, $i1, $i2) = explode(" || ", $id_users);
  13. $this->nick = $i1;
  14. $this->haslo = $i2;
  15. }
  16.  
  17. public function num_users(){
  18.  
  19. return count($this->users);
  20.  
  21. }
  22.  
  23.  
  24. }
  25.  
  26. $user = new post(0);
  27. echo 'ID:'.$user->id.'<br />';
  28. echo 'nick:'.$user->nick.'<br />';
  29. echo 'haslo:'.$user->haslo.'<br />';
  30.  
  31. echo $user->num_users();
Go to the top of the page
+Quote Post
shimizu
post 10.06.2012, 12:51:45
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 16.01.2011

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


  1. <?PHP
  2. class post {
  3. public $nick;
  4. public $haslo;
  5. public $id;
  6.  
  7. function __construct($l,$p) {
  8. $plik = "users.txt";
  9. $users = file($plik);
  10. $this->nick = $l;
  11. $this->haslo = $p;
  12. $d = count($users);
  13. for($u=0;$u<=$d;$u++) {
  14. list($i0, $i1, $i2) = explode(" || ", $users[$u]);
  15. if ($i1 === $this->nick) {
  16. if ($i2 === $this->haslo) { //ten warunek zawsze false dlaczego?
  17. $this->id = $i0;
  18. echo "ok";
  19. break;
  20. } else {
  21. echo "złe hasło";
  22. break;
  23. }
  24. } else {
  25. if ($u == $d) {
  26. echo " nie ma takiego uzywtkowniak" ;
  27. break;
  28. }
  29. }
  30. }
  31. }
  32.  
  33.  
  34. }
  35.  
  36. $user = new post($_POST['login'],$_POST['pass']);


a teraz zawsze mi wyswietla zle haslo chociaż jest dobre...

Ten post edytował shimizu 10.06.2012, 12:53:41
Go to the top of the page
+Quote Post
Crozin
post 10.06.2012, 12:59:16
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Zlituj się nad sobą samym i nadawaj jakieś sensowne nazwy dla zmiennych. $i0, $p - co to ma być?
2. Najbardziej prosty i prymitywny sposób debugowania kodu:
  1. var_dump($i2, $this->haslo, $i2 === $this->haslo);

3. Stawiam na to, że w haśle pobranym z pliku ($i2) może na końcu jeszcze być znak nowej linii.

Ten post edytował Crozin 10.06.2012, 12:59:50
Go to the top of the page
+Quote Post
shimizu
post 10.06.2012, 13:18:44
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 16.01.2011

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


a ja temu zapobiec?
Go to the top of the page
+Quote Post
Crozin
post 10.06.2012, 13:23:50
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


trim
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: 18.07.2025 - 06:53