Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z GET
Forum PHP.pl > Forum > Przedszkole
awek520
Witam.. mam mały problem z funkcją GET

W skrócie, linki z róznymi $id

przechodzimy w wybrany link - id

I tutaj mam problem. zawsze wchodzimy w id=1

oto kodzik

  1. <?php
  2. require 'config.php';
  3.  
  4. if($_GET['walcz']!=''){
  5. if($_GET['walcz']=$id){
  6.  
  7. $atakujacy=mysql_query("SELECT * FROM users WHERE login='$_SESSION[login]' LIMIT 1");
  8. if ($users['hp']>=1) {
  9. if ($users['energia']>=3) {
  10. if ($users['zloto']>=1) {
  11.  
  12. $przeciwnik=mysql_query("SELECT * FROM potwory WHERE id=$id LIMIT 1");
  13. if(mysql_num_rows($przeciwnik)!==1){
  14. echo 'Potwór nie istnieje!';
  15. }
  16. else {
  17. $atakujacy=mysql_fetch_assoc($atakujacy);
  18. $przeciwnik=mysql_fetch_assoc($przeciwnik);
  19. $atakujacy['hp']=$atakujacy['hp'];
  20. $przeciwnik['hp']=$przeciwnik['hp'];
  21.  
  22. system ataku....


Jak mam zmienic:

  1. if($_GET['walcz']=$id)


i wybieranie z bazy odpowiedniego rekordu ?
viking
Ehhh. Jak robimy w PHP porównanie a jak przypisanie? Do tego można też używać http://php.net/manual/en/language.operators.logical.php w jednym ifie
awek520
Cytat(viking @ 5.11.2014, 18:52:43 ) *
Ehhh. Jak robimy w PHP porównanie a jak przypisanie? Do tego można też używać http://php.net/manual/en/language.operators.logical.php w jednym ifie



Chodzi Ci o takie coś?

  1. if(($_GET['walcz'])!='' && $_GET['walcz']!=$_GET['id']){


Tak zmienic te zapytanie do bazy ?
Boshi
A ma się równać temu id czy nie? Bo w pierwszej wersji chciałeś bodajże przypisać, teraz zaprzeczasz.
awek520
Pomoże ktoś z ta funkcja? Jak zmienić te id aby je automatycznie wybierało w zapytaniu..
viking
$_GET['walcz']==$id zapewne. Pomyśl trochę co potrzebujesz.
awek520
  1. <?php
  2. require 'config.php';
  3.  
  4. if($_GET['walcz']!=''){
  5. if($_GET['walcz']=$id) {
  6.  
  7. $users=mysql_query("SELECT * FROM users WHERE login='$_SESSION[login]' LIMIT 1");
  8. if ($users['hp']>=1) {
  9. if ($users['energia']>=3) {
  10. if ($users['zloto']>=1) {
  11. $przeciwnik=mysql_query("SELECT * FROM potwory WHERE id=".$_GET['id']." LIMIT 1");
  12.  
  13. if(mysql_num_rows($przeciwnik)!==1){
  14. echo 'Podany potwór nie istnieje!';
  15. }
  16. else {
  17. $atakujacy=mysql_query("SELECT * FROM users WHERE login='$_SESSION[login]' LIMIT 1");
  18. $atakujacy=mysql_fetch_assoc($atakujacy);
  19. $przeciwnik=mysql_fetch_assoc($przeciwnik);
  20. $atakujacy['hp']=$atakujacy['hp'];
  21. $przeciwnik['hp']=$przeciwnik['max_hp'];
  22.  


coś takiego zrobiłem.. tylko błąd z hp wyskakuje..
Boshi
A co, my wróżki jesteśmy? Może podasz kod błędu?

Dlaczego w warunku przpyisujesz id? rozróżniasz przypisanie od porównania?
  1. if($_GET['walcz']=$id)

awek520
Cytat(Boshi @ 6.11.2014, 14:37:43 ) *
A co, my wróżki jesteśmy? Może podasz kod błędu?

Dlaczego w warunku przpyisujesz id? rozróżniasz przypisanie od porównania?
  1. if($_GET['walcz']=$id)


LINK:
echo '<center><a href="?action=walcz&id='.$potwor['id'].'">WALCZ</a></td></tr></center>';

Oto cały kod:

  1. <?php
  2. require 'config.php';
  3. if($_GET['walcz']!=''){
  4. if($_GET['walcz']=$id) {
  5.  
  6. $users=mysql_query("SELECT * FROM users WHERE login='$_SESSION[login]' LIMIT 1");
  7. if ($users['hp']>=1) {
  8. if ($users['energia']>=3) {
  9. if ($users['zloto']>=1) {
  10. $przeciwnik=mysql_query("SELECT * FROM potwory WHERE id=".$_GET['id']." LIMIT 1");
  11.  
  12. if(mysql_num_rows($przeciwnik)!==1){
  13. echo 'Podany potwór nie istnieje!';
  14. }
  15. else {
  16. $atakujacy=mysql_query("SELECT * FROM users WHERE login='$_SESSION[login]' LIMIT 1");
  17. $atakujacy=mysql_fetch_assoc($atakujacy);
  18. $przeciwnik=mysql_fetch_assoc($przeciwnik);
  19. $atakujacy['hp']=$atakujacy['hp'];
  20. $przeciwnik['hp']=$przeciwnik['max_hp'];
  21.  
  22. echo 'Atakujący: '.$_SESSION['login'].' - Poziom:'.$users['lvl'].' | Życie: '.$atakujacy['hp'].'<br>
  23. Przeciwnik: '.$przeciwnik['nazwa'].' - Poziom: '.$przeciwnik['poziom'].' | Życie:'.$przeciwnik['hp'].'<br><br>
  24. <img src="style/linia_dluga.png"><br><br>';
  25. for($i=0;$i<15;$i++){
  26.  
  27.  
  28.  
  29. $cios=(int)((80%$atakujacy['sila']+70%$atakujacy['zrecznosc'])*$atakujacy['atak']/$przeciwnik['obrona']
  30. /2+rand($atakujacy['atak'], $atakujacy['obrona']/200));
  31. $przeciwnik['hp']-=$cios;
  32. echo 'Zaatakowałeś '.$przeciwnik['nazwa'].'
  33. zabierając mu <font color="green">'.$cios.'</font> punktów życia.<br>';
  34.  
  35. $cios=(int)(($przeciwnik['atak']+$atakujacy['obrona'])/2
  36. /2+rand($przeciwnik['atak'], $przeciwnik['obrona']/200));
  37. $atakujacy['hp']-=$cios;
  38. echo $cios=$przeciwnik['nazwa'].' zaatakował Ciebie
  39. zabierając Ci <font color="red">'.$cios.'</font> punktów życia.<br><br>';
  40.  
  41.  
  42.  
  43.  
  44. if($przeciwnik['hp']<=0) { //*Jeśli przeciwnik przegrał
  45. mysql_query("UPDATE users SET hp=$atakujacy[hp], energia=energia-2,
  46. zloto=zloto+$przeciwnik[lupy],
  47. exp=exp+$przeciwnik[exp] WHERE id=$atakujacy[id]");
  48. echo 'Wygrałeś walkę i zyskujesz '.(int)($przeciwnik['lupy']) .' sztuk złota i
  49. '.(int)($przeciwnik['exp']) .' pkt. doświadczenia. Pozostało Ci '.$atakujacy['hp'].' pkt życia
  50. <br><br><a href="?action=walka_potwory">Powrót</a>';
  51. break;
  52. }
  53. else if($atakujacy['hp']<=0) { //*Jeśli przeciwnik wygrał
  54. mysql_query("UPDATE users SET hp=$atakujacy[hp], energia=energia-2, zloto=zloto-$atakujacy[zloto]/10,
  55. exp=exp-$atakujacy[exp]/5 WHERE id=$atakujacy[id]");
  56.  
  57. echo 'Przegrałeś walkę i tracisz '.(int)($atakujacy['zloto']/10) .' sztuk złota.
  58. Tracisz także '.(int)($atakujacy['exp']/5) .' pkt. doświadczenia
  59. <br><br><a href="?action=walka_potwory">Powrót</a>';
  60.  
  61. break;
  62. }
  63.  
  64. }
  65.  
  66. }
  67.  
  68. }
  69. else {
  70. echo 'Nie posiadasz złota! <br><br><a href="?action=walka_potwory">Powrót</a>';
  71. }
  72. }
  73.  
  74. else {
  75. echo 'Nie posiadasz energii!<br><br><a href="?action=walka_potwory">Powrót</a>';
  76.  
  77. }
  78.  
  79. }
  80.  
  81. else {
  82. echo 'Nie masz wystarczającej ilości punktów życia! Ulecz się<br><br><a href="?action=walka_potwory">Powrót</a>';
  83.  
  84. }
  85. }
  86. }
  87.  
  88.  
  89.  
  90.  
  91. ?>



Błedu nie ma żadnego.. wyswietla się pusta strona..
Daimos

Zapoznaj się z tematem przechwytywania błędów, debugowania i poczytaj o sql injection.
Przy okazji :
  1. if($_GET['walcz']!='')

Nie masz warunku else. Dlatego też ciężko Ci znaleźć błąd, a patrząc po linku, $_GET['walcz'] nie istnieje. Przecież masz action=walcz
awek520
Cytat(Daimos @ 6.11.2014, 15:43:51 ) *

Zapoznaj się z tematem przechwytywania błędów, debugowania i poczytaj o sql injection.
Przy okazji :
  1. if($_GET['walcz']!='')

Nie masz warunku else. Dlatego też ciężko Ci znaleźć błąd, a patrząc po linku, $_GET['walcz'] nie istnieje. Przecież masz action=walcz




Dobra już sobie poradziłem. dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.