Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przekazanie zmiennej
Forum PHP.pl > Forum > Przedszkole
a79rtur
w pliku html mam cos takiego :
  1. <img src="display_pic.php?ID=1" border="0" alt="">


jestem w pliku display_pic.php. jak odwołać się tam do zmiennej ID ? $_POST['ID'] oraz $_GET['ID'] nie działają. Jesli wpisze w pasku przegladarki ...display_pic?ID=77 parametr jest przekazywany tak jak trzeba.
misterLu
nic dziwnego! Abyś widział zmienną typu GET, musi ona wystąpić w żądaniu strony, a tu nie występuje. Występuje tylko we wskażniku do obrazka.
Możesz to zrobić tak:
zamiast tej linijki wstaw dwie:

$ID=1;
include('display_pic.php');

a starą linijkę (po odpowiedniej modyfikacji) wstaw do display_pic.php.
Wtedy w pliku display_pic możesz swobodnei używać zmiennej ID.
a79rtur
to caly przyklad z ksiazki :

  1. Wydruk 13.5. Strona HTML powodująca wyświetlenie rysunku z bazy danych
  2. <title>Wyświetlenie rysunku</title>
  3. </head>
  4.  
  5. <img src="show_pic.phtml?ID=1" border="0" alt="">
  6.  
  7. </body>
  8. </html>


Wydruk 13.6. Skrypt wyświetlający rysunki

  1. <?php
  2. include_once( &#092;"db_mysql.php\" );
  3.  
  4. // Utworzenie podklasy DB_Sql do zapisywania i odczytu rysunków
  5. class pictures_db extends DB_Sql
  6. {
  7. var $Host  = &#092;"localhost\";
  8. var $Database  = &#092;"mydb\";
  9. var $User  = &#092;"root\";
  10. var $Password  = &#092;"root\";
  11. }
  12.  
  13. $aDB = new pictures_db();
  14.  
  15. $aSQL = &#092;"select * from pictures where ( picture_id = $ID )\";
  16. $aDB->query( $aSQL );
  17. if ( $aDB->next_record() )
  18. {
  19. header( &#092;"Content-length: \" . $aDB->f( \"pic_size\" ) );
  20. header( &#092;"Content-type: \" . $aDB->f( \"pic_type\" ) );
  21. print( $aDB->f( &#092;"pic_data\" ) );
  22. }
  23. else
  24. {
  25. // Nie znaleziony rysunek, obsługa błędu!
  26. Header( &#092;"HTTP/1.0 404 Not Found\" );
  27. }
  28. ?>


jak z ksiazki to pewnie komuś to działało. podejrzewam że $ID jest tutaj traktowane jako zmienna globalna, a że globalne mam wyłączone jak manual przykazał smile.gif, wiec jej nie widzi. jest jakiś inny sposob żeby sie do niej dobrac ?
Vertical
Cytat
jak z ksiazki to pewnie komuś to działało

Oj, nie zawsze, nie zawsze... Autorzy bardzo często zapominają dodać "GET[]" albo przypisać zmienną... Zamiast ustawaiania globalnej można w url-u to dodać, a później ściągnąć metodą GET:
Kod
http://strona.domena/plik.php?zmienna=wartosc
a79rtur
no w tej ksiazce nagminnie dawali $zmianna tam gdzie powinno byc $_POST['zmienna'] albo $_GET['zmienna'] , pewnie przez to ze testowali na php z register globals włączone. tutaj zamiana $ID na $_GET['ID'] nie dziala no bo nie jest to w pasku adresu wpisane. tak ze dalej nie wiem co z tym zrobić..
Vertical
Bez zmiennych globalnych byłoby najlepszym wyjściem napisać zmienną w pasku adresu... Ja tak robię. Później ewentualnie możesz zamienić:
  1. <?php
  2. $ID = $_GET['ID'];
  3. ?>
a79rtur
mozna zrobić tak ze w pliku html dać :

  1. <a href="display_pic.php?ID=1">obrazek</a>


a w skrypcie do obsługi tak jak pisałeś:

  1. <?php
  2.  
  3. $ID = $_GET['ID'];
  4.  
  5. ?>


działa ok ,tylko ja sie zastanawiałem czemu tam jest to <img src=... itd
ale widać to poprostu pomyłka w książce. ja w kazdym razie nie mam pomysłu o co autorowi chodziło.
silent
Mi działa coś takiego:
  1. <?php
  2. // image.php
  3. switch ($_GET['id']) {
  4. case 1: $filename='rysunek1.gif'; break;
  5. case 2: $filename='rysunek2.gif'; break;
  6. }
  7. $img=file_get_contents($filename);
  8. print($img);
  9. ?>


  1. <img src="image.php?id=1" alt="" />


Ogólnie chodzi o to, że nie trzeba znać informacji o zdjęciu - wszystkim zajmuje się skrypt (tutaj image.php) który wstawia odpowiednie zdjęcie w zależności od parametru.
a79rtur
//moglbyś wstawić cale skrypty które ci działąją? bo u mnie dalej cos nie bardzo.

już nie trza. zmieniłem rozszerzenie pliku w którym było:

<img src="image.php?id=1" alt="" />

z .html na .php i spoko działa. ale dlaczego to akurat pomogło to nie wiem. moze mi ktoś wyjaśnić ?
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.