galerie photos - Forums de discussion

Navigation

Accueil du forum » PHP » galerie photos


Le sujet

mojchrisgalerie photos
Par mojchris, le Mardi 20/02/2007 à 14h19'11
90 messages
Bonjour,
J'ais récupéré un script d'upload permettant de télécharger et d'afficher une galerie photo.
Le problème vient du fait que l'upload echoue systématiquement. Les champs sont pourtant bien renseigné. Si quelqu'un saurait d'ou peut provenir le problème cela m'aiderait beaucoup.
Voici la portion de code
// Récupération du dossier dans lequel le fichier sera uploadé    //
$DESTINATION_FOLDER = $_POST["up/"];                            //
// Taille maximale de fichier, valeur en bytes                    //
$MAX_SIZE = 1000000;                                            //
// Récupération de l'url de retour                                //
$RETURN_LINK = $_SERVER['HTTP_REFERER'];                        //
// Définition des extensions de fichier autorisées (avec le ".")//
$AUTH_EXT = array(".jpg", ".bmp", ".gif");                                            //
// ############################################################ //
// Fonction permettant de créer un lien de retour automatique

function createReturnLink(){
    global $RETURN_LINK;
    echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
}

// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.

function isExtAuthorized($ext){
    global $AUTH_EXT;
    if(in_array($ext, $AUTH_EXT)){
        return true;
    }else{
        return false;
    }
}

// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.

if(!empty($_FILES["file"]["name"])){
    
    // Nom du fichier choisi:
    $nomFichier = $_FILES["file"]["name"] ;
    // Nom temporaire sur le serveur:
    $nomTemporaire = $_FILES["file"]["tmp_name"] ;
    // Type du fichier choisi:
    $typeFichier = $_FILES["file"]["type"] ;
    // Poids en octets du fichier choisit:
    $poidsFichier = $_FILES["file"]["size"] ;
    // Poids en Kilo-octets du fichier choisit:
    $poidsFichierK = $poidsFichier/1024;
    // Pré formatage en affichage avec 0 chiffre après la virgule , donc pas de virgule.
    $poidsFichierK = sprintf("%.0f", $poidsFichierK) ;
    // Code de l'erreur si jamais il y en a une:
    $codeErreur = $_FILES["file"]["error"] ;
    // Extension du fichier
    $extension = strrchr($nomFichier, ".");
    
    // Si le poids du fichier est de 0 bytes, le fichier est
    // invalide (ou le chemin incorrect) => message d'erreur
    // sinon, le script continue.
    if($poidsFichier <> 0){
        // Si la taille du fichier est supérieure à la taille
        // maximum spécifiée => message d'erreur
        if($poidsFichier < $MAX_SIZE){
            // On teste ensuite si le fichier a une extension autorisée
            if(isExtAuthorized($extension)){
                // Ensuite, on copie le fichier uploadé ou bon nous semble.
                $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
                if($uploadOk){
                                        echo "L'upload a réussi !<br><br>";
                                        echo "Nom du Fichier : $nomFichier<br>";
                                        echo "Taille du Fichier : $poidsFichierK Ko<br>";
                                        echo "URL du Fichier : http://www.crazytchat.com/upload/up/<br><br>";
                                        echo "Aperçu:<br><br>";
                                        switch ($extension) { //Tu fais écrire du html par le php
                                        case ".jpeg": echo "<IMG SRC='$nomFichier'>";break;
                                        case ".bmp": echo "<IMG SRC='$nomFichier'>";break;
                                        case ".gif": echo "<IMG SRC='$nomFichier'>";break;
                                                default: echo "<IMG SRC='error/inconnu.gif'>"; }
                                        echo "<br><br>";
                                        echo(createReturnLink());
                }else{
                    echo("L'upload a échoué !<br><br>");
                    echo(createReturnLink());
                }
            }else{
                echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
                echo (createReturnLink()."<br>");
            }
        }else{
            $tailleKo = $MAX_SIZE / 100;
            echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
            echo (createReturnLink()."<br>");
        }        
    }else{
        echo("Le fichier choisi est invalide !<br>");
        echo (createReturnLink()."<br>");
    }
}else{
    echo("Vous n'avez pas choisi de fichier !<br>");
    echo (createReturnLink()."<br>");
}
?>

Merci d'avance
webide

________________
mojchris

Les réponses

raptorPar raptor, le Mardi 20/02/2007 à 15h07'27
2218 messages
Es tu sûr de ça :

$DESTINATION_FOLDER = $_POST["up/"];

________________
Fondateur de Net-Pratique,
Ancien webmaster.
Statut: Administrateur/Webmaster

mojchrisPar mojchris, le Mardi 20/02/2007 à 19h00'16
90 messages
Il y a un dossier up dans lequel se trouve ce fichier.

________________
mojchris

xersesPar xerses, le Mardi 20/02/2007 à 22h31'37
682 messages
Oui mais pourquoi un $_POST ?
Ne faudrait-il mieux mettre :

$DESTINATION_FOLDER ="up/";

Car la variable $_POST renvoie à l'envoi de données (par formulaire par exemple) ce qui n'est pas le cas ici.

________________
Anything that can go wrong will go wrong (Murphy)
Statut: Modérateur

raptorPar raptor, le Mardi 20/02/2007 à 23h50'30
2218 messages
D'ou ma question

________________
Fondateur de Net-Pratique,
Ancien webmaster.
Statut: Administrateur/Webmaster

mojchrisPar mojchris, le Mercredi 21/02/2007 à 08h26'19
90 messages
L'envoi de photose fait par une page de formulaire .
Maintenat l'upload réussi (j'ais mis le dossier up en chmod 777) mais la photo n'apparait pas.

________________
mojchris

raptorPar raptor, le Mercredi 21/02/2007 à 09h17'57
2218 messages
verifie sur le ftp si elle est bien dedans deja

________________
Fondateur de Net-Pratique,
Ancien webmaster.
Statut: Administrateur/Webmaster

mojchrisPar mojchris, le Mercredi 21/02/2007 à 09h28'40
90 messages
oui elle est à l'emplacement

________________
mojchris

mojchrisPar mojchris, le Mercredi 21/02/2007 à 09h32'14
90 messages
Il s'agit peut être du chemin qui est faux
Voici la page qui affiche la photo
<?
$a 
0;
$handle opendir("up"); 
while ((
$file readdir())!=false) { 
    
clearstatcache();
    
$extension strrchr($file".");
    if(
$file!=".." && $file!="." && ($extension==".jpg" || $extension==".jpeg" || $extension==".gif" || $extension==".png" || $extension==".bmp"))
        {

        
// RECHERCHE DU FICHIER
        
echo "table_photo[$a] = 'up/$file';";
        
        
// RECHERCHE DU TYPE DE FICHIER
        
$file_type strrchr($file".");
        
$file_type str_replace("."""$file_type);
        
$file_type strtoupper($file_type);
        echo 
"table_type[$a] = '$file_type';";
        
        
// RECHERCHE DU NOM :
        
$file_name strtolower($file);
        
$file_name str_replace(".jpg"""$file_name);
        
$file_name str_replace(".jpeg"""$file_name);
        
$file_name str_replace(".gif"""$file_name);
        
$file_name str_replace(".png"""$file_name);
        echo 
"table_noms[$a] = '$file_name';";
        
$a++;
        }
    }
closedir($handle); 
?>
    
function showing_photos(num)
    {
    if(document.getElementById)
        {
        diaporama_fin = "";
        if(num!=0)
            diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num-1)+");return(false)'><img border=0 src=im/suiv.gif></A></td>";
        if(num!=(table_photo.length-1))
            diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num+1)+");return(false)'><img border=0 src=im/prec.gif></A></td>";
        document.getElementById("affichage_photos").innerHTML = "<div align=center><center><table border=0 width=640 cellspacing=0 cellpadding=5 height=500><tr><td colspan=2 valign=middle width=100% bgcolor=#000000 height=20><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=50%><img align=absmiddle border=0 src=im/nom-gal.gif width=16 height=16> Nom de l'image : "+table_noms[num]+"</td><td width=50%><img align=absmiddle border=0 src=im/typ-gal.gif width=16 height=16> Type d'image : "+table_type[num]+"</td></tr></table></td></tr><tr><td width=100% colspan=2 valign=middle height=380><table border=0 width=100% cellspacing=1 cellpadding=0 bgcolor=#FF0000 height=100%><tr><td width=100% bgcolor=#000000 height=380><center><img src='"+table_photo[num]+"' BORDER=0></center></td></tr></table></td></tr><br><br><tr>"+diaporama_fin+"</tr></table></center></div>";
        }
    }

window.onload = new Function("showing_photos(0)")
</SCRIPT>


<DIV align="center" ID="affichage_photos"></DIV>
<a href = "index.php">Retourner au service d'upload ?<a/>

Ne faudrait il pas un / après up

________________
mojchris

mojchrisPar mojchris, le Vendredi 23/02/2007 à 12h11'32
90 messages
Maintenant cela fonctionne. Par contre, juste encore une question. Toutes les photos sont envoyées dans le dossier up, comment procéder le plus simplement pour créer des sous dossiers automatiquement (sachant que les personnes téléchargeant les photos doivent le faire avec leur pseudo comme titre des photos et limiter le nombre de photos téléchargeable (12 maxi)

________________
mojchris

mojchrisPar mojchris, le Dimanche 04/03/2007 à 18h54'00
90 messages
Le problème qu'il y a c'est que lorsque je vais sur la galerie photo, il montre toutes les photos uploadées et pas seulement celles du membre.
Je sais que la meilleure solution est de gérer cela par BDD. J'ais créé une table dans la base membres mais par contre je n'arrives pas à lier la galerie, la page upload et la BDD
Voici la galerie
<?

//ouverture et control de la session
session_start();
if ( !
session_is_registered("email") )
{
print 
"<center><b>Cette page et uniquement pour les membres<br> <br><a href='../index.php'>connection</a> <br>-||||-<br> <a href='inscription.php'>inscription</a></b><center>";exit;
}

//connexion a la base de donnée
include"config.php";
include
"include/variable.php";
$db mysql_connect($serveur$login$password);
mysql_select_db($base,$db);
//je recherche les données de la base membre de l'email du mec
if ($action == "change")
        {
        
$query "UPDATE $table SET pseudo = '$pseudo',email= '$email', passe= '$passe' ,nom= '$nom' ,prenom= '$prenom' ,pays= '$pays' , site ='$site', age ='$age', sexe='$sexe',departement ='$departement', ville='$ville', mot='$mot' WHERE email = '$email'";
        
$result mysql_query($query);
        }
 if (
$action == "image")
        {
        
//ici je recherche l'image qui correspond a l'email
        
$query "UPDATE $table SET image='$image' WHERE email = '$email'";
        
$result mysql_query($query);}
 
$sql=("select image from $table Where email='$email'");$result=mysql_query($sql);
 
$rs=mysql_fetch_array($result);
$image=$rs["image"];
//ici je recherche l'id de l'email
$sql=("select id from $table Where email='$email'");
$result=mysql_query($sql);
$rs=mysql_fetch_array($result);
$id=$rs["id"];
//la requete je prends toutes les données de la table membre
$sql "select*from  $table WHERE email='$email'";
// on envoie la requete
$req mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
echo
"$info";
php $requete mysql_query("Select * FROM a_galerie WHERE `auteur`='".$_SESSION['pseudo']."'");
 
// on ferme la connexion à mysql
mysql_close();
mysql_close($db);
?>

<html><head>
<link rel="stylesheet" type="text/css" href="style-gal.css">
<TITLE><? echo(":: Galerie d'images de .$pseudo. ::"); ?></TITLE>
</head><body>
<!-- DEBUT DU SCRIPT -->
<script language="JavaScript1.2">
/*
SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
http://www.editeurjavascript.com
*/

function ejs_nodroit()
    {
    alert('Désolé, le clic droit a été désactivé sur cette page. ');
    return(false);
    }

document.oncontextmenu = ejs_nodroit;
</script>
<!-- FIN DU SCRIPT -->
<body background="im/fond1.jpg">

<SCRIPT LANGUAGE="JavaScript">
table_photo = new Array;
table_noms = new Array;
table_type = new Array;

<?
$a 
0;
$handle opendir("up"); 
while ((
$file readdir())!=false) { 
    
clearstatcache();
    
$extension strrchr($file".");
    if(
$file!=".." && $file!="." && ($extension==".jpg" || $extension==".jpeg" || $extension==".gif" || $extension==".png" || $extension==".bmp"))
        {

        
// RECHERCHE DU FICHIER
        
while ($result=mysql_fetch_array($requete))
{
    echo 
"<img src=\"$result['urlphoto']\">;

}
        
        // RECHERCHE DU TYPE DE FICHIER
        $file_type = strrchr($file, "
.");
        $file_type = str_replace("
.", "", $file_type);
        $file_type = strtoupper($file_type);
        echo "
table_type[$a] = '$file_type';";
        
        // RECHERCHE DU NOM :
        $file_name = strtolower($file);
        $file_name = str_replace("
.jpg", "", $file_name);
        $file_name = str_replace("
.jpeg", "", $file_name);
        $file_name = str_replace("
.gif", "", $file_name);
        $file_name = str_replace("
.png", "", $file_name);
        echo "
table_noms[$a] = '$file_name';";
        $a++;
        }
    }
closedir($handle); 
?>
    
function showing_photos(num)
    {
    if(document.getElementById)
        {
        diaporama_fin = "";
        if(num!=0)
            diaporama_fin += "
<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num-1)+");return(false)'><img border=0 src=im/suiv.gif></A></td>";
        
if(num!=(table_photo.length-1))
            
diaporama_fin += "<td height=20><p align=center><A HREF=# onClick='showing_photos("+(num+1)+");return(false)'><img border=0 src=im/prec.gif></A></td>";
        
document.getElementById("affichage_photos").innerHTML "<div align=center><center><table border=0 width=640 cellspacing=0 cellpadding=5 height=500><tr><td colspan=2 valign=middle width=100% bgcolor=#000000 height=20><table border=0 width=100% cellspacing=0 cellpadding=0><tr><td width=50%><img align=absmiddle border=0 src=im/nom-gal.gif width=16 height=16> Nom de l'image : "+table_noms[num]+"</td><td width=50%><img align=absmiddle border=0 src=im/typ-gal.gif width=16 height=16> Type d'image : "+table_type[num]+"</td></tr></table></td></tr><tr><td width=100% colspan=2 valign=middle height=380><table border=0 width=100% cellspacing=1 cellpadding=0 bgcolor=#FF0000 height=100%><tr><td width=100% bgcolor=#000000 height=380><center><img src='"+table_photo[num]+"' BORDER=0></center></td></tr></table></td></tr><br><br><tr>"+diaporama_fin+"</tr></table></center></div>";
        }
    }

window.onload = new Function("showing_photos(0)")
</SCRIPT>


<DIV align="center" ID="affichage_photos"></DIV>
<a href = "index.php">Retourner au service d'upload ?<a/>


</body>
</html>

La page d'upload
$DESTINATION_FOLDER = 'up/';                            //
// Taille maximale de fichier, valeur en bytes                    //
$MAX_SIZE = 1000000;                                            //
// Récupération de l'url de retour                                //
$RETURN_LINK = $_SERVER['HTTP_REFERER'];                        //
// Définition des extensions de fichier autorisées (avec le ".")//
$AUTH_EXT = array(".jpg", ".bmp", ".gif");                                            //
// ############################################################ //
// Fonction permettant de créer un lien de retour automatique

function createReturnLink(){
    global $RETURN_LINK;
    echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
}

// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.

function isExtAuthorized($ext){
    global $AUTH_EXT;
    if(in_array($ext, $AUTH_EXT)){
        return true;
    }else{
        return false;
    }
}

// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.

if(!empty($_FILES["file"]["name"])){
    $nomFichier = $idMembre.'-'.$_FILES["file"]["name"];
    // Nom du fichier choisi:
    $nomFichier = $_FILES["file"]["name"] ;
    // Nom temporaire sur le serveur:
    $nomTemporaire = $_FILES["file"]["tmp_name"] ;
    // Type du fichier choisi:
    $typeFichier = $_FILES["file"]["type"] ;
    // Poids en octets du fichier choisit:
    $poidsFichier = $_FILES["file"]["size"] ;
    // Poids en Kilo-octets du fichier choisit:
    $poidsFichierK = $poidsFichier/1024;
    // Pré formatage en affichage avec 0 chiffre après la virgule , donc pas de virgule.
    $poidsFichierK = sprintf("%.0f", $poidsFichierK) ;
    // Code de l'erreur si jamais il y en a une:
    $codeErreur = $_FILES["file"]["error"] ;
    // Extension du fichier
    $extension = strrchr($nomFichier, ".");
    
    // Si le poids du fichier est de 0 bytes, le fichier est
    // invalide (ou le chemin incorrect) => message d'erreur
    // sinon, le script continue.
    if($poidsFichier <> 0){
        // Si la taille du fichier est supérieure à la taille
        // maximum spécifiée => message d'erreur
        if($poidsFichier < $MAX_SIZE){
            // On teste ensuite si le fichier a une extension autorisée
            if(isExtAuthorized($extension)){
                // Ensuite, on copie le fichier uploadé ou bon nous semble.
                $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nomFichier);
                if($uploadOk){
                                        echo "L'upload a réussi !<br><br>";
                                        echo "Nom du Fichier : $nomFichier<br>";
                                        echo "Taille du Fichier : $poidsFichierK Ko<br>";
                                        echo "URL du Fichier : http://www.crazytchat.com/upload/up/<br><br>";
                                        echo "Aperçu:<br><br>";
                                        switch ($extension) { //Tu fais écrire du html par le php
                                        case ".jpeg": echo "<IMG SRC='$nomFichier'>";break;
                                        case ".bmp": echo "<IMG SRC='$nomFichier'>";break;
                                        case ".gif": echo "<IMG SRC='$nomFichier'>";break;
                                                default: echo "<IMG SRC='error/inconnu.gif'>"; }
                                        echo "<br><br>";
                                        echo(createReturnLink());
                }else{
                    echo("L'upload a échoué !<br><br>");
                    echo(createReturnLink());
                }
            }else{
                echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
                echo (createReturnLink()."<br>");
            }
        }else{
            $tailleKo = $MAX_SIZE / 100;
            echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
            echo (createReturnLink()."<br>");
        }        
    }else{
        echo("Le fichier choisi est invalide !<br>");
        echo (createReturnLink()."<br>");
    }
}else{
    echo("Vous n'avez pas choisi de fichier !<br>");
    echo (createReturnLink()."<br>");
}
?>

et la table
CREATE TABLE a_galerie (
pseudo varchar(30) NOT NULL default '',
image varchar(50) NOT NULL default '',
id int(11) NOT NULL auto_increment,
PRIMARY KEY  (id)
) TYPE=MyISAM;


[Message édité par mojchris le 04/03/2007 à 18h55'27]

________________
mojchris

Pages

Réponses les plus anciennes... 123 ...Réponses les plus récentes

A lire également

- Les conditions générales d'utilisation du site

Top-sites membres

Dark Lord Center | -17 pointsSweet Gwendoline | -22 pointsS'entraîner à Villers-Bretonneux | -23 pointsCalitel, votre portail des loisirs multimédia | -23 points

Discussions récentes dans les forums

Sujet Forum
rerPhpBB bug d'horloge ?
Sujet posté par rer le 09/01/2009 à 10h40'27
Le comptoir » Le bar
f6netJe recherche des partenaires
Sujet posté par f6net le 08/01/2009 à 09h56'46
Internet » Référencement, Régies, Annuaires
depanmonpcEchange de liens site depannage informatique.
Sujet posté par depanmonpc le 07/01/2009 à 16h48'11
Le comptoir » Echange de liens / Recherche de partenaires
xersesRe: compression d'images
Réponse postée par xerses le 07/01/2009 à 00h29'37
Graphisme / Photographie » Photographies
tienoRe: IE 7 VS Firefox 2
Réponse postée par tieno le 04/01/2009 à 18h05'36
Internet » Autres sites à voir
rootRe: Espace-Membre : pb connexion
Réponse postée par root le 02/01/2009 à 16h47'50
Développement » PHP
xersesRe: probleme de fenêtre [Réglé]
Réponse postée par xerses le 01/01/2009 à 20h16'20
Net-Pratique.fr » Informations
ced51Re: liens , sport Mécanique
Réponse postée par ced51 le 27/12/2008 à 12h18'48
Le comptoir » Echange de liens / Recherche de partenaires
ced51pages
Sujet posté par ced51 le 26/12/2008 à 17h44'42
Net-Pratique.fr » Support
rerjoyeux_noel._gp.pps
Sujet posté par rer le 24/12/2008 à 10h08'30
Le comptoir » Le bar
Membres
Pseudo:
Pass: Mémoriser ?
Problème d'identificationInscription gratuite
Tribune libre
CNIL: 1098091
Connectés: 19