Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> GD - Generowanie sygnatury
Kredka29
post 18.08.2009, 10:25:16
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

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


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"...


Ten post edytował Kredka29 18.08.2009, 10:26:24


--------------------
Mam Windows 7 RC
Go to the top of the page
+Quote Post
jmail
post 18.08.2009, 10:27:38
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 53
Dołączył: 10.08.2009

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


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
Go to the top of the page
+Quote Post
Kredka29
post 18.08.2009, 13:43:58
Post #3





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

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


Nic się nie zmieniło sad.gif


--------------------
Mam Windows 7 RC
Go to the top of the page
+Quote Post
CyberDuck_
post 18.08.2009, 14:04:00
Post #4





Grupa: Zarejestrowani
Postów: 135
Pomógł: 15
Dołączył: 17.08.2009

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


$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.

Ten post edytował CyberDuck_ 18.08.2009, 14:06:27
Go to the top of the page
+Quote Post
thek
post 19.08.2009, 10:30:05
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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

Ten post edytował thek 19.08.2009, 10:42:47


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Kredka29
post 20.08.2009, 19:07:44
Post #6





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

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


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

Ten post edytował Kredka29 20.08.2009, 19:53:15


--------------------
Mam Windows 7 RC
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: 14.08.2025 - 03:25