Problema PHP con script 4images

Ciao a tutti,

dovrei risolvere un problema che ho da parecchi giorni e non so come fare.

Premetto che io di PHP purtroppo non so proprio nulla.

Ho installato lo script 4images su altervista. Li metto delle anteprime e cliccandop su download si dovrebbero scaricare dei file PSD che pero' non sono su altervista ma bensi' sul mio spazio web di Aruba.

Il problema e' che cliccando Download si apre una nuova finestra tutta bianca e subito dopo appare la finestra per il download con "Apri" e "Salva".  Se pero' un utente usa Mozilla oppure ha un pop up stopper su pc, appare la pagina bianca con scritto "Download error" e non possono scaricare.

Io vorrei "disabilitare" questa nuova finestra, in modo che cliccando download appaia solo la finestra per il download. Come posso fare?

Penso che ci sia bisogno di cambiare qualcosa nel file download.php ma purtroppo io non so niente di PHP.

Grazie a tutti per eventuali risposte

Bjorn

inviato 10 anni fa
Bjorn
X 0 X

Non conosco lo script quindi mi è impossibile aiutarti. Forse dovresti riportare il tuo problema sul forum ufficiale:

http://www.4homepages.de/forum/

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ho gia posto la domanda pure li ma purtroppo non ho ancora ricevuto risposta..

Se ti posto tutto il codice che c'e' nel file download.php non ci riusciresti lo stesso? 

risposto 10 anni fa
Bjorn
X 0 X

mi ci vorrebbe troppo tempo  :dunno:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Capito.. niente allora, grazie lo stesso   :)

risposto 10 anni fa
Bjorn
X 0 X

Comunque se ti apre una nuova pagina significa che viene usato un javascript. Potresti provare a sostituirlo con un normale tag <a> e vedere cosa succede.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Io te lo posto lo stesso, se non riesci pazienza.. 

c'e' in effetti una parte dove e' segnato il javascript

$main_template = 0;

$nozip = 1;

define('GET_CACHES', 1);

define('ROOT_PATH', './');

include(ROOT_PATH.'global.php');

require(ROOT_PATH.'includes/sessions.php');

$user_access = get_permission();

function get_remote_file($url) {

  $file_data = "";

  $url = @parse_url($url);

  if (isset($url['path']) && isset($url['scheme']) && eregi("http", $url['scheme'])) {

    $url['port'] = (!isset($url['port'])) ? 80 : $url['port'];

    if ($fsock = @fsockopen($url['host'], $url['port'], $errno, $errstr)) {

      @fputs($fsock, "GET ".$url['path']." HTTP/1.1\r\n");

      @fputs($fsock, "HOST: ".$url['host']."\r\n");

      @fputs($fsock, "Connection: close\r\n\r\n");

      $file_data = "";

      while (!@feof($fsock)) {

        $file_data .= @fread($fsock, 1000);

      }

      @fclose($fsock);

      if (preg_match("/Content-Length\: ([0-9]+)[^\/ \n]/i", $file_data, $regs)) {

        $file_data = substr($file_data, strlen($file_data) - $regs[1], $regs[1]);

      }

    }

  }

  return (!empty($file_data)) ? $file_data : 0;

}

function get_file_data($file_path) {

  global $script_url;

  ob_start();

  @ob_implicit_flush(0);

  @readfile($file_path);

  $file_data = ob_get_contents();

  ob_end_clean();

  if (!empty($file_data)) {

    return $file_data;

  }

  elseif (is_remote_file($file_path)) {

    $file_data = get_remote_file($file_path);

  }

  else {

    if (!file_exists($file_path)) {

      $file_path = preg_replace("/\/{2,}/", "/", get_document_root()."/".$file_path);

    }

    if (file_exists($file_path)) {

      $file_size = @filesize($file_path);

      $fp = @fopen($file_path, "rb");

      if ($fp) {

        $file_data = @fread($fp, $file_size);

        @fclose($fp);

      }

    }

  }

  if (empty($file_data)) {

    if (ereg("^\/", $file_path)) {

      preg_match("/^(http:\/\/[^\/]+)/i", $script_url, $regs);

      $script_url = $regs[1];

    }

    $file_data = get_remote_file($script_url."/".$file_path);

  }

  return (!empty($file_data)) ? $file_data : 0;

}

$file = array();

if ($action == "lightbox") {

  if (empty($user_info['lightbox_image_ids']) || !function_exists("gzcompress") || !function_exists("crc32")) {

    header("Location: ".$site_sess->url($url, "&"));

    exit;

  }

  $image_id_sql = str_replace(" ", ", ", trim($user_info['lightbox_image_ids']));

  $image_ids = array();

  $sql = "SELECT image_id, cat_id, image_media_file, image_download_url

          FROM ".IMAGES_TABLE."

          WHERE image_active = 1 AND image_id IN ($image_id_sql) AND cat_id NOT IN (".get_auth_cat_sql("auth_download", "NOTIN").")";

  $result = $site_db->query($sql);

  if ($result) {

    include(ROOT_PATH."includes/zip.php");

    $zipfile = new zipfile();

    $file_added = 0;

    while ($image_row = $site_db->fetch_array($result)) {

      if (!empty($image_row['image_download_url'])) {

        if (is_remote_file($image_row['image_download_url']) || is_local_file($image_row['image_download_url'])) {

          $file_path = $image_row['image_download_url'];

          $file_name = basename($image_row['image_download_url']);

        }

      }

      elseif (is_remote($image_row['image_media_file'])) {

        $file_path = $image_row['image_media_file'];

        $file_name = basename($image_row['image_media_file']);

      }

      else {

        $file_path = MEDIA_PATH."/".$image_row['cat_id']."/".$image_row['image_media_file'];

        $file_name = $image_row['image_media_file'];

      }

      if (!empty($file_path)) {

        @set_time_limit(120);

        if (!$file_data = get_file_data($file_path)) {

          continue;

        }

        $zipfile->add_file($file_data, $file_name);

        $file_added = 1;

        unset($file_data);

        $image_ids[] = $image_row['image_id'];

      }

    }

    if ($file_added) {

      if ($user_info['user_level'] != ADMIN) {

        $sql = "UPDATE ".IMAGES_TABLE."

                SET image_downloads = image_downloads + 1

                WHERE image_id IN (".trim(implode(", ", $image_ids)).")";

        $site_db->query($sql);

      }

      @set_time_limit(120);

      $file['file_name'] = time().".zip";

      $file['file_data'] = $zipfile->file();

      $file['file_size'] = strlen($file['file_data']);

    }

    else {

      header("Location: ".$site_sess->url($url, "&"));

      exit;

    }

  }

}

elseif ($image_id) {

  if (isset($HTTP_GET_VARS['size']) || isset($HTTP_POST_VARS['size'])) {

    $size = (isset($HTTP_GET_VARS['size'])) ? intval($HTTP_GET_VARS['size']) : intval($HTTP_POST_VARS['size']);

  }

  else {

    $size = 0;

  }

  $sql = "SELECT cat_id, user_id, image_media_file, image_download_url, image_downloads

          FROM ".IMAGES_TABLE."

          WHERE image_id = $image_id AND image_active = 1";

  $image_row = $site_db->query_firstrow($sql);

  if (!check_permission("auth_download", $image_row['cat_id']) || !$image_row) {

    header("Location: ".$site_sess->url($url, "&"));

    exit;

  }

  $remote_url = 0;

  if (!empty($image_row['image_download_url'])) {

    if (is_remote_file($image_row['image_download_url']) || is_local_file($image_row['image_download_url'])) {

      ereg("(.+)\.(.+)", basename($image_row['image_download_url']), $regs);

      $file_name = $regs[1];

      $file_extension = $regs[2];

      $file['file_name'] = $file_name.(($size) ? "_".$size : "").".".$file_extension;

      $file['file_path'] = dirname($image_row['image_download_url'])."/".$file['file_name'];

    }

    else {

      $file['file_path'] = $image_row['image_download_url'];

      $remote_url = 1;

    }

  }

  elseif (is_remote_file($image_row['image_media_file'])) {

    ereg("(.+)\.(.+)", basename($image_row['image_media_file']), $regs);

    $file_name = $regs[1];

    $file_extension = $regs[2];

    $file['file_name'] = $file_name.(($size) ? "_".$size : "").".".$file_extension;

    $file['file_path'] = dirname($image_row['image_media_file'])."/".$file['file_name'];

  }

  else {

    ereg("(.+)\.(.+)", basename($image_row['image_media_file']), $regs);

    $file_name = $regs[1];

    $file_extension = $regs[2];

    $file['file_name'] = $file_name.(($size) ? "_".$size : "").".".$file_extension;

    $file['file_path'] = (is_local_file($image_row['image_media_file'])) ? dirname($image_row['image_media_file'])."/".$file['file_name'] : MEDIA_PATH."/".$image_row['cat_id']."/".$file['file_name'];

  }

  if ($user_info['user_level'] != ADMIN) {

    $sql = "UPDATE ".IMAGES_TABLE."

            SET image_downloads = image_downloads + 1

            WHERE image_id = $image_id";

    $site_db->query($sql);

  }

  if (!empty($file['file_path'])) {

    @set_time_limit(120);

    if ($remote_url) {

      header("Location: ".$file['file_path']);

      exit;

    }

    elseif (!$file['file_data'] = get_file_data($file['file_path'])) {

      ?>

      <script language="javascript" type="text/javascript">

      <!--

      window.open('<?php echo $file['file_path']; ?>','imagewindow','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');

      // -->

      </script>

      <meta http-equiv="Refresh" content="0; URL=<?php echo $site_sess->url($url, "&"); ?>">

      <?php

      echo $lang['download_error']."\n<!-- NO FILE DATA / FILE NOT FOUND //-->";

      exit;

    }

    if ($action == "zip" && !eregi("\.zip$", $file['file_name']) && function_exists("gzcompress") && function_exists("crc32")) {

      include(ROOT_PATH."includes/zip.php");

      $zipfile = new zipfile();

      $zipfile->add_file($file['file_data'], $file['file_name']);

      $file['file_data'] = $zipfile->file();

      $file['file_name'] = get_file_name($file['file_name']).".zip";

    }

    $file['file_size'] = strlen($file['file_data']);

  }

  else {

    echo $lang['download_error']."\n<!-- EMPTY FILE PATH //-->";

    exit;

  }

}

else {

  echo $lang['download_error']."\n<!-- NO ACTION SPECIFIED //-->";

  exit;

}

if (!empty($file['file_data'])) {

  if (get_user_os() == "MAC") {

    header("Content-Type: application/x-unknown\n");

    header("Content-Disposition: attachment; filename=\"".$file['file_name']."\"\n");

  }

  elseif (get_browser_info() == "MSIE") {

    $disposition = (!eregi("\.zip$", $file['file_name']) && $action != "zip" && $action != "lightbox") ? 'attachment' : 'inline';

    header("Content-Disposition: $disposition; filename=\"".$file['file_name']."\"\n");

    header("Content-Type: application/x-ms-download\n");

  }

  elseif (get_browser_info() == "OPERA") {

    header("Content-Disposition: attachment; filename=\"".$file['file_name']."\"\n");

    header("Content-Type: application/octetstream\n");

  }

  else {

    header("Content-Disposition: attachment; filename=\"".$file['file_name']."\"\n");

    header("Content-Type: application/octet-stream\n");

  }

  header("Content-Length: ".$file['file_size']."\n\n");

  echo $file['file_data'];

}

exit;

?>

Se riesci a capire cosa devo cambiare mi risolvi un problema enorme   :)

risposto 10 anni fa
Bjorn
X 0 X

Non credo che sia questo lo script responsabile dell'apertura del pop-up. Mi sa che si occupa solo di inviare il file.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Allora non so nemmeno io.. ci sono una decina di file cosi', ma va a sapere quale sia quello giusto.

Vabbe', aspettiamo per vedere se rispondono sul forum ufficiale, anche se ormai ho perso le speranze.

Ti ringrazio,

Ciao!   :bye:

risposto 10 anni fa
Bjorn
X 0 X

<script language="javascript" type="text/javascript">

      <!--

      window.open('<?php echo $file['file_path']; ?>','imagewindow','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');

      // -->

      </script>

Ciao,

ci tengo a premettere che non so come sia costruito lo script 4images... Nella parte di codice che hai scritto però, la parte

che ho trascritto apre il file "$file['file_path'];" su una nuova finestra ma questo non ne implica il download...

Se il percorso del file non è corretto, viene visualizzata la pagina bianca; quella che appare a te... un'altra cosa, come mai usi uno script per la visualizzazione delle immagini per far scaricare dei pdf??? La cosa più semplice era mettere all'interno della tua pagina dei link <a href="#">Nome file</a> sostituendo il # con il percorso  completo del file, ad esempio htt://www.ilmiosito.it/prova.pdf

Ciao

risposto 10 anni fa
zeta80
X 0 X

Ciao!  :)

Grazie per la risposta.

Allora.. i file che io devo far scaricare sono file PSD di wrestling per Photoshop.

Metto qui dei link per farti capire il problema.

Questa e' la homepage:  http://thewim.altervista.org/psdzone/index.php

Se tu clicchi su un'immagine di Hulk Hogan per esempio, vedrai che funziona tutto, perche' ora li ho uppati su altervista dove e' installato lo script.

Solo che io ne ho circa 1000 di PSD e non posso upparli tutti li, li ho gia su Aruba.

Quindi volevo linkare il download ai file che ho gia su Aruba.

Se tu clicchi sull'immagine dei cavalieri dello zodiaco, che ti ho messo come prova, capirai il problema.

Ovvero qui:  http://thewim.altervista.org/psdzone/details.php?image_id=101&sessionid=d83952903b2371340718fc9a747d0a39

Questa immagine e' linkata per il download al mio spazio di Aruba, e come puoi vedere, se usi Explorer e non hai nessun blocco per le Pop Up funziona, ma se invece hai il blocco pop up oppure usi Mozilla ti da errore. Io volevo evitare che si aprisse questa nuova pagina bianca, in modo che cliccando si aprisse senza problemi la finestra di download.

Il codice che ho messo prima riguarda il file "download.php"

Il tasto download comunque, come puoi notare sta sulla pagina "details.php"

Quindi puo' anche darsi che bisogna cambiare qualcosa nella pagina details.

Pero' io di php so meno di zero  :)

Se c'e' bisogno posto anche tutto il codice che c'e' dentro il file details.php

Se si trova la soluzione mi risolvereste un gran problema.

Grazie!

risposto 10 anni fa
Bjorn
modificato 10 anni fa
X 0 X

Ciao,

ho visto le pagine che hai creato e l'errore che tu mi segnali è presente sia in mozilla che in explorer e non viene aperta una nuova pagina, bensì viene caricata una nuova pagina... 2 cose diverse!

Ho visto che il messaggio sulla pagina bianca è "Errore durante il download!"... Dovresti dove appare nel codice... sicuramente nella pagina download.php. Però non ho idea di come funzioni questa pagina e soprattutto di come venga caricato il file. Il problema potrebbe essere che ricerca il file in un percorso predefinito (del sito corrente) visto che alla pagina viene passato solo un Id... e quindi nel DB venga caricato solo il nome del file e non tutto il percorso completo (ERRORE OVVIO).

Aspetto tue delucidazioni.

Ciao

risposto 10 anni fa
zeta80
X 0 X

Si esatto, esce proprio quella pagina con scritto "errore durante il download".

Ogni categoria ha un suo ID specifico, e quando si scarica credo che lo script vada appunto a cercare il file

nella cartella con lo stesso ID della categoria.

Ma c'e' un modo per evitare che si carichi una nuova pagina? Evitando cosi questo errore?

Vuoi anche il codice della pagina details dove si trova il tasto download??

risposto 10 anni fa
Bjorn
X 0 X

Se riesci a postarla... così do un'occhiata

risposto 10 anni fa
zeta80
X 0 X

Mi sa che il file details.php non c'entri molto effettivamente, cmq ho trovato una parte di codice

nel file "function.php" che magari puo' essere utile:

if (!check_permission("auth_download", $image_row['cat_id'])) {

    $download_button = "<img src=\"".get_gallery_image("download_off.gif")."\" border=\"0\" alt=\"\" />";

    $download_zip_button = (function_exists("gzcompress") && function_exists("crc32")) ? "<img src=\"".get_gallery_image("download_zip_off.gif")."\" border=\"0\" alt=\"\" />" : "";

    $allow_download = 0;

  }

  else {

    $target = (!empty($image_row['image_download_url']) && !is_remote_file($image_row['image_download_url']) && !is_local_file($image_row['image_download_url'])) ? "target=\"_blank\"" : "";

    $download_button = "<a href=\"".$site_sess->url(ROOT_PATH."download.php?".URL_IMAGE_ID."=".$image_row['image_id'])."\"".$target."><img src=\"".get_gallery_image("download.gif")."\" border=\"0\" alt=\"\" /></a>";

    $download_zip_button = ($target == "" && function_exists("gzcompress") && function_exists("crc32")) ? "<a href=\"".$site_sess->url(ROOT_PATH."download.php?action=zip&amp;".URL_IMAGE_ID."=".$image_row['image_id'])."\"".$target."><img src=\"".get_gallery_image("download_zip.gif")."\" border=\"0\" alt=\"\" /></a>" : "";

    $allow_download = 1;

Puo' essere questo?

Perche' io devo appunto evitare che si carichi una nuova pagina sui bottoni "download" e "download_zip_button".

risposto 10 anni fa
Bjorn
X 0 X

Ciao,

questa parte funziona...  ;D

Devi controllare cosa viene memorizzato nel DB sul campo "image_download_url"...

E' il percorso per il download del file... (controlla quelli che odvrebbero puntare all'esterno)

Aspetto tue news

Ciao

risposto 10 anni fa
zeta80
X 0 X

Come posso fare per vedere cosa viene memorizzato su "image_download_url" ?

Cmq ho fatto delle prove ed ho provato ad aggiungere il link del mio sito qui:

$target = (!empty($image_row['image_download_url']) && !is_remote_file($image_row['image_download_url']) && !is_local_file($image_row['image_download_url'])) ? "target=\"_blank\"" : "";

    $download_button = "<a href=\"http://www.thewim.it".$site_sess->url(ROOT_PATH."download.php?".URL_IMAGE_ID."=".$image_row['image_id'])."\"".$target."><img src=\"".get_gallery_image("download.gif")."\" border=\"0\" alt=\"\" /></a>";

Cliccando poi su download, mi da errore pero' non si apre piu' una nuova pagina.

Mi dice che la pagina non puo' essere trovata e mi da questo link:

Con Mozilla:

http://www.thewim.it./download.php?image_id=103&sessionid=d675b0a22d5cc1729079012ce0280eaa

Con Explorer:

http://www.thewim.it./download.php?image_id=103

Io, quando uppo una foto, metto le due immagini di anteprima, e poi c'e' uno spazio per inserire il

link al file che voglio scaricare. Se lascio vuoto questo spazio lo script va automaticamente a prendere il percorso del file della prima immagine che inserisco.

Perche' la prima e' chiamata "image file" mentre la seconda e' il thumbnail, ovvero l'anteprima.

Pero' sia che metto il link, sia che lo lascio vuoto, non trova il percorso del file.

Se invece non cambio nulla nel codice, lo trova pero' sempre aprendolo su una nuova pagina.

risposto 10 anni fa
Bjorn
modificato 10 anni fa
X 0 X

Il codice che hai scritto è logico che non funzioni... perché nell'indirizzo che hai creato c'è un "." e poi non esiste la pagina "download.php"  ;D

Il valore del campo "image_download_url" corrisponde ad un campo del DB all'interno della tabella delle immagini.

Dovresti vedere cosa ci viene memorizzato per controllare che l'URL di download sia corretto...

Non so come funzioni l'algoritmo di caricamento... cmq potrebbe esserci un errore di programmazione nel caricamento del link

risposto 10 anni fa
zeta80
X 0 X

Mi sa che ci dovro' rinunciare perche' non so piu' da che parte girarmi  :(

Oppure se proprio lo voglio usare dovro' riuppare tutto su altervista, anche se mi pare assurdo

avendo il dominio su Aruba ed essendo gia uppato tutto li.

In piu' sul forum del sito ufficiale non rispondono.

risposto 10 anni fa
Bjorn
X 0 X

E' veramente assurdo! Cmq non demoralizzarti così ;)

Vedrò di scaricare il programma che utilizzi e cerco di controllare se il baco esiste veramente e vedo come posso darti una mano per risolverlo... devi solo darmi un po' di tempo!

Spero di farti avere notizie al più presto

Ciaooo

risposto 10 anni fa
zeta80
X 0 X

Io ti metto qui lo script da scaricare:   www.thewim.it/4images.zip

E qui spiega come installarlo anche se cmq di sicuro tu non ne avrai bisogno: 

http://www.diludovico.it/guide/4images.shtml

Hai TUTTO il tempo che vuoi.. ti pago anche!    ;D

Grazie per tutto il tempo che mi hai dedicato fino ad ora.

risposto 10 anni fa
Bjorn
X 0 X

Guarda che potrei prenderti sul serio per quanto riguarda il pagamento ;)

Bye

risposto 10 anni fa
zeta80
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda