Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [PHP]Panel
--onelife--
post 2.09.2013, 19:31:37
Post #21





Goście







A no racja,teraz już widzę. Z tym,że gdy zamknąłem to efekt nadal taki sam,zawartość z zapytania się nie wyświetla..;/
Go to the top of the page
+Quote Post
Turson
post 2.09.2013, 19:59:37
Post #22





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

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


  1. while ($wynik and $dane = mysql_fetch_assoc($wynik))

Nie rozumiem sensu dania '$wynik and $dane'

Popraw na samo $dane
Go to the top of the page
+Quote Post
fiszol
post 5.09.2013, 18:06:54
Post #23





Grupa: Zarejestrowani
Postów: 449
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Zacznij od ustawienia error_reporting i display_errors (ini_set). Bez tego nie dojdziesz co jest nie tak, a ta "pusta biała strona" świadczy o tym, że coś jest skopane.


--------------------
\o/
Go to the top of the page
+Quote Post
Turson
post 8.09.2013, 11:39:16
Post #24





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

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


Jeśli jest pusta najczęściej są tego 2 powody:
- nie sprawdzasz działania na jakimś serwerze tylko bezpośrednio na komputerze bez użycia xamppa, webserv etc.
- plik ma rozszerzenie html zamiast php

Kod, który podałeś w poście #24 jest całym kodem w tym pliku? Jak masz coś tam jeszcze oprócz tego, to wypadałoby podać...
Go to the top of the page
+Quote Post
Dominator
post 8.09.2013, 11:50:37
Post #25





Grupa: Zarejestrowani
Postów: 565
Pomógł: 15
Dołączył: 11.10.2010

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


Pokaż cały plik, a postaramy się pomóc.
Go to the top of the page
+Quote Post
--onelife--
post 8.09.2013, 12:06:13
Post #26





Goście







Cytat(TursoN @ 8.09.2013, 11:39:16 ) *
Jeśli jest pusta najczęściej są tego 2 powody:
- nie sprawdzasz działania na jakimś serwerze tylko bezpośrednio na komputerze bez użycia xamppa, webserv etc.
- plik ma rozszerzenie html zamiast php

Kod, który podałeś w poście #24 jest całym kodem w tym pliku? Jak masz coś tam jeszcze oprócz tego, to wypadałoby podać...


Sprawdzam na swoim vps,rozszerzenie jest dobre .php


A więc tak na stronie głównej mam logowanie za pomocą nicku i hasła z poradnika i wygląda to tak :


  1. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  2. if(isset($_POST['ok']))
  3. {
  4. $nick = trim($_POST['nick']);
  5.  
  6. $pass = trim($_POST['pass']);
  7.  
  8.  
  9. // sprawdzamy czy wszystkie dane zostały podane
  10. if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola';
  11.  
  12. // jeśli tak...
  13. else
  14. {
  15. // filtrujemy dane
  16.  
  17.  
  18.  
  19.  
  20. // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
  21.  
  22.  
  23. $result = mysql_query ("SELECT * FROM `statystyki` WHERE `nick`='$nick' AND `password`='$pass'");
  24.  
  25. // jeśli nie istnieje
  26. if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!';
  27.  
  28. // jeśli tak...
  29. else
  30. {
  31. // dodajemy wynik zapytania do tablicy
  32. $row = mysql_fetch_array($result);
  33.  
  34. // ustawianie sesji że użytkownik jest zalogowany
  35. $_SESSION['logged'] = true;
  36.  
  37. // dodawanie do sesji id użytkownika, login oraz datę rejestracji
  38. $_SESSION['nick'] = $row['nick'];
  39.  
  40.  
  41. // wyświetlenie komunikatu oznaczającego poprawne logowanie
  42. header('location: panel.php');
  43. }
  44. }
  45. }
  46. }
  47. // rozłączenie z bazą danych
  48.  
  49. // koniec buforowania
  50. ?>


Po zalogowaniu przenosi nas do panel.php

  1. <?php
  2.  
  3.  
  4. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  5.  
  6. // start sesji
  7.  
  8.  
  9. // tutaj mam połączenie z mysql
  10.  
  11.  
  12.  
  13. $wynik = mysql_query("SELECT * FROM `statystyki` WHERE `nick`='$nick'");
  14.  
  15. while ($dane = mysql_fetch_assoc($wynik)) {
  16. echo '<p>';
  17. echo '<b>Nick:</b> '.$dane['nick'].'<br />';
  18. echo '<b>Level:</b> '.$dane['level'].'<br />';
  19. echo '<b>Respect:</b> '.$dane['respect'].'<br />';
  20. echo '<b>Skil:</b> '.$dane['skill'];
  21. echo '</p>';
  22. }
  23.  
  24. ?>



+ do tego mam jeszcze tylko samo tło pod stronę,tło się wyświetla wynik zapytania nie/



Go to the top of the page
+Quote Post
fiszol
post 8.09.2013, 12:13:12
Post #27





Grupa: Zarejestrowani
Postów: 449
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


samo error reporting nie spowoduje wyświetlenia błędu jeśli w ustawieniach php masz display_errors wyłączone.

wrzuć na samym początku, jeszcze przed ob_start:
  1. <?php
  2. ini_set('display_errors',1);
  3. error_reporting('E_ALL');
  4. ?>
Twoje wywołanie error_reporting też pownno wygenerować błąd, notice o użyciu niezdefiniowanej stałej.

Ten post edytował fiszol 8.09.2013, 12:15:39


--------------------
\o/
Go to the top of the page
+Quote Post
--onelife--
post 8.09.2013, 12:26:43
Post #28





Goście







Już jakiś postęp

"Notice: Undefined variable: nick in /var/www/panel.php on line 55 "


  1. or die('Nie udalo sie wybrac bazy danych...');
  2.  
  3.  
  4. [b] $wynik = mysql_query("SELECT * FROM `statystyki` WHERE `nick`='$nick'");[/b]
  5.  
  6. while ($dane = mysql_fetch_assoc($wynik)) {
  7. echo '<p>';
  8. echo '<b>Nick:</b> '.$dane['nick'].'<br />';
  9. echo '<b>Level:</b> '.$dane['level'].'<br />';
  10. echo '<b>Respect:</b> '.$dane['respect'].'<br />';
  11. echo '<b>Skil:</b> '.$dane['skill'];
  12. echo '</p>';
  13. }


Linijka 55 to ta pogrubiona
Go to the top of the page
+Quote Post
Turson
post 8.09.2013, 12:46:45
Post #29





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

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


I wszystko jasne.
Co to $nick? Albo zdefiniuj to z POST albo GET i po sprawie.
Go to the top of the page
+Quote Post
fiszol
post 8.09.2013, 12:47:24
Post #30





Grupa: Zarejestrowani
Postów: 449
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Gubisz gdzieś dane przy przesyłaniu formularza, teraz var_dump($_POST) przed zapytaniem:
  1. var_dump($_POST);
  2. $wynik = mysql_query("SELECT * FROM `statystyki` WHERE `nick`='$nick'");


--------------------
\o/
Go to the top of the page
+Quote Post
--onelife--
post 8.09.2013, 13:00:40
Post #31





Goście







Dodałem to


var_dump($_POST);

i

  1. array(0) { } Notice: Undefined variable: nick in
Go to the top of the page
+Quote Post
Turson
post 8.09.2013, 13:05:12
Post #32





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

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


Nie widzisz, że nigdzie nie zdefiniowałeś co to $nick? Skąd skrypt ma wiedzieć?
Go to the top of the page
+Quote Post
fiszol
post 8.09.2013, 13:10:48
Post #33





Grupa: Zarejestrowani
Postów: 449
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


zdefiniował, przynajmniej teoretycznie, tutaj:
  1. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  2. if(isset($_POST['ok']))
  3. {
  4. $nick = trim($_POST['nick']);
  5.  
  6. $pass = trim($_POST['pass']);
  7. // bla bla reszta kodu

$_POST jest pusty, nie przesłałeś formularza i tyle. onelife pokarz formularz którego używasz do przesłania danych

Ten post edytował fiszol 8.09.2013, 13:12:04


--------------------
\o/
Go to the top of the page
+Quote Post
--onelife--
post 8.09.2013, 13:15:06
Post #34





Goście







Formularz :



  1. // tworzymy prosty formularz
  2.  
  3. echo '<center><form action="index.php" method="POST">
  4. Nick: <br />
  5. <input type="text" name="nick" placeholder="Wprowadź nick z gry" ><br />
  6. Hasło: <br />
  7. <input type="password" name="pass" placeholder="Wprowadź hasło" ><br />
  8. <input type="submit" name="ok" value="Zaloguj">
  9. </form></center>';
  10. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  11. if(isset($_POST['ok']))
  12. {
  13. $nick = trim($_POST['nick']);
  14.  
  15. $pass = trim($_POST['pass']);
  16.  
  17.  
Go to the top of the page
+Quote Post
Turson
post 8.09.2013, 13:16:34
Post #35





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

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


Zdefiniował, ale nie w tym pliku co trzeba.

W sesji trzymasz nick usera, wykorzystaj to
  1. $wynik = mysql_query('SELECT * FROM statystyki WHERE nick='.$SESSION["nick"].'');


Ten post edytował TursoN 8.09.2013, 13:17:19
Go to the top of the page
+Quote Post
fiszol
post 8.09.2013, 13:22:02
Post #36





Grupa: Zarejestrowani
Postów: 449
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


nvm, Turson wskazał Ci błąd. formularz wysyłasz do index.php, a do $nick próbujesz się odwołać w panel.php. Zrób tak jak pokazał Ci Turson albo zdefiniuj sobie nick jeszcze raz, z sesji, gdzieśna początku dokumentu, byle po session_start(). $nick = $_SESSION['nick'];

Ten post edytował fiszol 8.09.2013, 13:24:44


--------------------
\o/
Go to the top of the page
+Quote Post
onelife
post 8.09.2013, 13:27:21
Post #37





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

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


Okej,już mam. Wielkie dzięki za pomoc. smile.gif

Ten post edytował onelife 8.09.2013, 13:29:17
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
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: 27.04.2024 - 16:38