PDA

View Full Version : [PHP] Non include il file...


Leron
08-06-2006, 15:52
ho un problema :D



un amico mi ha fatto una galleria di immagini in php per il sito www.materiaprima.tn.it


allego tutto lo script

http://www.materiaprima.tn.it/templatevecchio/galleria/galleria.zip


la galleria in questione non fa altro che listare e stampare il contenuto di una directory



ora QUAL'E' IL PROBLEMA?


sul sito uso uno script per fare l'include delle pagine

lo script è questo (lo trovate comunque nella index dello ZIP



<?php if (isset($_GET[pag]) && file_exists("./".$_GET[pag])) include($_GET[pag]); else
include("home.php");?>

ora per problemi di sicurezza ho dovuto cambiare lo script in


<?php if (isset($_GET[pag]) && file_exists("http://www.materiaprima.tn.it/".$_GET[pag])) include($_GET[pag]); else
include("home.php");?>


perchè altrimenti si poteva usare quello script per includere qualsiasi pagina


ora il problema è che adesso la galleria non funziona più



qualche anima pia potrebbe darmi una mano per favore? io non so niente di php e abbiamo una presentazione a breve :(



se non volete scaricare lo zip ecco i file della galleria

gallery.php
<?
include 'config.php';

$FILES = array();
if ($handle = opendir($GALLERY_PATH)) {
while (false !== ($file = readdir($handle))) {
if ($file[0] != "." && $file != "Thumbs.db") {
array_push($FILES, $file);
}
}
closedir($handle);
}


//print_r($FILES);
?>

<div align="left"><img src="dati/immagini/galleriaup.png" alt="Materiaprima" width="500" height="30" /></div>

<p>&nbsp;</p>
<center>
<?
for ($i = 0 ; $i < count($FILES) ; $i++) {

echo "<table width=\"415\" border=\"0\" align=\"center\" cellpadding=\"10\" cellspacing=\"0\">";
echo "<tr>";
echo " <td height=\"29\" background=\"http://www.materiaprima.rebalton.com/gbk/template/immagini/ins1.png\">&nbsp;</td>";
echo " </tr>";
echo " <tr>";
echo "<td background=\"http://www.materiaprima.rebalton.com/gbk/template/immagini/ins2.png\"><center>";
echo " <table width=\"400\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
echo " <tr>";
echo " <td><div align=\"center\"><a href=\"./index.php?pag=view_gallery.php&gallery=".$FILES[$i]."\">".$FILES[$i]."</a><br>\n</div></td>";
echo " <td width=\"150\"><a href=\"./index.php?pag=view_gallery.php&gallery=".$FILES[$i]."\"><img src=\"gallery/".$FILES[$i]."/gallery_preview.jpg\" alt=\"Materiaprima\" border=\"0\" /></a></td>";
echo "</tr>";
echo " </table>";
echo " </center></td>";
echo " </tr>";
echo " <tr>";
echo " <td height=\"31\" background=\"http://www.materiaprima.rebalton.com/gbk/template/immagini/ins3.png\">&nbsp;</td>";
echo " </tr>";
echo " </table>";
echo "<table width=\"550\" border=\"0\" cellspacing=\"2\" cellpadding=\"0\">";
}
?>

</table>
</center>


view_gallery.php
<?

//print_r($_REQUEST);

include 'config.php';

$TheDir = $GALLERY_PATH.'/'.$_REQUEST['gallery'].'/'.$PREVIEW_PATH;

$FILES = array();

if ($handle = opendir($TheDir)) {
while (false !== ($file = readdir($handle))) {
if ($file[0] != "." && $file != "Thumbs.db") {
array_push($FILES, $file);
}
}
closedir($handle);
}
?>
<div align="left"><img src="dati/immagini/galleriaup.png" alt="Materiaprima" width="500" height="30" /></div>

<p>&nbsp;</p>
<center>
<table width="550" border="0" cellspacing="2" cellpadding="0">


<?
for ($i = 0 ; $i < count($FILES) ; $i++) {
if ($i%4 == 0) echo '<tr>';

echo "<td><a href=\"".$GALLERY_PATH.'/'.$_REQUEST['gallery'].'/'.$FILES[$i]."\" rel=\"lightbox[".$_REQUEST['gallery']."]\">";
echo "<img src=\"$TheDir/".$FILES[$i]."\" border=\"0\" alt=\"Materiaprima\"></a><br>\n";
}


?>

</table>
</center>


config.php
<?

$GALLERY_PATH = './gallery';

$PREVIEW_PATH = 'anteprime';

?>







index.php

<!--Copyright 2006 Gruppo Oasi
Template e grafica a cura di Francesco Zambotti http://francesco.rebalton.com
Il codice di questo template è rilasciato con licenza BSD.
Puoi utilizzare liberamente il codice di questo sito (compresi i css) come base per creare altri lavori, ma ti chiediamo di NON utilizzare le immagini (sia quelle dei contenuti che quelle che formano la grafica del sito, questo per evitare di avere siti-fotocopia.
Naturalmente ti siamo grati se metti nel tuo sito un piccolo richiamo a materiaprima!
Grazie!-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">



<head>
<title>Gallery</title>
<meta name="description" content="Galleria immagini" />
<meta name="keywords" content="foto" />
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects" type="text/javascript"></script>
<script src="js/lightbox.js" type="text/javascript"></script>
<link href="css/lerontpl.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<center>

<!-- ============================== -->
<!-- Body -->
<!-- ============================== -->
<body>
<?php if (isset($_GET[pag]) && file_exists("./".$_GET[pag])) include($_GET[pag]); else
include("gallery.php");?>

</body>
</center>
</html>











per favore, lo so che è lungo ma non so come uscirne :cry:

Xalexalex
08-06-2006, 18:31
Forse il tuo hoster non permette l'apertura di connessioni socket HTTP.
Pertanto facendo file_exists("http://...") viene comunque restituito false. Dovresti fare un phpinfo() e controllare.
Ciauz!

Leron
08-06-2006, 20:22
Forse il tuo hoster non permette l'apertura di connessioni socket HTTP.
Pertanto facendo file_exists("http://...") viene comunque restituito false. Dovresti fare un phpinfo() e controllare.
Ciauz!
l'hosting è aruba


cmq l'include funziona con tutte le pagine, compresa la galleria, ma NON carica le foto

(in pratica non funziona il codice che sta in view_gallery.php )

è questo il problema

kk3z
09-06-2006, 13:33
Il problema secondo me è che con questo link:
http://www.materiaprima.tn.it/index.php?pag=view_gallery.php&gallery=centro contrasto
"gallery=centro contrasto" viene passato a index.php e non a view_gallery.php. Il metodo che usi per includere le pagine è un po' scomodo... potresti passare le variabil che non usi ai file inclusi.. ma è :mc:

Leron
09-06-2006, 23:05
Il problema secondo me è che con questo link:
http://www.materiaprima.tn.it/index.php?pag=view_gallery.php&gallery=centro contrasto
"gallery=centro contrasto" viene passato a index.php e non a view_gallery.php. Il metodo che usi per includere le pagine è un po' scomodo... potresti passare le variabil che non usi ai file inclusi.. ma è :mc:
grazie per il suggerimento :)

per caso sai mica come posso risolvere?

di php purtroppo non so niente, gli script li hanno fatti dei miei amici