Précédent   Forum du club des développeurs et IT Pro > PHP > Scripts > Galeries

Galeries Forum d'entraide sur les scripts PHP de galeries multimédia (photos, vidéos, audio, ...). Avant de poster -> Galeries en PHP

Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Affichage des résultats du sondage: Quel est le meilleur script de galerie de photos en PHP ?
Coppermine 1 25,00%
Gallery 1 25,00%
phpGraphy 0 0%
PHPmyGallery 0 0%
PhpWebGallery 0 0%
Plogger 0 0%
singapore 0 0%
Autre (préciser) 2 50,00%
Votants: 4. Vous ne pouvez pas participer à ce sondage.

Publicité
'
Réponse
 
Outils de la discussion
Vieux 01/04/2007, 17h52   #21
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Ok merci, ça amrche presque.
Je me suis inspiré du tutoriel.
Je l'ais tout d'abord testé dans l'état en y mettant une destination fixe et là impecc.
Ensuite j'ais essayé de le modifier pour permettre la création du dossier et le transfert des images sur le dossier mais là ça buggue.
Voici ma version
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
mkdir ("".$_POST[pseudo], 0777);
//
// Fonction trouvée dans la documentation de la fonction ini_get()
//
function return_bytes($val) {
   $val = trim($val);
   $last = strtolower($val{strlen($val)-1});
   switch($last) {
       // The 'G' modifier is available since PHP 5.1.0
       case 'g':
           $val *= 1024;
       case 'm':
           $val *= 1024;
       case 'k':
           $val *= 1024;
   }
 
   return $val;
}
 
define('MAX_FILE_SIZE', return_bytes(ini_get('post_max_size')));
define('UPLOAD_DIRECTORY', '"./" . $_POST[pseudo]."/"');
 
if(!empty($_FILES)){
    //
    // Debug
    //
    echo "URL du Fichier : http://www.crazytchat.com/upload/up/$pseudo/<br><br>";
 
    //
    // Récupération normale des informations
    //
    $nb_of_files = count($_FILES['attached_files']['tmp_name']);
    echo '<ul>';
    for($i = 0; $i< $nb_of_files; ++$i){
        if(is_uploaded_file($_FILES['attached_files']['tmp_name'][$i])){
            $name     = $_FILES['attached_files']['name'][$i];
            $tmp_name = $_FILES['attached_files']['tmp_name'][$i];
            $error    = $_FILES['attached_files']['error'][$i];
            $clean_name = strtolower(basename($name));
            $clean_name = preg_replace('/[^a-z0-9.-]/', '-', $clean_name);
 
            //
            // Type mime du fichier
            //
            if(function_exists('mime_content_type')){
                // Notre système nous permet de déterminer le type réel
                $type = mime_content_type($tmp_name);
            }
            else{
                // Nous sommes contraints à faire confiance à l'internaute
                $type = $_FILES['attached_files']['type'][$i];
            }
 
            //
            // Déplacement hors du répertoire temporaire
            //
            if(!move_uploaded_file($tmp_name, UPLOAD_DIRECTORY.$clean_name)){
                $error_string = "Le fichier <b>n'a pas</b> été déplacé correctement";
            }
            else{
                $error_string = 'Le fichier a été déplacé correctement';
            }
 
 
            //
            // Debug
            //
            echo '<li>';
            echo '<b>Fichier '.$i.'</b> :';
            echo '<pre>';
            print_r(array(
                    'name'  => $name,
                    'type'  => $type,
                    'error' => $error,
                    'size'  => filesize($tmp_name),
                    'tmp_name'     => $tmp_name,
                    'clean_name'   => $clean_name,
                    'error_string' => $error_string
                ));
            echo '</pre>';
            echo '</li>';
        }
    }
    echo '</ul>';
}
 
?>
 
 
<form method="post" action="<?php echo basename(__FILE__); ?>" enctype="multipart/form-data">
Votre pseudo<input name="pseudo" type="text" value="<?php echo $pseudo; ?>" /><br />
    <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_FILE_SIZE; ?>" />
    <label>Fichier joint : <input type="file" name="attached_files[]" /></label><br />
    <label>Fichier joint : <input type="file" name="attached_files[]" /></label><br />
    <label>Fichier joint : <input type="file" name="attached_files[]" /></label><br /><br />
 
    <input type="submit" value="Envoyer" />
    <input type="reset" value="Rétablir" />
</form>
et il me marque
Citation:
URL du Fichier : http://www.crazytchat.com/upload/up/webide/


Fichier 0 :
Array
(
[name] => carol.jpg
[type] => image/jpeg
[error] => 0
[size] => 3564
[tmp_name] => /tmp/phpxPcIc2
[clean_name] => carol.jpg
[error_string] => Le fichier n'a pas été déplacé correctement
)

Fichier 1 :
Array
(
[name] => normal_kiss.jpg
[type] => image/jpeg
[error] => 0
[size] => 9833
[tmp_name] => /tmp/phpypey3W
[clean_name] => normal-kiss.jpg
[error_string] => Le fichier n'a pas été déplacé correctement
)

Fichier 2 :
Array
(
[name] => rouge_104.jpg
[type] => image/jpeg
[error] => 0
[size] => 2733
[tmp_name] => /tmp/phpFOWj1W
[clean_name] => rouge-104.jpg
[error_string] => Le fichier n'a pas été déplacé correctement
)
le dossier webide n'a pas été créé.
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2007, 19h15   #22
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
En effet, move_uploaded_files() n'a pas pour objectif de créer les dossiers, à oi de le faire
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2007, 20h29   #23
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Donc pour faire plus simple, je créais 2 formulaires sur la même page (un pour la création du dossier et l'autre pour uploader les photos.
Mais juste une question encore, prendra t'il cette ligne encompte
Code :
define('UPLOAD_DIRECTORY', '"./" . $_POST[pseudo]."/"');
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2007, 21h50   #24
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Je ne comprends pas ta question. Qui doit prendre cette ligne en compte ?
En outre, pense à filtrer les données avant de définir des constantes, sans quoi tu vas te retrouver avec des injections dans tous les sens
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2007, 22h18   #25
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Je viens d'y réfléchir et c'est vrai que c'est pas gérable.
Comment dois je alors procéder au mieux pour pouvoir et créer le dossier et transférer les images.
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 14h23   #26
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Je viens de remettre le problème à plat.
Les personnes doivent s'inscrire comme membres et j'ais pensé que le plus simple serait de créer le dossier à la création du compte et ensuite gérer les photos par le fichier d'upload.
Seulement, j'ais rajouté les lignes nécessaires sur l'inscrition mais le dossier n'est pas créé.
Voici le fichier d'inscription
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?
mkdir ("../upload/up".$_POST[pseudo], 0777);
?>
 
<table width="100%"  border="0">
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
 
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css">
</head>
 
<body background="images/libertines.jpg">
<table width="62%" height="202"  border="0" align="center">
  <tr>
    <td height="198" align="center" valign="top"><form name="form1" method="post" action="verifinscription.php
	">
    <table width="105%"  border="0">
      <tr valign="middle">
        <td colspan="2"><div align="center">
          <p class="titre1"><font face="Verdana" size="2"><font face="Verdana" size="3"><b>Inscription</b></font></font></p>
          <p><font face="Verdana" size="2"><font face="Verdana" size="2"><b><br>
                </b>
                <span class="titre1">les champs avec une * sont obligatoires</span></font></font></p>
        </div></td>
        </tr>
      <tr valign="middle">
        <td width="40%" class="titre1"><div align="center">Pseudo *</div></td>
        <td width="60%"><div align="left">
          <label>
          <input name="pseudo" type="text" id="pseudo">
          </label>
 
 
        </div></td>
      </tr>
      <tr valign="middle">
        <td class="titre1"><div align="center">Email *</div></td>
        <td><input name="email" type="text" id="email"></td>
      </tr>
      <tr valign="middle">
        <td class="titre1"><div align="center">Mot de passe *</div></td>
        <td><div align="left">
          <input name="passe" type="password" id="passe">
        </div></td>
      </tr>
	  <? include("config.php")?>
      <? if($nomform=="OUI")
	  {
	  print"<tr valign=\"middle\">
        <td class=\"titre1\"><div align=\"center\">Nom</div></td>
        <td><input name=\"nom\" type=\"text\" id=\"nom\"></td>
      </tr>";
	  }
	  if($prenomform=="OUI")
	  {
	  print"<tr valign=\"middle\">
        <td class=\"titre1\"><div align=\"center\">Prénom</div></td>
        <td><input name=\"prenom\" type=\"text\" id=\"prenom\"></td>
      </tr>";
	  }
	 ?>
	 <? if($ageform=="OUI")
	 {print"<tr valign=\"middle\">
        <td class=\"titre1\"><div align=\"center\">Age *</div></td>
        <td><div align=\"left\">
          <input name=\"age\" type=\"text\" id=\"age\" size=\"3\" maxlength=\"2\">
        &nbsp;<span class=\"titre1\">Ans</span></div></td>
      </tr> ";} ?>
	  <? if($sexeform=="OUI")
	  {print"<tr valign=\"middle\">
        <td class=\"titre1\"><div align=\"center\">Sexe *</div></td>
        <td><div align=\"left\">
          <label>
          <select name=\"sexe\" id=\"sexe\">
		  <option></option>
          <option>Homme</option>
          <option>Femme</option>
          <option>Couple</option>
          </select>
          </label>
        </div></td>
      </tr> ";} ?>
sachant que le dossier doit être créé dans upload/up
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 15h15   #27
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Il y a plusieurs problèmes avec ce bout de code :
  • Tu utilises les short tags, ce qui est fortement déconseillé : utilise de préférence <?php
  • La syntaxe pour les tableaux est $_POST['pseudo'] (avec des apostrophes ou des guillemets, mais pas sans rien)
  • Tu as mis un <table> avant le <body>
  • Envoyer une variable de $_POST directement dans une fonction comme mkdir() est un très bon moyen pour ouvrir une faille de sécurité : il faut la filtrer
  • Tu créées le répertoire à chaque exécution du script, que $_POST soit rempli ou non et que le répertoire existe ou non
Par ailleurs, je te recommande la lecture de cet article : Apostrophes ou guillemets, lesquels choisir ?
Et pour terminer, je pense que ton problème vient d'un manque de / après "up".
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 12h46   #28
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
J'ais modifié la ligne de tel sorte:
Code :
1
2
3
<?php
mkdir ('../uploadlibertins/up/'.$_POST['pseudo'], 0777);
php?>
et j'ais mis les bons droits chmod mais le dossier ne se créait pas
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 14h33   #29
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Tu as une erreur de syntaxe car il faut mettre "?>" et non "php?>"
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 18h16   #30
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Désolé.
J'ais modifié mais tjrs rien, le dossier ne se crauit pas
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 18h55   #31
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Ben je sais pas moi... Utilise "echo" pour savoir exactement ce que tu envoies à mkdir, fais quelque chose. Je n'ai pas de boule de cristal pour me dire ce qui ne va pas dans ton code ou sur ta machine
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 18h59   #32
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Ce que je trouves bizarre c'est que lorsque je mets cela en place sur le fichier uploader.php dans upload/up il créait le dossier mais pas là.
comme cela
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
 
mkdir ("".$_POST[pseudo], 0777);
// Récupération du dossier dans lequel le fichier sera uploadé
$DESTINATION_FOLDER = "./" . $_POST[pseudo]."/";
					//
// Taille maximale de fichier, valeur en bytes					//
$MAX_SIZE = 10000000;											//
// 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",".png",		//
	".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>";
}
mais là impossible de télécharger plusieurs photos en simultanée
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2007, 19h16   #33
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Écoute c'est simple, visiblement tu ne lis pas mes conseils donc je vais arrêter d'essayer de t'en donner jusqu'à ce que tu corriges ton code.

Cordialement,
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 10h20   #34
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Je viens de faire un echo (mais pas sur la page d'inscription car une fois enregistré, tu est renvoyé automatiquement sur ta page fiche membre)
Donc j'ais fait
Code :
1
2
3
4
<?php echo '<pre>';
print_r($_POST); 
echo '</pre>';
?>
sur la fiche membre
et cela me donnes
Citation:
Array
(
)
et rien d'autre.
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 11h59   #35
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Si tu fais un echo mais pas sur la bonne page, tu t'attends à voir les bonnes infos ?
Fais le même print_r sur la bonne page, juste avant le makedir(), et ajoute-lui "exit;" pour ête sûr de ne pas être redirigé.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 12h23   #36
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Je viens de le faire
Code :
1
2
3
4
5
6
7
8
<?php
mkdir ('../upload/up/'.$_POST['pseudo'], 0777);
?>
<?php echo '<pre>';
print_r($_POST);
echo '</pre>';
exit;
?>
sur la page d'inscription et quand j'y vais j'ais une page blanche avec juste marqué
array
{
}
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 12h56   #37
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Allez, un petit effort, tu y es presque... Si la variable est vide, quel est le répertoire que tu tentes de créer ?

Note que tu ne suis toujours pas mes conseils : je t'avais dit avant
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 14h19   #38
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
J'ais aussi essayé avant pour le même résultat (page blanche)
J'ais fait une inscription bidon avec un peseudo quelquonque, sans résultat
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 14h26   #39
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Si la variable est vide, le répertoire qui est créé n'est évidemment pas celui que tu espères. Il faudrait que tu détermines pourquoi cette variable est vide. Relis les tutoriels sur les formulaires, fais des essais et reviens poster ici lorsque tu auras des problèmes, mais pas avant d'avoir essayé plusieurs solutions. Tu es sur un forum d'entraide, il faut donc que tu fournisses quelques efforts
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2007, 17h16   #40
webide
Invité régulier
 
Inscription : mars 2005
Messages : 89
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 89
Points : 9
Points : 9
Ca y est enfin ça fonctionnes mais un dernier petit souci rien de grave.
Il y a un problème dans l'envoi, elles (les photos n'arrives pas dans le dossier.
Voici la ligne gérant cela
Code :
define('UPLOAD_DIRECTORY', '"./" . $_POST[pseudo]."/"');
sachant que le fichier avec le formulaire se trouves dans le dossier upload/up/ tout comme le dossier créé pour les stocker.
webide est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h41.


 
 
 
 
Partenaires

Hébergement Web