Super Script de galerie photo ...mais fonctionne pas partout

Nouveau WRInaute
Bonjour à tous, j'ai pu voir qu'on pouvait poster des scripts. le mien est celui d'une galerie photo qui tient sur 1 seule page ! et permet de creer des miniatures automatiquement ...et surtout les internautes peuvent poster leur photos !!, et si on met "1" dans la page, on peut administrer les photos (supprimer ou renommer).

J'adore ce script, mais celui qui l'a poster ( ici http://www.phpcs.com/codes/GALERIE-PHOT ... 37829.aspx ) n'ai pas le devellopeur. Hors Tout va bien sur free ( ex : http://felinderace.free.fr/sp/photo-maine-coon/ ) ...Mais pas sur mon hébergeur payant. Il me dit que la fonction "register_global" est désactivée partout sauf chez free ...et que ça doit etre la raison pour laquelle ça ne fonctionne pas.

J'aime tellement cette galerie que je voudrais savoir ce qu'il faut changer pour que ça fonctionne bien sans cette fameuse option "register_global" ?


Je ne connais absolument rien en php, j'espère que quelqu'un pourra me dire si c'est possible ? je vous remercie tous d'avoir lu mon Post (même si je pense que très peu de gens pourront m'aider) :idea:
 
Nouveau WRInaute
Voici ce fameux script :

<?php
////////////-------------- debut configuration -----------------//////////
//mettre le mot de passe ici
$motdepasse="1234";
//donner le chemin depuis la racine du serveur vers la galerie, n'oubliez pas le / à la fin !
//ex: c:/programme files/easyphp/www/galerie/ (windows)
//ex2: /home/user/galerie/ (linux)
//Si vous ne savez pas, laissez vide
$chemin="";
//nombre d'images par ligne
$nb_colone=6;
//largeur max de la miniature
$max_largeur=60;
//hauteur max de la miniature
$max_longeur=60;
//version de la librairie GD, si vous ne savez pas, mettez 1.
$gd=2;
//activer les fonctions admin (renommer, suppression) 1:active 0: inactive
//il est conseillé de désactiver si vous donner le mot de passe à une autre personne
$admin=0;
////////////-------------- fin configuration ----------------//////////
if(!isset($act)) $act="";
switch($act)
{
case "upload":
if($mdp!=$motdepasse) die ("mauvais mot de passe");
verif_fichier($NomFichier);
upload();
break;
case "thumb":
thumb($img);
break;

case "supprimer":
if($admin==1)
supprimer($img);
else
echo "la suppression a été désactivé";
break;

case "renommer":
if($admin==1)
renommer($img,$nom);
else
echo "cette fonction est désactivé";
break;
default :
tete();
afficher_formulaire_upload();
upload_liste_fichier();
pied();
break;
}
function tete()
{
echo"
<html>
<head>
<title> Upload Galerie </title>
</head>
<body>";
}
function pied()
{
echo "
</body>
</html>";
}
///-------------------- liste des fonctions ----------------------////
function renommer($img,$nom)
{
global $mdp,$motdepasse;

if($mdp==$motdepasse && $nom!="" && isset($nom))
{
if(@rename($img,$nom))
{
echo "l'image <b>$img</b> a été renommé avec succès en : <b>$nom</b>";
}
else
{
echo "changement de nom echoué";
}
echo "<br /><a href=\".\">retour à la galerie</a>";
}
else
{
echo"
<div style=\"background:#C0C0C0;width:30%;\">
<b>renommer une image</b><br /><br />
<form>
<b>image:</b> <input type=\"text\" name=\"img\" value=\"$img\"><br />
<b> nouveau nom :</b> <input type=\"text\" name=\"nom\" value=\"$img\"><br />
<b>mot de passe:</b> <input type=\"password\" name=\"mdp\"><br />
<input type=\"hidden\" name=\"act\" value=\"renommer\">
<input type=\"submit\" value=\"envoyer\"><br />
</form>
</div>";
}
}
function supprimer($img)
{
global $mdp,$motdepasse;

if($mdp==$motdepasse)
{
if(@unlink($img))
{
echo "l'image <b>$img</b> a été supprimé avec succès";
}
else
{
echo "suppresion echoué";
}
echo "<br /><a href=\".\">retour à la galerie</a>";
}
else
{
echo"

<div style=\"background:#C0C0C0;width:30%;\">
<b>supprimer une image</b><br /><br />
<form>
<b>image:</b> <input type=\"text\" name=\"img\" value=\"$img\"><br />
<b>mot de passe:</b> <input type=\"password\" name=\"mdp\"><br />
<input type=\"hidden\" name=\"act\" value=\"supprimer\">
<input type=\"submit\" value=\"envoyer\"><br />
</form>
</div> ";
}

}
function alert($message)
{
echo "<br /><table align=\"center\" style=\"border:1px solid #C0c0c0;\"><tr><td><h4>$message</h4></td></tr></table>";
}
function verif_fichier($NomFichier)
{
if (!preg_match ("/^(.*)\.(txt|rar|zip|exe|jpg|png|gif|jpeg)$/i", $_FILES["NomFichier"]["name"] ))
{
exit (alert("fichier non autorisé, on a le droit seulement aux extension jpg,jpeg,png,gif"));

}

}
function tab_image()
{
//dossiers qui contient les fichiers
$d=opendir(".");

//scan du dossier
while($f=readdir($d))
{
if (preg_match ("/^(.*)\.(txt|rar|zip|exe|jpg|png|gif|jpeg)$/i", $f))
{
$is_image=true;
}
else
{
$is_image=false;
}
if ($f != "." && $f != ".." && $f!="index.php" && $f!=".htaccess" && $is_image)
$dir[]=$f;
}
closedir();
@sort($dir);
return $dir;
}
function tab_recherche($mot)
{
$dir=tab_image();
$num=count($dir);

$i=0;
while($i<$num)
{
if (preg_match ("/^(.*)$mot(.*)$/i", $dir[$i]))
{
$tab_recherche[]=$dir[$i];
//echo $dir[$i];
}
$i++;
}
return $tab_recherche;
}
function upload_liste_fichier()
{
global $admin,$path,$HTTP_HOST,$REQUEST_URI,$nb_colone,$mot;

if(isset($mot) && $mot!="")
{
$dir=tab_recherche($mot);

echo "<p align=\"center\"><a href=\".\" ><b>retour à la liste</b></a></p>";

$num=count($dir);
if($num==1 || $num==0 )
{
echo"<p> $num photo a été trouvé pour le mot <b> $mot </b></p>";
}
else
{
echo"<p> $num photos ont été trouvé pour le mot <b>$mot</b></p>";
}
}
else
{
$dir=tab_image();

//on compte le nombre de fichier trouvé dans le dossier
$num=count($dir);
if($num==1 || $num==0 )
{
echo"<p>il y un $num object " ;
}
else
{
echo"<p>il y un $num object " ;
}
}

$i=0;

echo "\n<table border=\"0\" width=\"90%\" align=\"center\"><tr bgcolor=\"#E4E4E4\">";
$width=100/$nb_colone;
$nb_ligne=0;
while($i<$num || $i%$nb_colone!=0)
{
if($nb_ligne%2==0)
{
$couleur="#F0F0F0";
}
else
{
$couleur="#E4E4E4";
}
if($i<$num)
{

$dir[$i]=rawurlencode($dir[$i]);
if (preg_match ("/^(.*)\.gif$/i", $dir[$i]))
{
echo "\n<td width=\"$width%\" ><a href=\"".$dir[$i]."\" target=\"_blank\">(pas de miniature) <br />".$dir[$i]."</a>";
if($admin==1)
{
echo"<br /> <a href=\"?act=supprimer&img=$dir[$i]\">supprimer</a>";
echo"<br /> <a href=\"?act=renommer&img=$dir[$i]\">renommer</a>";
}
echo"</td>";

}
else
{
echo "\n<td width=\"$width%\" ><a href=\"".$dir[$i]."\" target=\"blank\"><img src=\"?act=thumb&img=".$dir[$i]."\" border=\"2\"></a><br />".rawurldecode($dir[$i]);
if($admin==1)
{
echo"<br /> <a href=\"?act=supprimer&img=$dir[$i]\">supprimer</a>";
echo"<br /> <a href=\"?act=renommer&img=".$dir[$i]."\">renommer</a>";
}

echo"</td>";

}
}
else
{
echo "\n<td width=\"$width%\">&nbsp;...</td>";
}
$i++;

if($i%$nb_colone==0 &&$i!=0)
{
if($i<$num)
echo "\n</tr>\n<tr bgcolor=\"$couleur\">";
else
echo "\n</tr>";
$nb_ligne++;
}
}
echo"</table>";
}
function afficher_formulaire_upload()
{

echo'<div style="background:#C0C0C0;width:30%;">
<h4>Formulaire pour uploader une photo</h3>
<form ENCTYPE="multipart/form-data" method="post" name="upload">
<input type="hidden" name="MAX_FILE_SIZE" value="999999" />
<input name="mdp" type="password"> password<br />
<input name="NomFichier" type="file"><br />
<input type="hidden" name="act" value="upload">
<input type="SUBMIT" VALUE="Upload">
<input type="reset" name="Cancel " value="Cancel ">
</form> </div>';

echo'<table align="center"><tr><td><form >
<input name="mot" type="text"><input type="SUBMIT" VALUE="recherche">
</form></td></tr></table> ';
}
function upload()
{
global $HTTP_HOST,$REQUEST_URI,$_FILES,$chemin;
if (file_exists($_FILES['NomFichier']['name']))
{
echo"<h3>un fichier comporte deja ce nom</h3>";
}
else
{
if(move_uploaded_file($_FILES["NomFichier"]["tmp_name"],$chemin.$_FILES["NomFichier"]["name"] ))
{
echo '<h3>"'.$_FILES['NomFichier']['name'].'" a été envoyé sur le serveur avec succées</h3>';
echo '<input type="text" size="72" value="
"><br /><br />';
echo '<img src="http://'.$HTTP_HOST.$REQUEST_URI.$_FILES['NomFichier']['name'].'">';
echo '<br /> <a href=".">retourner à la galerie</a>';
}
else
{
echo "<h3>upload echoué</h3><br />";
}
}
}
function thumb($img)
{
global $gd,$max_largeur,$max_longeur;
//on demande les dimension de l'image $img:
$size = getimagesize($img);
//largeur
$largeur=$size[0];
//longeur
$longeur=$size[1];
//on regarde si c'est png jpg gif
$type=$size[2];
//on regarde si l'image depasse en longueur
$depasse_long=$longeur-$max_longeur;
//on regarde si l'image depasse en largeur
$depasse_large=$largeur-$max_largeur;
//on charge l'image $img dans $img_big:
switch($type)
{
case 2: $img_big = imagecreatefromjpeg($img); break;
case 3: $img_big = imagecreatefrompng($img); break;
case 1: $img_big = imagecreatefromgif($img);break;
}
if($depasse_long>0 || $depasse_large>0)
{
if($depasse_long>$depasse_large)
{
$largeur=($max_longeur/$longeur)*$largeur;
//echo "$largeur=$max_longeur/$longeur)*$largeur";
$longeur=$max_longeur;
//150/243*300
}
else
{
$longeur=($max_largeur/$largeur)*$longeur;
$largeur=$max_largeur;
}
//on fait une nouvelle image ayant pour dimension: largeur et hauteur

if($gd=="1")
{
$img_mini = imagecreate($largeur, $longeur);
}

else
{
$img_mini = imagecreatetruecolor($largeur, $longeur);
}


//on copie l'image d'origine contenu dans img_big dans img_mini en la reduisant a $img_x pour la largeur et $img_y pour la hauteur:
imagecopyresized($img_mini,$img_big,0,0,0,0,$largeur,$longeur,$size[0],$size[1]);

switch($type)
{
case 2:
//on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/jpeg");
//on envoie l'image reduire au navigateur:
imagejpeg($img_mini);
break;
case 3://on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/png");
//on envoie l'image reduire au navigateur:
imagepng($img_mini);
break;
case 1: //on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/gif");
//on envoie l'image reduire au navigateur:
imagegif($img_mini);
break;
default: false ;
}

}
else
{
switch($type)
{
case 2:header("Content-type: image/jpg"); $img_big = imagejpeg($img_big); break;
case 3:header("Content-type: image/png"); $img_big = imagepng($img_big); break;
case 1:header("Content-type: image/gif"); $img_big = imagegif($img_big);break;
default: false ;
}
}
}
?>
 
Nouveau WRInaute
Voilà, je n'ai jamais vu aussi simple et complet que cette galerie, j'espère qu'elle pourra etre modifiée facilement ? que faut il remplacer ?


...Après j'irai poster la version corrigée si on arrive à trouver, car elle mérite d'etre diffuser (même si son auteur est inconnu).

Merci encore. :wink:
 
WRInaute passionné
Lorque tu passes des variables en paramètre avec un truc du genre page.php?variable=bidule, tu dois les utiliser de la manière suivante dans ton code : $_GET['variable'] et non pas $variable
 
Nouveau WRInaute
Merci X-Trade, tu est super gentil : merci

donc : dès que je vois " $variable " dans mon code, je remplace par " $_GET['variable'] " Partout ...et ça devrait fonctionner comme chez free ?
 
WRInaute passionné
Non, dès que tu vois qu'il y a des passages de paramètres (du genre ?act=supprime, tu remplaces tous les $act par $_GET["act"] )
 
Nouveau WRInaute
Tu as du bien rigoler en voyant ma dernière question (heureusement que j'ai pas dit que je me débrouillais bien en php :roll: ) ... Bon, j'ai du boulot alors.


Je vais tenter de faire tout ça, sans en oublier, et puis je reviens vous dire ce que ça donne (et je le laisserai à tout le monde).

A dans ...je sais pas ???


merci, c'est super sympa de ta part (tu as vu qu'il y avait des fonctions du type téléchargement, renommer, ....j'espère qu'elle vont supporter tout ça ?).

Je reviens quand j'ai fini ...
 
WRInaute passionné
Euh non, j'ai rien vu, juste "register_global" et "free"
J'ai découvert ce problème chez eux il y a bien longtemps
 
Nouveau WRInaute
Bon, je m'y met ... je vais décryter ça ( comme du chinois :oops: ). En tout cas, vraiment merci, j'ai maintenant espoir de pouvoir garder ma galerie, je suis super content :D :D :D
 
Nouveau WRInaute
Bon c'est encore moi ... quand j'ai vu qu'il y avait presque pas de "Act" ... je crois que j'ai compris à l'instant !

tu veux dire :

$motdepasse="1234"; = $_GET["motdepasse"]="1234";


le début:

<?php
////////////-------------- debut configuration -----------------//////////
//mettre le mot de passe ici
$_GET["motdepasse"]="1234";
//donner le chemin depuis la racine du serveur vers la galerie, n'oubliez pas le / à la fin !
//ex: c:/programme files/easyphp/www/galerie/ (windows)
//ex2: /home/user/galerie/ (linux)
//Si vous ne savez pas, laissez vide
$_GET["chemin"]="";
//nombre d'images par ligne
$_GET["nb_colone"]=6;
//largeur max de la miniature
$_GET["max_largeur"]=60;
//hauteur max de la miniature
$_GET["max_longeur"]=60;
//version de la librairie GD, si vous ne savez pas, mettez 1.
$_GET["gd"]=2;
//activer les fonctions admin (renommer, suppression) 1:active 0: inactive
//il est conseillé de désactiver si vous donner le mot de passe à une autre personne
$_GET["admin"]=0;
////////////-------------- fin configuration ----------------//////////
if(!isset($_GET["act"])) $_GET["act"]="";
switch($_GET["act"])


C'est bien ça ?


... Bon je commence, et je viendrai voir si c'est ça ?
 
WRInaute passionné
J'ai trouvé une ligne du genre :

echo"<br /> <a href=\"?act=supprimer&img=$dir[$i]\">supprimer</a>";

Quelque part tu dois avoir un truc du genre if ($act=='supprimer')...

Tu remplaces par if ($_GET['act']=='supprimer')...
 
Nouveau WRInaute
Bon là j'ai un gros doute sur ce que j'ai fait (la moitié, ça m'a pris 1 heure) ...si tu pouvais me confirmer que je fais ce qu'il faut (ou pas ?). ( parce dés fois il y a des valeurs accrochées à des "!", je sais pas si je doit les reprendre ou pas ? Je continue demain, après confirmation.


Mon oeuvre :


<?php
////////////-------------- debut configuration -----------------//////////
//mettre le mot de passe ici
$_GET["motdepasse"]="1234";
//donner le chemin depuis la racine du serveur vers la galerie, n'oubliez pas le / à la fin !
//ex: c:/programme files/easyphp/www/galerie/ (windows)
//ex2: /home/user/galerie/ (linux)
//Si vous ne savez pas, laissez vide
$_GET["chemin"]="";
//nombre d'images par ligne
$_GET["nb_colone"]=6;
//largeur max de la miniature
$_GET["max_largeur"]=60;
//hauteur max de la miniature
$_GET["max_longeur"]=60;
//version de la librairie GD, si vous ne savez pas, mettez 1.
$_GET["gd"]=2;
//activer les fonctions admin (renommer, suppression) 1:active 0: inactive
//il est conseillé de désactiver si vous donner le mot de passe à une autre personne
$_GET["admin"]=0;
////////////-------------- fin configuration ----------------//////////
if(!isset($_GET["act"])) $_GET["act"]="";
switch($_GET["act"])
{
case "upload":
if($_GET["mdp"]!=$_GET["motdepasse"]) die ("mauvais mot de passe");
verif_fichier($_GET["NomFichier"]);
upload();
break;
case "thumb":
thumb($_GET["img"]);
break;

case "supprimer":
if($_GET["admin"]==1)
supprimer($_GET["img"]);
else
echo "la suppression a été désactivé";
break;

case "renommer":
if($_GET["admin"]==1)
renommer($_GET["img"],$_GET["nom"]);
else
echo "cette fonction est désactivé";
break;
default :
tete();
afficher_formulaire_upload();
upload_liste_fichier();
pied();
break;
}
function tete()
{
echo"
<html>
<head>
<title> Upload Galerie </title>
</head>
<body>";
}
function pied()
{
echo "
</body>
</html>";
}
///-------------------- liste des fonctions ----------------------////
function renommer($_GET["img"],$_GET["nom"])
{
global $_GET["mdp"],$_GET["motdepasse"];

if($_GET["mdp"]==$_GET["motdepasse"] && $_GET["nom"]!="" && isset($_GET["nom"]))
{
if(@rename($_GET["img"],$_GET["nom"]))
{
echo "l'image <b>$_GET["img"]</b> a été renommé avec succès en : <b>$_GET["nom"]</b>";
}
else
{
echo "changement de nom echoué";
}
echo "<br /><a href=\".\">retour à la galerie</a>";
}
else
{
echo"
<div style=\"background:#C0C0C0;width:30%;\">
<b>renommer une image</b><br /><br />
<form>
<b>image:</b> <input type=\"text\" name=\"img\" value=\"$_GET["img"]\"><br />
<b> nouveau nom :</b> <input type=\"text\" name=\"nom\" value=\"$_GET["img"]\"><br />
<b>mot de passe:</b> <input type=\"password\" name=\"mdp\"><br />
<input type=\"hidden\" name=\"act\" value=\"renommer\">
<input type=\"submit\" value=\"envoyer\"><br />
</form>
</div>";
}
}
function supprimer($img)
{
global $_GET["mdp"],$_GET["motdepasse"];

if($_GET["mdp"]==$_GET["motdepasse"])
{
if(@unlink($_GET["img"]))
{
echo "l'image <b>$_GET["img"]</b> a été supprimé avec succès";
}
else
{
echo "suppresion echoué";
}
echo "<br /><a href=\".\">retour à la galerie</a>";
}
else
{
echo"

<div style=\"background:#C0C0C0;width:30%;\">
<b>supprimer une image</b><br /><br />
<form>
<b>image:</b> <input type=\"text\" name=\"img\" value=\"$_GET["img"]\"><br />
<b>mot de passe:</b> <input type=\"password\" name=\"mdp\"><br />
<input type=\"hidden\" name=\"act\" value=\"supprimer\">
<input type=\"submit\" value=\"envoyer\"><br />
</form>
</div> ";
}

}
function alert($message)
{
echo "<br /><table align=\"center\" style=\"border:1px solid #C0c0c0;\"><tr><td><h4>$_GET["message"]</h4></td></tr></table>";
}
function verif_fichier($_GET["NomFichier"])
{
if (!preg_match ("/^(.*)\.(txt|rar|zip|exe|jpg|png|gif|jpeg)$/i", $_GET["_FILES"]["NomFichier"]["name"] ))
{
exit (alert("fichier non autorisé, on a le droit seulement aux extension jpg,jpeg,png,gif"));

}

}
function tab_image()
{
//dossiers qui contient les fichiers
$_GET["d"]=opendir(".");

//scan du dossier
while($_GET["f"]=readdir($_GET["d"]))
{
if (preg_match ("/^(.*)\.(txt|rar|zip|exe|jpg|png|gif|jpeg)$/i", $_GET["f"]))
{
$_GET["is_image"]=true;
}
else
{
$_GET["is_image"]=false;
}
if ($_GET["f"] != "." && $_GET["f"] != ".." && $_GET["f"]!="index.php" && $_GET["f"]!=".htaccess" && $_GET["is_image"])
$_GET["dir"][]=$_GET["f"];
}
closedir();
@sort($_GET["dir"]);
return $_GET["dir"];
}
function tab_recherche($_GET["mot"])
{
$_GET["dir"]=tab_image();
$_GET["num"]=count($_GET["dir"]);

$_GET["i"]=0;
while($_GET["i"]<$_GET["num"])
{
if (preg_match ("/^(.*)$mot(.*)$/i", $_GET["dir][$_GET["i"]]))
{
$_GET["tab_recherche"][]=$_GET["dir"][$_GET["i"]];
//echo $_GET["dir"][$_GET["i"]];
}
$_GET["i"]++;
}
return $_GET["tab_recherche"];
}
function upload_liste_fichier()
{
global $_GET["admin"],$_GET["path"],$_GET["HTTP_HOST"],$_GET["REQUEST_URI"],$_GET["nb_colone"],$_GET["mot"];

if(isset($_GET["mot"]) && $_GET["mot"]!="")
{
$_GET["dir"]=tab_recherche($_GET["mot"]);

echo "<p align=\"center\"><a href=\".\" ><b>retour à la liste</b></a></p>";

$_GET["num=count"]($_GET["dir"]);
if($_GET["num"]==1 || $_GET["num"]==0 )
{
echo"<p> $_GET["num"] photo a été trouvé pour le mot <b> $_GET["mot"] </b></p>";
}
else
{
echo"<p> $_GET["num"] photos ont été trouvé pour le mot <b>$_GET["mot"]</b></p>";
}
}
else
{
$_GET["dir"]=tab_image();

//on compte le nombre de fichier trouvé dans le dossier
$_GET["num"]=count($_GET["dir"]);
if($num==1 || $num==0 )
{
echo"<p>il y un $_GET["num"] object " ;
}
else
{
echo"<p>il y un $_GET["num"] object " ;
}
}

$_GET["i"]=0;

echo "\n<table border=\"0\" width=\"90%\" align=\"center\"><tr bgcolor=\"#E4E4E4\">";
$_GET["width"]=100/$_GET["nb_colone"];
$_GET["nb_ligne"]=0;
while($_GET["i"]<$_GET["num"] || $_GET["i"]%$_GET["nb_colone"]!=0)
{
if($_GET["nb_ligne%2"]==0)
{
$_GET["couleur"]="#F0F0F0";
}
else
{
$_GET["couleur"]="#E4E4E4";
}
if($_GET["i"]<$_GET["num"])
{

$_GET["dir"][$_GET["i")]=rawurlencode($_GET["dir"][$_GET["i"]]);
if (preg_match ("/^(.*)\.gif$_GET["/i"]", $_GET["dir"][$_GET["i"]]))
{
echo "\n<td width=\"$_GET["width%\"]" ><a href=\"".$_GET["dir"][$_GET["i"]]."\" target=\"_blank\">(pas de miniature) <br />".$_GET["dir"][$_GET["i"]]."</a>";
if($admin==1)
{
echo"<br /> <a href=\"?act=supprimer&img=$_GET["dir"][$_GET["i"]]\">supprimer</a>";
echo"<br /> <a href=\"?act=renommer&img=$_GET["dir"][$_GET["i"]]\">renommer</a>";
}
echo"</td>";

}
else
{
echo "\n<td width=\"$_GET["width%\"]" ><a href=\"".$_GET["dir"][$_GET["i"]]."\" target=\"blank\"><img src=\"?act=thumb&img=".$dir[$i]."\" border=\"2\"></a><br />".rawurldecode($_GET["dir"][$_GET["i"]]);
if($admin==1)
{
echo"<br /> <a href=\"?act=supprimer&img=$_GET["dir"][$_GET["i"]]\">supprimer</a>";
echo"<br /> <a href=\"?act=renommer&img=".$_GET["dir"][$_GET["i"]]."\">renommer</a>";
}

echo"</td>";












Alors ?


merci GreG
 
WRInaute passionné
Ce que tu viens de poster n'a aucune chance de fonctioner... dsl... Je sais que tu es débutant mais c'est qand même assez marrant ce que tu as fait :D Voila ce que tu dois changer:

Le formulaire d'envoi de l'image est en Post, donc il faut plutôt changer ca comme ca:

$mdp devient $_POST['mdp']
$NomFichier devient $_POST['NomFichier']
$act devient $_POST['act']

Le formulaire de recherche est lui en Get donc:

$mot devient $_GET['mot']

Et ne touche pas aux autres variables autres que celles cités ci-dessus dans mon billet en rouge, il faut aussi que tu utilises le simple guillemet et pas le double: tu n'as qu'a copier coller les 4 variables que j'ai posté comme ca tu es certain de ne pas faire d'erreurs...
 
Nouveau WRInaute
phloam a dit:
c'est qand même assez marrant ce que tu as fait :D



RAHhhhRaaahhh !!!!!!!!!!!!


sarracher_cheveux_de_la_tte.jpg



NON !!!


Pardon, je reprend, mes esprits après 1 heure de boulot horrible !!!


Merci phloam de ton intervention, tu m'a éviter 1 heure de + de boulot. Bref, j'ai rien compris !... Bon je relis toutes vos consignes demain, et je retente l'expérience (si j'y arrive ... je crois que je vais effacer toutes mes tentatives ... j'ai trop honte :oops: ) ...je trouvais ça bizare.

Bon demain je comprendrais surement tout :

donc seulement :

$mdp devient $_POST['mdp']
$NomFichier devient $_POST['NomFichier']
$act devient $_POST['act']


et



($act=='supprimer') devient ($_GET['act']=='supprimer')


et c'est tout ?!? (donc ça fait très peu de changements alors ? ... j'ai du changer 500 "$" tout à l'heure ! ). J'essaye de comprendre la php ...mais j'y arriverai jamais !


Bon, bonne nuit à tous ( 2h30 quand même ...) et super grand merci :D
 
WRInaute passionné
Voila tout ce que tu as à faire :Tu ouvres ton bloc note et tu fais un ctrl+H puis tu remplaces tout ce qu'il y a en rouge par tout ce qu'il y a en vert dans tout le fichier:

$mdp devient $_POST['mdp']
$NomFichier devient $_POST['NomFichier']
$act devient $_POST['act']
$mot devient $_GET['mot']
 
WRInaute occasionnel
C'est vrai que ces deux dernières lignes de code simplifient le travail mais il faut plutot remplacer les variables directement dans le code au risque de créer des trous de sécurité. Vu que ce script fait de l'upload de photos (si j'ai bien compris), il suffirait à un visiteur doué d'intentions scrupuleuses de modifier certaines variables pour pouvoir exécuter son code sur le site...

Je n'ai pas lu le code en entier mais je pense que le risque est bien présent...
 
Nouveau WRInaute
Et bien, je suis super content pour vos réponses à tous. Vous etes vraiment super !

ps: controle H ? (je connais Controle C + V pour copier coller ...mais controle H ? ... bon je vais chercher sur le web ce que c'est si vous etes pas revenus d'ici que je commence).
 
WRInaute impliqué
J'ai une question toute bête sur l'utilité du script. Est-ce que les miniatures sont de qualité?

Chaque fois que j'ai vu des sites qui retaillent automatiquement les images, le résultat est franchement degueu.

Retailler soit même en photoshop ou autre donne de bien meilleurs résultats. Bref, je chargerai l'image ET sa miniature plutot que de créer cette derniere automatiquement.
 
Nouveau WRInaute
Vap a dit:
J'ai une question toute bête sur l'utilité du script. Est-ce que les miniatures sont de qualité?

Chaque fois que j'ai vu des sites qui retaillent automatiquement les images, le résultat est franchement degueu.

Retailler soit même en photoshop ou autre donne de bien meilleurs résultats. Bref, je chargerai l'image ET sa miniature plutot que de créer cette derniere automatiquement.

Le mieux, c'est de voir le résultat http://felinderace.free.fr/sp/photo-maine-coon/ (puisque ça fonctionne encore sous free) ...le formulaire de téléchargement des photos n'est pas celui par defaut. ça met de l'interactivité dans un site statique en tout cas. Enfin, moi j'aime bien (sinon, oui : quand, c'est mes photos ...je fait ça manuellement).

...Bon je m'y met cette fois !
 
WRInaute impliqué
felinderace a dit:
Vap a dit:
J'ai une question toute bête sur l'utilité du script. Est-ce que les miniatures sont de qualité?

Chaque fois que j'ai vu des sites qui retaillent automatiquement les images, le résultat est franchement degueu.

Retailler soit même en photoshop ou autre donne de bien meilleurs résultats. Bref, je chargerai l'image ET sa miniature plutot que de créer cette derniere automatiquement.
(sinon, oui : quand, c'est mes photos ...je fait ça manuellement).

Donc tu es d'accord avec moi...
 
Nouveau WRInaute
phloam a dit:
Voila tout ce que tu as à faire :Tu ouvres ton bloc note et tu fais un ctrl+H puis tu remplaces tout ce qu'il y a en rouge par tout ce qu'il y a en vert dans tout le fichier:

$mdp devient $_POST['mdp']
$NomFichier devient $_POST['NomFichier']
$act devient $_POST['act']
$mot devient $_GET['mot']


Mais c'est génial ton Truc !
... ça va me simplifier la vie : j'adore ! merci

...je teste et je reviens.
 
Nouveau WRInaute
Bon,

alors les $motdepasse sont devenus $_POST['mot']depasse ....j'ai tout remis en $motdepasse


ma galerie affiche pour l'instant :

" Parse error: syntax error, unexpected '[', expecting ',' or ';' in /var/www/virtual/.............../test2/correction.php on line 72


ligne 72 : global $_POST['mdp'],$motdepasse;

je comprend même pas le message d'erreur, mais je vais voir ce qui est possible de faire...


Ré-edition : partout ou il y avait des messages d'erreur j'ai rechangé

global $_POST['mdp'],$motdepasse; en global $mdp,$motdepasse;


....Le message d'erreur disparaissait ...alors j'ai tout fait comme ça. Surement une mauvaise idée car les miniatures de s'affichent pas, sinon on peut maintenant télécharger des photos.


Le code corrigé donne maintenant ça :


<?php
////////////-------------- debut configuration -----------------//////////
//mettre le mot de passe ici
$motdepasse="1234";
//donner le chemin depuis la racine du serveur vers la galerie, n'oubliez pas le / à la fin !
//ex: c:/programme files/easyphp/www/galerie/ (windows)
//ex2: /home/user/galerie/ (linux)
//Si vous ne savez pas, laissez vide
$chemin="";
//nombre d'images par ligne
$nb_colone=6;
//largeur max de la miniature
$max_largeur=60;
//hauteur max de la miniature
$max_longeur=60;
//version de la librairie GD, si vous ne savez pas, mettez 1.
$gd=2;
//activer les fonctions admin (renommer, suppression) 1:active 0: inactive
//il est conseillé de désactiver si vous donner le mot de passe à une autre personne
$admin=0;
////////////-------------- fin configuration ----------------//////////
if(!isset($_POST['act'])) $_POST['act']="";
switch($_POST['act'])
{
case "upload":
if($_POST['mdp']!=$motdepasse) die ("mauvais mot de passe");
verif_fichier($_POST['NomFichier']);
upload();
break;
case "thumb":
thumb($img);
break;

case "supprimer":
if($admin==1)
supprimer($img);
else
echo "la suppression a été désactivé";
break;

case "renommer":
if($admin==1)
renommer($img,$nom);
else
echo "cette fonction est désactivé";
break;
default :
tete();
afficher_formulaire_upload();
upload_liste_fichier();
pied();
break;
}
function tete()
{
echo"
<html>
<head>
<title> Upload Galerie </title>
</head>
<body>";
}
function pied()
{
echo "
</body>
</html>";
}
///-------------------- liste des fonctions ----------------------////
function renommer($img,$nom)
{
global $mdp,$motdepasse;

if($_POST['mdp']==$motdepasse && $nom!="" && isset($nom))
{
if(@rename($img,$nom))
{
echo "l'image <b>$img</b> a été renommé avec succès en : <b>$nom</b>";
}
else
{
echo "changement de nom echoué";
}
echo "<br /><a href=\".\">retour à la galerie</a>";
}
else
{
echo"
<div style=\"background:#C0C0C0;width:30%;\">
<b>renommer une image</b><br /><br />
<form>
<b>image:</b> <input type=\"text\" name=\"img\" value=\"$img\"><br />
<b> nouveau nom :</b> <input type=\"text\" name=\"nom\" value=\"$img\"><br />
<b>mot de passe:</b> <input type=\"password\" name=\"mdp\"><br />
<input type=\"hidden\" name=\"act\" value=\"renommer\">
<input type=\"submit\" value=\"envoyer\"><br />
</form>
</div>";
}
}
function supprimer($img)
{
global $mdp,$motdepasse;

if($_POST['mdp']==$motdepasse)
{
if(@unlink($img))
{
echo "l'image <b>$img</b> a été supprimé avec succès";
}
else
{
echo "suppresion echoué";
}
echo "<br /><a href=\".\">retour à la galerie</a>";
}
else
{
echo"

<div style=\"background:#C0C0C0;width:30%;\">
<b>supprimer une image</b><br /><br />
<form>
<b>image:</b> <input type=\"text\" name=\"img\" value=\"$img\"><br />
<b>mot de passe:</b> <input type=\"password\" name=\"mdp\"><br />
<input type=\"hidden\" name=\"act\" value=\"supprimer\">
<input type=\"submit\" value=\"envoyer\"><br />
</form>
</div> ";
}

}
function alert($message)
{
echo "<br /><table align=\"center\" style=\"border:1px solid #C0c0c0;\"><tr><td><h4>$message</h4></td></tr></table>";
}
function verif_fichier($NomFichier)
{
if (!preg_match ("/^(.*)\.(txt|rar|zip|exe|jpg|png|gif|jpeg)$/i", $_FILES["NomFichier"]["name"] ))
{
exit (alert("fichier non autorisé, on a le droit seulement aux extension jpg,jpeg,png,gif"));

}

}
function tab_image()
{
//dossiers qui contient les fichiers
$d=opendir(".");

//scan du dossier
while($f=readdir($d))
{
if (preg_match ("/^(.*)\.(txt|rar|zip|exe|jpg|png|gif|jpeg)$/i", $f))
{
$is_image=true;
}
else
{
$is_image=false;
}
if ($f != "." && $f != ".." && $f!="index.php" && $f!=".htaccess" && $is_image)
$dir[]=$f;
}
closedir();
@sort($dir);
return $dir;
}
function tab_recherche($mot)
{
$dir=tab_image();
$num=count($dir);

$i=0;
while($i<$num)
{
if (preg_match ("/^(.*)$mot(.*)$/i", $dir[$i]))
{
$tab_recherche[]=$dir[$i];
//echo $dir[$i];
}
$i++;
}
return $tab_recherche;
}
function upload_liste_fichier()
{
global $admin,$path,$HTTP_HOST,$REQUEST_URI,$nb_colone,$mot;

if(isset($_GET['mot']) && $_GET['mot']!="")
{
$dir=tab_recherche($_GET['mot']);

echo "<p align=\"center\"><a href=\".\" ><b>retour à la liste</b></a></p>";

$num=count($dir);
if($num==1 || $num==0 )
{
echo"<p> $num photo a été trouvé pour le mot <b> $mot </b></p>";
}
else
{
echo"<p> $num photos ont été trouvé pour le mot <b>$mot</b></p>";
}
}
else
{
$dir=tab_image();

//on compte le nombre de fichier trouvé dans le dossier
$num=count($dir);
if($num==1 || $num==0 )
{
echo"<p>il y un $num object " ;
}
else
{
echo"<p>il y un $num object " ;
}
}

$i=0;

echo "\n<table border=\"0\" width=\"90%\" align=\"center\"><tr bgcolor=\"#E4E4E4\">";
$width=100/$nb_colone;
$nb_ligne=0;
while($i<$num || $i%$nb_colone!=0)
{
if($nb_ligne%2==0)
{
$couleur="#F0F0F0";
}
else
{
$couleur="#E4E4E4";
}
if($i<$num)
{

$dir[$i]=rawurlencode($dir[$i]);
if (preg_match ("/^(.*)\.gif$/i", $dir[$i]))
{
echo "\n<td width=\"$width%\" ><a href=\"".$dir[$i]."\" target=\"_blank\">(pas de miniature) <br />".$dir[$i]."</a>";
if($admin==1)
{
echo"<br /> <a href=\"?act=supprimer&img=$dir[$i]\">supprimer</a>";
echo"<br /> <a href=\"?act=renommer&img=$dir[$i]\">renommer</a>";
}
echo"</td>";

}
else
{
echo "\n<td width=\"$width%\" ><a href=\"".$dir[$i]."\" target=\"blank\"><img src=\"?act=thumb&img=".$dir[$i]."\" border=\"2\"></a><br />".rawurldecode($dir[$i]);
if($admin==1)
{
echo"<br /> <a href=\"?act=supprimer&img=$dir[$i]\">supprimer</a>";
echo"<br /> <a href=\"?act=renommer&img=".$dir[$i]."\">renommer</a>";
}

echo"</td>";

}
}
else
{
echo "\n<td width=\"$width%\">&nbsp;...</td>";
}
$i++;

if($i%$nb_colone==0 &&$i!=0)
{
if($i<$num)
echo "\n</tr>\n<tr bgcolor=\"$couleur\">";
else
echo "\n</tr>";
$nb_ligne++;
}
}
echo"</table>";
}
function afficher_formulaire_upload()
{

echo'<div style="background:#C0C0C0;width:30%;">
<h4>Formulaire pour uploader une photo</h3>
<form ENCTYPE="multipart/form-data" method="post" name="upload">
<input type="hidden" name="MAX_FILE_SIZE" value="999999" />
<input name="mdp" type="password"> password<br />
<input name="NomFichier" type="file"><br />
<input type="hidden" name="act" value="upload">
<input type="SUBMIT" VALUE="Upload">
<input type="reset" name="Cancel " value="Cancel ">
</form> </div>';

echo'<table align="center"><tr><td><form >
<input name="mot" type="text"><input type="SUBMIT" VALUE="recherche">
</form></td></tr></table> ';
}
function upload()
{
global $HTTP_HOST,$REQUEST_URI,$_FILES,$chemin;
if (file_exists($_FILES['NomFichier']['name']))
{
echo"<h3>un fichier comporte deja ce nom</h3>";
}
else
{
if(move_uploaded_file($_FILES["NomFichier"]["tmp_name"],$chemin.$_FILES["NomFichier"]["name"] ))
{
echo '<h3>"'.$_FILES['NomFichier']['name'].'" a été envoyé sur le serveur avec succées</h3>';
echo '<input type="text" size="72" value="
"><br /><br />';
echo '<img src="http://'.$HTTP_HOST.$REQUEST_URI.$_FILES['NomFichier']['name'].'">';
echo '<br /> <a href=".">retourner à la galerie</a>';
}
else
{
echo "<h3>upload echoué</h3><br />";
}
}
}
function thumb($img)
{
global $gd,$max_largeur,$max_longeur;
//on demande les dimension de l'image $img:
$size = getimagesize($img);
//largeur
$largeur=$size[0];
//longeur
$longeur=$size[1];
//on regarde si c'est png jpg gif
$type=$size[2];
//on regarde si l'image depasse en longueur
$depasse_long=$longeur-$max_longeur;
//on regarde si l'image depasse en largeur
$depasse_large=$largeur-$max_largeur;
//on charge l'image $img dans $img_big:
switch($type)
{
case 2: $img_big = imagecreatefromjpeg($img); break;
case 3: $img_big = imagecreatefrompng($img); break;
case 1: $img_big = imagecreatefromgif($img);break;
}
if($depasse_long>0 || $depasse_large>0)
{
if($depasse_long>$depasse_large)
{
$largeur=($max_longeur/$longeur)*$largeur;
//echo "$largeur=$max_longeur/$longeur)*$largeur";
$longeur=$max_longeur;
//150/243*300
}
else
{
$longeur=($max_largeur/$largeur)*$longeur;
$largeur=$max_largeur;
}
//on fait une nouvelle image ayant pour dimension: largeur et hauteur

if($gd=="1")
{
$img_mini = imagecreate($largeur, $longeur);
}

else
{
$img_mini = imagecreatetruecolor($largeur, $longeur);
}


//on copie l'image d'origine contenu dans img_big dans img_mini en la reduisant a $img_x pour la largeur et $img_y pour la hauteur:
imagecopyresized($img_mini,$img_big,0,0,0,0,$largeur,$longeur,$size[0],$size[1]);

switch($type)
{
case 2:
//on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/jpeg");
//on envoie l'image reduire au navigateur:
imagejpeg($img_mini);
break;
case 3://on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/png");
//on envoie l'image reduire au navigateur:
imagepng($img_mini);
break;
case 1: //on enverra au navigateur un fichier de type image au format jpeg:
header("Content-type: image/gif");
//on envoie l'image reduire au navigateur:
imagegif($img_mini);
break;
default: false ;
}

}
else
{
switch($type)
{
case 2:header("Content-type: image/jpg"); $img_big = imagejpeg($img_big); break;
case 3:header("Content-type: image/png"); $img_big = imagepng($img_big); break;
case 1:header("Content-type: image/gif"); $img_big = imagegif($img_big);break;
default: false ;
}
}
}
?>


Voilà ou j'en suis, aurais-je mal fait les changements ? (en tout cas, il y a du progret)
 
Nouveau WRInaute
phloam a dit:
Sinon une autre solution encore plus simple est de simplement ajouter ces 2 lignes: au début de ton code et de ne rien modifier d'autre:

foreach ($_POST as $key => $value) $$key = addslashes($value);
foreach ($_GET as $key => $value) $$key = addslashes($value);

trouvé ici:
http://www.asp-php.net/ressources/bouts ... aspx?id=37

Bon sinon, ta solution de secour fonctionne carrément bien !

En attendant de trouver les erreurs que j'ai fait, je confirme que ça fonctionne au poil !!! (pas testé sur free mais sur mon hébergeur payant). Merci phloam.


Cependant, je reste ouvert au propositions de modifs du script que j'ai corrigé (mal d'ailleur).
 
WRInaute passionné
Oui effectivement la seconde solution pourrait créer des trous de sécurité si un autre script est utilisé sur la même page et/ou si des variables ne sont pas initialiser (mais dans ce cas en ayant rapidement regarder je n'ai pas trouver de trous évident pour ce script, toutes les variables sont initialiser). Il faut veiller à placer les deux lignes tout en haut du code avant l'initialisation des variables.
 
Nouveau WRInaute
... j'ai mis le temps, mais merci pour vos réponses. La galerie est au top maintenant sur les hebergeurs payants...merci grandement pour cette soluce géniale.
 
WRInaute accro
Bonjour

Quid des droits d'auteur sur les photos ? Je m'explique : qu'est-ce qui empêche quelqu'un d'uploader la photo d'un autre ? Ton paragraphe sur les clauses légales est un peu léger je pense... et en cas de problème, tu pourrais risque "gros" :roll:

Mais surtout, le fait de donner en pâture des images haute définition (la première que j'ai cliquée était en 4 MPixels) est à mon avis une hérésie !... Où comment retrouver ses photos sur un microstock :roll:

Voili voilou



PS : ton article sur la HCM chez le maine coon est obsolète... et en partie faux :wink: (eh oui, tous les maine coons porteurs de la mutation HCM1 ne déclenchent pas la maladie... Expérience de terrain (bientôt 10 ans d'élevage) corroborée par une étude récente en Allemagne, qui a notamment circulé chez les éleveurs de maine coons ; au passage j'ai une homozygote++ qui va sur ses 8 ans, qui est placée chez une particulière pour sa "retraite", elle a un coeur de jeune fille et tout est même nickel au Doppler tissulaire :roll: ) ; quant au test HCM2, les premières vagues de tests ont montré son inefficacité... Conclusion : le test ADN HCM1 spécifique au maine coon ne reste qu'un outil et en rien une vérité absolue, seul un suivi échographique régulier donnera une vision concrète de la situation des chats. Dingue comme les maine coons ont perdu 10 ans d'espérance de vie depuis l'arrivée de ce test ADN... Mardi je vois le Pr Chetboul à l'ENV Maisons-Alfort, je lui poserai la question à propos de l'étude allemande :wink:
 
WRInaute passionné
lol, mort de rire, c'est mon script !!!

tu peux le trouver a cette adresse:

http://forummp3.free.fr/galerie/

je sais pas si tu as la derniere version par contre (ca commence a dater la derniere MAJ)

ca fait plaisir de lire "super script" ;)

C la fete des mere, j'ai pas trop le temps de lire le topic, mais sinon, j'essayerai de voir comment adapter le script pour satisafaire tout le monde (j'avais pris en compte les register_global à l'epoque)

a+
 
WRInaute accro
Pour obtenir des résultats meilleur au niveau des thumb, l'utilisation de ImageMagick serait pas mal je pense. En terme de rendu pour un retaillage d'image c'est quand même ce qui se fait de mieux. Les possibilités sont en effet bien plus poussées que GD. Après c'est sûr qu'il faut avoir ImageMagick d'installé sur le serveur...
 
WRInaute passionné
UsagiYojimbo a dit:
Pour obtenir des résultats meilleur au niveau des thumb, l'utilisation de ImageMagick serait pas mal je pense. En terme de rendu pour un retaillage d'image c'est quand même ce qui se fait de mieux. Les possibilités sont en effet bien plus poussées que GD. Après c'est sûr qu'il faut avoir ImageMagick d'installé sur le serveur...
dans la derniere version que j'ai pas encore mis dispo, j'ai utilisé une autre fonction de GD, ca sert à enlever les defauts lors d'un redimensionnement.
 
WRInaute passionné
felinderace a dit:
Vap a dit:
J'ai une question toute bête sur l'utilité du script. Est-ce que les miniatures sont de qualité?

Chaque fois que j'ai vu des sites qui retaillent automatiquement les images, le résultat est franchement degueu.

Retailler soit même en photoshop ou autre donne de bien meilleurs résultats. Bref, je chargerai l'image ET sa miniature plutot que de créer cette derniere automatiquement.

Le mieux, c'est de voir le résultat http://felinderace.free.fr/sp/photo-maine-coon/ (puisque ça fonctionne encore sous free) ...le formulaire de téléchargement des photos n'est pas celui par defaut. ça met de l'interactivité dans un site statique en tout cas. Enfin, moi j'aime bien (sinon, oui : quand, c'est mes photos ...je fait ça manuellement).

...Bon je m'y met cette fois !
salut, c'est ton site? si oui, alors ca serait sympa de mettre un lien vers http://forummp3.free.fr/galerie/ en bas de ta page, ca evitera à l'avenir de dire "auteur inconnu" ;)
 
Discussions similaires
Haut