Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: GD - Generowanie sygnatury
Forum PHP.pl > Forum > Przedszkole
Kredka29
Witam.

Co jest złego w poniższym kodzie??

  1. <?
  2. mysql_connect('localhost','login','haslo');
  3.  
  4. $nick = $_GET['nick'];
  5.  
  6. $link=mysql_query('SELECT nick,avatar,punkty,opis,link,gildia FROM users WHERE nick=$nick');
  7. $row=mysql_fetch_row($link);
  8. $syg_nick=$row[0];
  9. $syg_avatar=$row[1];
  10. $syg_punkty=$row[2];
  11. $syg_opis=$row[3];
  12. $syg_link=$row[4];
  13. $syg_gildia=$row[5];
  14.  
  15. $pic=ImageCreateFromJPEG('forum.jpg');
  16. $cz=ImageColorAllocate($pic,0,0,0);
  17.  
  18. ImageString($pic,3,274,1,$syg_nick,$cz);
  19. ImageString($pic,3,253,12,$syg_avatar,$cz);
  20. ImageString($pic,3,295,23,$syg_punkty,$cz);
  21. ImageString($pic,3,267,33,$syg_opis,$cz);
  22. ImageString($pic,3,224,44,$syg_gildia,$cz);
  23.  
  24. Header("Content-type: image/jpeg");
  25. ImageJPEG($pic,'',100);
  26. ?>

Wychodzi

Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in XXXXXXXXX\zi_syg\syg.php on line 8
Warning: Cannot modify header information - headers already sent by (output started at XXXXXXXXXX\zi_syg\syg.php:8) in XXXXXXXXXXXXXXX\zi_syg\syg.php on line 25
oraz kilkadziesiąt linijek "krzaków"...
jmail
to

  1.  
  2. $link=mysql_query('SELECT nick,avatar,punkty,opis,link,gildia FROM users WHERE nick=$nick');
  3.  


na pewno brakuje Ci apostrofów obejmujących nick i powinno być tak

  1.  
  2. $link=mysql_query('SELECT nick,avatar,punkty,opis,link,gildia FROM users WHERE nick=\''.$nick.'\'');
  3.  


pamiętaj, ze zmienne objęte apostrofami nie są parsowane jako wartość zmiennej tylko jako ciąg nazwy zmiennej
Kredka29
Nic się nie zmieniło sad.gif
CyberDuck_
$link=mysql_query("SELECT nick,avatar,punkty,opis,link,gildia FROM users WHERE nick='$nick'");

Napisz jaki Ci generuje strona blad.
1. Masz wypelnione pola w polaczeniu do bazy ?
2. Masz zalozona baze ?

Edit ::..
Sorki niedoczytalem biggrin.gif
Komunikat wyraznie mowi o tym ze dana zmienna nie wystepuje
w bazie danych, ale to moze byc wynik zlego zapytania wiec sprawdz
czy zniknie.
Drugi komunikat mowi o tym, ze cos zostalo juz wczesniej wyslane
w naglowkach. Pewnie includujesz to na stronie w miejscu gdzie
cos juz bylo wczesniej wyswietlane.
thek
Cytat
mysql_fetch_array(): supplied argument is not a valid MySQL
- to wskazuje na błędne wykonanie w bazie danych, czyli najczęściej brak takiego rekordu wynikowego. Obstawiałbym problem z nickiem. Spróbuj:
  1. $link=mysql_query("SELECT nick,avatar,punkty,opis,link,gildia FROM users WHERE nick='".$nick."'");

By uniknąć problemów z apostrofami pojedynczymi i podwójnymi. Wyświetl sobie print_r zawartość tego co Ci zwraca MySQL by zobaczyć co tak naprawdę dostajesz.
Cytat
Warning: Cannot modify header information - headers already sent by (output started at XXXXXXXXXX\zi_syg\syg.php:8) in XXXXXXXXXXXXXXX\zi_syg\syg.php on line 25
A to wskazuje, że już gdzieś wysłałeś jakieś informacje do przeglądarki. Zazwyczaj zdarza się to gdy robisz include do aktualnie pisanego kodu. Tamten plik może coś wyświetlać i przez to header się burzy winksmiley.jpg
Co ciekawe to zauważyłeś, że o błąd woła przy funkcji mysql_fetch_array, podczas gdy kod podałeś z mysql_fetch_row? Czyli albo podałeś niewłaściwy plik nam, albo wprowadzałeś zmiany, których nie uwzględniłeś w tym kodzie winksmiley.jpg
Kredka29
Oki, dzięki. Poradziłem sobie z tym. Tylko mam jeszcze jedno pytanie, jak zmodyfikować ten kod aby działał tongue.gif

  1. $zapytanie="UPDATE login SET ogrod = $konto,avatar = $avatar,serwer = $serwer,opis = $opis,poziom = $poziom,punkty = $punkty,gildia = $gildia WHERE login = $_SESSION['login']";


Pozdrawiam

Edit: Wpisywałem ciągle złą tabele tongue.gif
Do zamknięcia
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.