Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP] Baza czy kod? Pomocy webmasterzy!
lestat1313
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.01.2011

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


Witajcie mam taki problem:

mam taki plik :

  1. <?php
  2. require('dbconnect.php');
  3. $a = "SELECT * FROM `uzytkownicy` WHERE `id`='".$_SESSION['user_id']."'";
  4. $a = mysql_query($a);
  5. if ($_SESSION['user_id'] and $aa['hash'] == $_SESSION['hash'] and $_SERVER['REMOTE_ADDR'] == $aa['ost_ip']){
  6. $aktywny = time()+60*2;
  7. $ip = $_SERVER['REMOTE_ADDR'];
  8. $online="UPDATE uzytkownicy SET ost_ip = '$ip', ost_aktywny = '$aktywny' WHERE id=$_SESSION[user_id]";
  9. mysql_query($online) or die("Wystapił blad");
  10. }
  11. else {
  12. echo "eeeee ";
  13. /*
  14. session_start();
  15. session_unset();
  16. session_destroy();
  17. */
  18. }
  19. ?>


i po wrzuceniu go na serwer wyskakuje mi problem :

Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/t/e/testowo1313/zalogowany.php on line 6
eeeee
Parse error: syntax error, unexpected T_STRING, expecting '(' in /var/www/sites/yoyo.pl/t/e/testowo1313/funkcje/genhash.php on line 2


Nie mam pojęcia czy jest to jakiś problem bazy danych, lub (bardziej prawdopodobne) błedu w kodzie ;/
Zamieszczałem podobny przypadek na forum, umieściłem korekty lecz to nie pomaga.
Czy ktoś jest w sanie mi pomóc ?
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Brak wyników z bazy - innymi słowy użytkownik o podanym w sesji id nie istnieje lub nie uzyskałeś połączenia z bazą
Go to the top of the page
+Quote Post
lestat1313
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.01.2011

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


Bo jest to jeden z plików gry(silnika) php.
Czy ktoś jest w stanie powiedzieć mi jak to zmienić by się normalnie można było logować (rejestrować) ale najpierw jak się pozbyć tych błędów i uruchomić gre.
Go to the top of the page
+Quote Post
sada
post
Post #4





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


dodaj przed pobraniem z bazy warunek

  1. if(isset($_SESSION['user_id']))


nie zapomnij o klamrach


tym warunkiem możesz też sprawdzić czy jesteś zalogowany

może plik z danymi logowania na serwer masz w innym katalogu a wtedy

  1. require('./katalog/dbconnect.php');
Go to the top of the page
+Quote Post
lestat1313
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.01.2011

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


Tak mi wpadło na myśl że może jest tu błąd i on powoduje tam także problem:

  1. <?php
  2. function generate Hash()
  3. {4.'return md5(time() * rand())';
  4. }
  5. ?>



(ps. nic nie pomogło zapytanie te przed pobraniem z bazy)
Go to the top of the page
+Quote Post
CuteOne
post
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Błąd leży w bazie, połączeniu z bazą lub sesji i w tym czymś co pkazałeś

  1. function generateHash()
  2. {
  3. return md5(time() * rand());
  4. }



ps. sam pisałeś ten kod ?
Go to the top of the page
+Quote Post
lestat1313
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.01.2011

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


Nie pisałem tego kodu, dlatego mam aż tak wiele problemów.
Jest to silnik gry który miałem naprawić i się tego zobowiązełem (nie wiedziałem że jest aż tak źle)

Czy mógłbyć zaprezentować jak w praktyce powinien wyglądać ten poprawiony plik i co jeszcze powinienem zmienić ?
Go to the top of the page
+Quote Post
sada
post
Post #8





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Ten warunek nie miał pomóc, a wyeliminować niektóre hipotezy
Go to the top of the page
+Quote Post
lestat1313
post
Post #9





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.01.2011

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


Cytat(sada @ 10.01.2011, 19:08:57 ) *
Ten warunek nie miał pomóc, a wyeliminować niektóre hipotezy


Przepraszam, nie wiedziałem. Ale nie pomógł.
Go to the top of the page
+Quote Post
CuteOne
post
Post #10





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1.  
  2. require('dbconnect.php');
  3. $query = mysql_query("SELECT * FROM `uzytkownicy`");
  4. $row = mysql_fetch_array($query);
  5.  
  6. echo '<pre>';
  7. print_r($row);
  8. echo '</pre>';
  9.  
  10. echo '<br>';
  11. echo '<pre>';
  12. print_r($_SESSION);
  13. echo '</pre>';


Ten post edytował CuteOne 10.01.2011, 19:12:57
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #11





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


Pokaz plik gdzie zapisujesz do sesji id_user, przy logowaniu pewnie jest blad
Go to the top of the page
+Quote Post
lestat1313
post
Post #12





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 9.01.2011

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


Zmieniłem (nie wiem czy o to chodziło, jeśli nie to przepraszam ;()

Plik zalogowany.php wygląda teraz tak :

  1. <?php
  2. require('dbconnect.php');
  3. $query = mysql_query("SELECT * FROM `uzytkownicy`");
  4. $row = mysql_fetch_array($query);
  5. echo '<pre>';
  6. print_r($row);
  7. echo '</pre>';
  8. echo '<br>';
  9. echo '<pre>';
  10. print_r($_SESSION);
  11. echo '</pre>';
  12. if ($_SESSION['user_id'] and $aa['hash'] == $_SESSION['hash'] and $_SERVER['REMOTE_ADDR'] == $aa['ost_ip']){
  13. $aktywny = time()+60*2;
  14. $ip = $_SERVER['REMOTE_ADDR'];
  15. $online="UPDATE uzytkownicy SET ost_ip = '$ip', ost_aktywny = '$aktywny' WHERE id=$_SESSION[user_id]";
  16. mysql_query($online) or die("Wystapił blad");
  17. }
  18. else {
  19. echo "eeeee ";
  20. /*
  21. session_start();
  22. session_unset();
  23. session_destroy();
  24. */
  25. }
  26. ?>


a błedy pojawiające się to :
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/t/e/testowo1313/zalogowany.php on line 5




Array
(
)

eeeee
Parse error: syntax error, unexpected T_STRING, expecting '(' in /var/www/sites/yoyo.pl/t/e/testowo1313/funkcje/genhash.php on line 2
Go to the top of the page
+Quote Post
Hoku
post
Post #13





Grupa: Zarejestrowani
Postów: 49
Pomógł: 2
Dołączył: 6.07.2010

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


  1. $a = "SELECT * FROM `uzytkownicy` WHERE `id`='".$_SESSION['user_id']."'";
  2. $a = mysql_query($a);

1 zrzut da ci zapytanie sprawdź sobie w phpadmin np. czy coś zwróci;)
2gi da ci typ wyniku oraz wynik;
var_dump prawdę ci powie;
zapewne tego ID tam nie ma w bazie.

ps. od kiedy można używać spacji w nazwie funkcji o.O?

ps2. myślisz że coś tak skomplikowanego jak silnik gry jesteś w stanie napisać?
masz problem ze zrozumieniem błędów które są dość dokładnie opisane.
a tu jeszcze dojdą bugi które błędów nie zwracają a są.
takie projekty to wyższa szkoła jazdy:
optymalizacja na wysokim poziomie
sprawienie, że dane procesy wyglądają na zachodzące w czasie rzeczywistym.
bezpieczeństwo.
Go to the top of the page
+Quote Post
sada
post
Post #14





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


z tego wynika , że tablica sesji jest pusta.
Pokaż skrypt gdzie ją tworzysz czyli gdzie jest coś takiego:

$_SESSION['klucz']=.........

jeszcze raz spytam czy plik połączenia z bazą jest w tym katologu co w skrypcie
Go to the top of the page
+Quote Post
CuteOne
post
Post #15





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Tak jak mówiłem... brak połączenia z bazą oraz brak sesji lepiej poducz się PHP bo daleko tak nie zajedziesz

UP: jak by nie był dostał by fatal error ...

Ten post edytował CuteOne 10.01.2011, 19:36:31
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: 23.08.2025 - 06:23