Se connecter / S'enregistrer
Votre question

PB script php Galerie photo et Allopass

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
27 Août 2005 21:40:51

Bonjour,
J'ai un probleme avec un script php fourni par allopass pour créer une galerie sécurisée. Ce script est censé chercher mes vignettes et les mettres dans un tableau (5 colonnes dans mon exemple). tout fonctionne sauf que lorsque je clique sur les petites vignettes le script est censé télécharger les grandes photos (qui ont le meme nom avec le prefixe "p") dans le meme dossier. Et la impossible de voir la grande image (vignette avec croix rouge à la place). j'ai fait un millier d'essai et j'arrive a rien. Pouvez vous verifier si il n'y a pas un bins dans le script . Merci beaucoup pour votre aide, je n'ai rien trouvé sur le sujet sur google.

-----------------------------------------------
Info sur le script
-----------------------------------------------
Le fichier source proposé ici en téléchargement contient une fonction PHP qui permet :
d'afficher les vignettes d'une galerie d'images payantes via AlloPass (paiement à l'acte).
lorsque l'utilisateur clique sur l'une des vignettes, afficher l'image en taille réelle.
L'URL de l'image n'apparait pas en clair, ni dans le navigateur, ni dans le source de la page affichée.


Les avantages de cette fonction sont multiples :
affichage automatique des vignettes à partir d'un répertoire de votre serveur.
Vous n'avez donc pas besoin de créer vous même en HTML la tableau qui va afficher les vignettes.
une vignette n'est pas affichée si son "double" en taille réelle n'est pas présent sur votre serveur.
Vous n'avez qu'une seule page à créer dans laquelle vous appellerez la fonction PHP fournie.
Cette même page affichera à la fois les vignettes et les images en taille réelle.

-------------------------------------------------------
Le script
-------------------------------------------------------
<?
/* Modifiez les paramètres d'appel de la fonction selon vos besoins

NE PAS AJOUTER DE LIGNES VIDES AU DEBUT DE CE FICHIER !

Dans cet exemple :

"img" correspond au nom du repertoire où sont placées vos images (nom relatif par rapport à l'emplacement de la page B).
".jpg" correspond à l'extension des fichiers images présents dans ce répertoire.
"" correspond au préfixe des vignettes. Vous pouvez laisser ce champ vide.
"grande" correspond au préfixe des images en taille réelle : exemple : grandeimg1.jpg sera l'image originale de la vignette img1.jpg
"5" correspond au nombre de vignettes par ligne à afficher.
"XXX/YYY/ZZZ" correspond à l'identification du document que vous avez précédemment relevé.
*/

AP_gallery_select("img",".jpg","","p",6,"80685/854752/1254865");

// Ne rien modifier à partir d'ici !!

function AP_gallery_select($relpath,$extension,$prefix,$prefix_reel,$ncol=4,$auth="") {
global $_GET,$PHP_SELF;
if ($extension=="")
return -1;
if ($auth=="")
return -3;
$siteid = (int)strtok($auth,"/");
$docid = (int)strtok("/");
if ($siteid<1 || $docid<1)
return -4;
$code=trim($_GET["RECALL"]);
while ( list( $key, $val ) = each( $_GET ) ) {
if ($key!="ACTION" && $key!="IMG") {
$val=urlencode($val);
$v.="&".$key."=".$val;
}
}

switch($_GET["ACTION"]) {
case "IMG":
$handle=opendir($relpath);
if (!$handle)
return -2;
$nf=0;
$ok[0]="";
while ($file = readdir($handle)) {
if (eregi("(\\".$extension.")",$file)==true && ($prefix=="" || eregi("^(".$prefix.")",$file)) ) {
if (file_exists($relpath."/".eregi_replace("^(".$prefix.")",$prefix_reel,$file))) {
$ok[$nf]=$file;
$nf++;
}
}
}
closedir($handle);
echo("<table border = 0 cellpadding = 5 cellspacing =0>\n");
for ($i=0;$i<$nf;$i++) {
if (($i%$ncol)==0) {
if ($i>0)
echo("</tr>\n");
echo("<tr>");
}
$param = urlencode($ok[$i]);
echo ("<td><a href='$PHP_SELF?ACTION=VIEW&IMG=$param$v'><img src='$relpath/".$ok[$i]."' border = 0></a></td>\n");
}
echo("</tr></table>\n");
return 0;
case "VIEW":
@file("http://www.allopass.com/check/index.php4?CODE=$code&SITE_ID=$siteid&DOC_ID=$docid");
$r=@file("http://www.allopass.com/check/vf.php4?CODE=$code&AUTH=$auth");
if (ereg("ERR",$r[0]) || ereg("NOK",$r[0])) {
exit;
}
echo("<img src='$PHP_SELF?ACTION=IMGGEN&IMG=".$_GET["IMG"]."$v'>");
break;
case "IMGGEN":
@file("http://www.allopass.com/check/index.php4?CODE=$code&SITE_ID=$siteid&DOC_ID=$docid");
$r=@file("http://www.allopass.com/check/vf.php4?CODE=$code&AUTH=$auth");
if (ereg("ERR",$r[0]) || ereg("NOK",$r[0])) {
exit;
}
$img = eregi_replace("^(".$prefix.")",$prefix_reel,$_GET["IMG"]);
if (eregi($extension,".jpg") || eregi($extension,".jpeg"))
$type="jpeg";
else if (eregi($extension,".png"))
$type="png";
else
$type="gif";
header( "Content-type: image/$type" );
readfile($relpath."/".$img);
return 0;
}
}
?>

Autres pages sur : script php galerie photo allopass

28 Août 2005 01:14:59

Ce n'est pas dur, fais un clic droit sur l'image inexistante, et proprieté, tu aura le chemin de l'image, regarde l'anomalie, j'entend par la le chemin de l'image ecrit, cela doit etre un probleme de / ou de . pour determiné la racine du repertoire ou site.
28 Août 2005 10:05:40

Salut,
Nan ca c'est trop simple. Le script crypte l'adresse de sorte qu'on ne puisse pas la retrouver (c'est son interet) ... Donc tout les test de chemin j'ai deja fait, mais merci quand meme.

Quelqu'un à une autre idée ?
Merci
28 Août 2005 12:06:41

T'as la page a donné ? (L'url du script ?)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS