Publicité

Affichage des résultats du sondage: Quel est le meilleur script de galerie de photos en PHP ?

Votants
5. Vous ne pouvez pas participer à ce sondage.
  • Coppermine

    1 20,00%
  • Gallery

    1 20,00%
  • phpGraphy

    0 0%
  • PHPmyGallery

    1 20,00%
  • PhpWebGallery

    0 0%
  • Plogger

    0 0%
  • singapore

    0 0%
  • Autre (préciser)

    2 40,00%
+ Répondre à la discussion
Page 2 sur 3 PremièrePremière 123 DernièreDernière
Affichage des résultats 21 à 40 sur 51
  1. #21
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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
    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éé.

  2. #22
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    En effet, move_uploaded_files() n'a pas pour objectif de créer les dossiers, à oi de le faire

  3. #23
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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]."/"');

  4. #24
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    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

  5. #25
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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.

  6. #26
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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

  7. #27
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    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".

  8. #28
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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

  9. #29
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    Tu as une erreur de syntaxe car il faut mettre "?>" et non "php?>"

  10. #30
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    Désolé.
    J'ais modifié mais tjrs rien, le dossier ne se crauit pas

  11. #31
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    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

  12. #32
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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

  13. #33
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    É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,

  14. #34
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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
    Array
    (
    )
    et rien d'autre.

  15. #35
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    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é.

  16. #36
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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
    {
    }

  17. #37
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    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

  18. #38
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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

  19. #39
    Rédacteur
    Avatar de Yogui
    Homme Profil pro Guillaume Rossolini
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 719
    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 719
    Points : 29 234
    Points
    29 234

    Par défaut

    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

  20. #40
    Invité régulier
    Inscrit en
    mars 2005
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : mars 2005
    Messages : 89
    Points : 9
    Points
    9

    Par défaut

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •