Autor Zpráva
1ight
Profil
Dobrý večer,
chtěl bych se Vás zeptat na radu, mám uživatelskou sekci zde si klient dá vyhledat nějakého uživatele. Uživatel se mu najde a zde budou třeba 4 výsledky např Petr, Petr_kuba, Petr333, Lukáš_Petr
Každej uživatel má obrázek která má vlastní cestu k uživateli uživateli např www.neco.cz/bla/uživatel/foto.jpg a tu cestu k uživatelům chci zamaskovat proto jsem chtel použít hiden url a zde je problém že když používám proměnnou $_SESSION['img_dir'] to je uživatelova složka, který se mění s funkcí for,.... a když se přepíše cesta $_SESSION['img_dir'] funkcí for na dalšího uživatele tak se ten první obrazek taky zmeni na toho druhého uživatele. V praxi mi to udělá že Petr, Petr_kuba,.. ,.. všichni mají obrázek toho posledního načteného uživatele viz Lukáš_Petr.. Když na konci stránky udělám unset($_SESSION['img_dir']) tak to udělá že nikdo nemá obrázek.

Struktura skriptu vypada nejak takto a chtel bych se zeptat jestli nevíte jak to nejak řešit? Aby mi ty obrazky držely problém je jen u $_SESSION['img_dir']

/// soubor neco.php
session_start();
for ....  {
  zpracuj a definuj uživitalovu cestu ... $_SESSION['img_dir'] = cesta; 
  echo '<img src="a.php?folder=xy&file=file.jpg">';
}


/// soubor a.php
session_start();
  $imagepath = path . $_SESSION['img_dir'] . '/' . $_REQUEST['folder'] . '/' . $_REQUEST['file'];

      $imageinfo = getimagesize( $imagepath );
      if ($imageinfo[2] == 1) {
        $imagetype = "gif" ;
      }
      elseif ($imageinfo[2] == 2) {
        $imagetype = "jpeg" ;
      }
      elseif ($imageinfo[2] == 3) {
        $imagetype = "png" ;
      }
      else {
        header( "HTTP/1.0 404 Not Found" );
        exit ;
      }

      header( "Content-type: image/$imagetype" );
      @readfile( $imagepath );



Zkoušel jsem na internetu hledat víc těchto skriptu a dělalo mi to zatím u asi 2 co jsem zatím vyzkoušel. Kdyby někdo věděl prosím napište.
Ssob
Profil
Duvod je jednoduchy, nejdriv se na servru vyhodnoti stranka neco.php a do session se ulozi cesta k posledni fotce (porad se to prepisuje) a az pak si html prohlizec postupne zada jednotlive obrazky, jelikoz je v session posledni cesta, server vrati vzdy tentyz obrazek.

Ja bych si do session ukladal pole vsech obrazku a jako parametr get bych predaval idnex. Ukazka (nejspis nedokonala, pisu z hlavy):

/// soubor neco.php
session_start();
for ($i = 0; $i < pocet; $i++)  
{
  $_SESSION['img_dir'][$i] = cela cesta k obrazku; 
  echo '<img src="a.php?idnex='.$i.'">';
}


/// soubor a.php
session_start();
  $imagepath = $_SESSION['img_dir'][$_GET['index']];

      $imageinfo = getimagesize( $imagepath );
      if ($imageinfo[2] == 1) {
        $imagetype = "gif" ;
      }
      elseif ($imageinfo[2] == 2) {
        $imagetype = "jpeg" ;
      }
      elseif ($imageinfo[2] == 3) {
        $imagetype = "png" ;
      }
      else {
        header( "HTTP/1.0 404 Not Found" );
        exit ;
      }

      header( "Content-type: image/$imagetype" );
      @readfile( $imagepath );
1ight
Profil
Děkuju moc, v tu chvili co jsi mi odepsal už jsem na tvý idee pracoval.... asi tak v 15procentech už jsem byl :-) pak jsem to dodelal a zase chyba on ten session prostě neuloží. Nakonec jsem to udělal, že jsem to do tý jedný session přidával pořád za sebe:
unset($_SESSION['dir']);
for ( ) {
$_SESSION['dir'] .= '1cesta' . '|';
echo '<img src="">'; ...
.....
}

výsledek pak je např $_SESSION['dir'] = '1cesta' . '|' . '2cesta xy' . '|' . 'a 3nejaka cesta' . '|';
v requestu si tam definuju ten určitý index jak jsi mi doporučil a pak díky indexu to rosekám a identifikuju ten určitý díl session a ono to pak nějak tak funguje. Sláva :-)

Možná jsem předtím někde udělal chybu, že mi to tak nějak nešlo, ale já na to nemam nervy :-)
Jinak díky moc za tip a radu, třeba to taky někdo k něčemu užitečnýmu využije.

Dobrou
1ight
Profil
Nakonec to jde tím array jak píšeš Ty .. někde jsem tam měl při zpracování chybu.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0