PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » Liste déroulante et modification de données » 03-06-2010 20:13:04

sam01
Réponses : 2

Bonjour,

j'ai la liste déroulante suivante

    <p class="double">
                        <label for="f1-pays" class="oblig">* Pays :
                        <span class="info"></span></label>
                        <?php
                               
                        echo '<select name="ad_pays" class="font" onchange="document.forms[\'form01\'].submit();">';
                       
                       
                                if (empty($ad_pays))
                                {
                                        echo '<option value="-1" selected="selected">Choisir</option>';
                                }
                                else
                                {
                                        echo '<option value="-1">Choisir</option>';
                                }
                                // on se connecte à MySQL
                                include ('connect.php');

                                $sqla = sprintf("SELECT pays_".$lg." FROM flatforswap_pays ORDER BY pays_".$lg." ASC");
                               
                               

                                $reqa = mysql_query($sqla) or die('Erreur SQL !<br>'.$sqla.'<br>'.mysql_error());
                                while($dataa = mysql_fetch_assoc($reqa))
                                {
                                        if ($ad_pays == $dataa['pays_'.$lg.''])
                                        {
                                                echo '<option value="'.$dataa['pays_'.$lg.''].'" selected="selected">'.$dataa['pays_'.$lg.''].'</option>';
                                        }
                                        if ($ad_pays != $dataa['pays_'.$lg.''])
                                        {
                                                echo '<option value="'.$dataa['pays_'.$lg.''].'">'.$dataa['pays_'.$lg.''].'</option>';
                                        }
                                }
                        ?>

                        </select>
                </p>
               
       
                <p class="double">
                        <label for="f1-ville" class="oblig">* Ville :
                        <span class="info"></span></label>
                        <!--<select name="ad_ville" class="font">-->
                        <?php
                       
                        echo '<select name="ad_ville" calss="font" onchange="document.forms[\'form01\'].submit();">'; //  <!-- correspond à l'id du formulaire id="form01" -->
                       
                       
                        echo '<option value="-1">Choisir</option>';
                       
                       
                        // requête de jointure entre la table pays et la table ville
                               
                                                                       
                       
                                $sqlb = sprintf("SELECT vl.ville_fr FROM flatforswap_ville vl INNER JOIN flatforswap_pays py ON py.id_pay = vl.id_pay   WHERE py.pays_".$lg." = '".$ad_pays."' ORDER BY vl.ville_fr ASC");
                       
                                $reqb = mysql_query($sqlb) or die('Erreur SQL !<br>'.$sqlb.'<br>'.mysql_error());
                                while($datab = mysql_fetch_assoc($reqb))
                                {
                                        if ($ad_ville == $datab['ville_fr'])
                                        {
                                                echo '<option value="'.$datab['ville_fr'].'" selected="selected">'.$datab['ville_fr'].'</option>';
                                        }
                                        if ($ad_ville != $datab['ville_fr'])
                                        {
                                                echo '<option value="'.$datab['ville_fr'].'">'.$datab['ville_fr'].'</option>';
                                        }
                                }
               
                               
                               
                        ?>
                       
                       
                        </select>
               
       
               
                </p>

Lors de l'inscription de l'utilisateur ça marche parafitement.

Mon souci c'est pour la modifications des données

Je vais chercher les infos dans la base mysql et je réaffiche le formulaire


                $id_vil = $datae['id_vil'];
                // on détermine la ville et le code postal
               
                $sqlf = sprintf("SELECT id_pay, ville_fr, ad_cp FROM flatforswap_ville WHERE id_vil='".$id_vil."'");
                $reqf = mysql_query($sqlf) or die('Erreur SQL : <br />'.$sqlf);
                $dataf = mysql_fetch_assoc($reqf);
                $ad_ville = $dataf['ville_fr'];
                echo $ad_ville;
                $ad_cp = $dataf['ad_cp'];
                $id_pay = $dataf['id_pay'];
               
               
                // on détermine le pays
               
                $sqlg = sprintf("SELECT id_con, pays_".$lg." FROM flatforswap_pays WHERE id_pay='".$id_pay."'");
                $reqg = mysql_query($sqlg) or die('Erreur SQL : <br />'.$sqlg);
                $datag = mysql_fetch_assoc($reqg);
                $id_con = $datag['id_con'];
                $ad_pays = $datag['pays_'.$lg.''];
                echo $ad_pays;

Mon formualire s'affiche bien avec les bonnes données, mais quand je veux changer la ville ou le pays dans la liste déroulante, je reviens toujours aux même données....

Ca signifie que l'utilisateur ne peur modifier ni le pays ni la ville....

Merci d'avance pour votre aide.

#2 Re : Forum Général PHP » requête de jointure et récupération de ligne » 21-05-2010 08:31:54

Bonjour Alnos,

j'ai cherhcer mais je peine encore, voilà ce que j'ai fait

$tabGroupement = array();

        while($dataa = mysql_fetch_assoc($reqa)){    
                $tabGroupement[$dataa['id_adh']][] = $dataa;}
       
       
        foreach ($tabGroupement as $dataa['id_adh'] => $liste_nom) {
        // requête pour déterminer la localité de l'adhérent
               
        echo '<div class="liste01">';

        echo '<div class="rectxx marginb10">';
                 foreach ($liste_nom as $dataa['continent']) {

mais ça ne marche pas terrible j'ai des array de partout qui s'affiche...

au fait voilà ce que me donne la commande suivante

        $tabGroupement = array();
       
        while($dataa = mysql_fetch_assoc($reqa)){    
    $tabGroupement[$dataa['id_adh']][] = $dataa;
        }

         echo '<pre>';
print_r($tabGroupement);
echo '</pre>';

Résultat

Array
(
    [4] => Array
        (
            [0] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Afrique
                    [pays] => Senegal
                    [ville] => Vendée
                    [date_deb] => 2010-05-07
                    [date_fin] => 2010-05-29
                    [autre] =>
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [1] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Asie
                    [pays] => Chine
                    [ville] => Vendée
                    [date_deb] => 2009-05-31
                    [date_fin] => 2009-08-30
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [2] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Amerique du nord
                    [pays] => Floride
                    [ville] => Vendée
                    [date_deb] => 2010-05-22
                    [date_fin] => 2010-05-31
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [3] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Europe
                    [pays] => France
                    [ville] => Vendée
                    [date_deb] => 2010-04-22
                    [date_fin] => 2010-04-30
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [4] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Afrique
                    [pays] => Senegal
                    [ville] => Vendée
                    [date_deb] => 2010-05-07
                    [date_fin] => 2010-05-29
                    [autre] =>
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [5] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Asie
                    [pays] => Chine
                    [ville] => Vendée
                    [date_deb] => 2009-05-31
                    [date_fin] => 2009-08-30
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [6] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Amerique du nord
                    [pays] => Floride
                    [ville] => Vendée
                    [date_deb] => 2010-05-22
                    [date_fin] => 2010-05-31
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [7] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Europe
                    [pays] => France
                    [ville] => Vendée
                    [date_deb] => 2010-04-22
                    [date_fin] => 2010-04-30
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [8] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Afrique
                    [pays] => Senegal
                    [ville] => Vendée
                    [date_deb] => 2010-05-07
                    [date_fin] => 2010-05-29
                    [autre] =>
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [9] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Asie
                    [pays] => Chine
                    [ville] => Vendée
                    [date_deb] => 2009-05-31
                    [date_fin] => 2009-08-30
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [10] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Amerique du nord
                    [pays] => Floride
                    [ville] => Vendée
                    [date_deb] => 2010-05-22
                    [date_fin] => 2010-05-31
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [11] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Europe
                    [pays] => France
                    [ville] => Vendée
                    [date_deb] => 2010-04-22
                    [date_fin] => 2010-04-30
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [12] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Afrique
                    [pays] => Senegal
                    [ville] => Vendée
                    [date_deb] => 2010-05-07
                    [date_fin] => 2010-05-29
                    [autre] =>
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [13] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Asie
                    [pays] => Chine
                    [ville] => Vendée
                    [date_deb] => 2009-05-31
                    [date_fin] => 2009-08-30
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [14] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Amerique du nord
                    [pays] => Floride
                    [ville] => Vendée
                    [date_deb] => 2010-05-22
                    [date_fin] => 2010-05-31
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [15] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Europe
                    [pays] => France
                    [ville] => Vendée
                    [date_deb] => 2010-04-22
                    [date_fin] => 2010-04-30
                    [autre] => OK
                    [up_nom] => 1gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [16] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Afrique
                    [pays] => Senegal
                    [ville] => Vendée
                    [date_deb] => 2010-05-07
                    [date_fin] => 2010-05-29
                    [autre] =>
                    [up_nom] => 3gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [17] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Asie
                    [pays] => Chine
                    [ville] => Vendée
                    [date_deb] => 2009-05-31
                    [date_fin] => 2009-08-30
                    [autre] => OK
                    [up_nom] => 3gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [18] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Amerique du nord
                    [pays] => Floride
                    [ville] => Vendée
                    [date_deb] => 2010-05-22
                    [date_fin] => 2010-05-31
                    [autre] => OK
                    [up_nom] => 3gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

            [19] => Array
                (
                    [id_adh] => 4
                    [id_vil] => 24
                    [id_log] => 4
                    [description] => Près de la gare et de la mer.
                    [type] => 1
                    [continent] => Europe
                    [pays] => France
                    [ville] => Vendée
                    [date_deb] => 2010-04-22
                    [date_fin] => 2010-04-30
                    [autre] => OK
                    [up_nom] => 3gd.jpeg
                    [id_pay] => 67
                    [id_con] => 7
                    [pays_fr] => France
                    [cont_fr] => Europe
                )

        )

)

et j'aimerais avoir l'affichae de la façon suivante :

Pour un adhérent donné :

son identifiant(id_adh)

sa localité (cont_fr, pays_fr et ville)

toutes les photos le concernant (up_nom) (il y en a plusieurs par adhérent)

toutes les destinations le concernant (continent, pays, date_deb, date_fin) (il y en a plusieurs par adhérent)

Merci d'avance pour votre aide parceque là je peine un peu...

#3 Forum Général PHP » rename de fichier existant » 20-05-2010 15:56:01

sam01
Réponses : 4

Bonjour j'ai code suivant

// Fonction de renommage : si fichier.ext existe, renomme en fichier1.ext ;  si fichier1.ext existe, renomme en fichier2.ext etc..
function Rename_fich($dossier,$fichier)
{
  //Si le fichier existe et est un fichier valide
  if (is_file($dossier.$fichier))
  {
     // Informations sur le fichier
    $info = pathinfo($dossier.$fichier);
    $extension = $info['extension'];
    $filename = $info['filename'];                      
    // Cherche dans le nom de fichier des caractères numériques en fin de nom
    $num = preg_match('#[0-9]+$#',$filename,$matches)? $matches[0] : null;    
    // Si des caractères numériques sont trouvés, incrémente la valeur de +1 sinon concatène 1 au nom du fichier
    $filename = isset($num)? substr($filename,0,- strlen($matches[0])).($matches[0]+1) :$filename.'1';                  
// Reconstruction du nom de fichier avec son extension (si elle existe)
    $fichier = !empty($extension) ? $filename.'.'.$extension : $filename;              
    // Appel de la fonction pour re vérification avec le nouveau nom du fichier
    return Rename_fich($dossier,$fichier);  
          }
}
        $dest_fichier = basename($_FILES['up_photo']['name']);// cela donne le même résultat que la commande ==> $_FILES['up_photo']['name'];
        // $extension = strrchr(strtolower($dest_fichier), '.');
        // formatage nom fichier
        // enlever les accents
        $dest_fichier = strtr($dest_fichier,
        'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
        'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        // remplacer les caracteres autres que lettres, chiffres et point par _
        $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
        // on vérifie si le fichier n'est pas déjà présent :
        $chemin_fic = $dest_dossier . $dest_fichier;
        // Vérification de l'existence du fichier dans le répertoire et si besoin renommage du fichier
        $chemin_fic = Rename_fich($chemin_fic,$dest_fichier);

Le but est de renomé un fichier qui existe sur serveur.

Le souci c'est que ça ne fonctionne pas.

Le fichier est écrasé à chaque fois...

#5 Re : Forum Général PHP » requête de jointure et récupération de ligne » 21-05-2010 08:31:54

Bonjour, mon souci est un peu plus compliqué.

Lorsqu'il s'agit d'une simple requête, la méthode de Pierrot fonctionne bien, et je l'utilise d'ailleurs.

mias là, je suis dans un cas u pour un adhérent donné : id_adh, il peut avoir plusieurs photos qui lui sont associés.

Alors si je fais

echo $ligne['up_nom'], je vais obtenir uniquement le nom d'une photo. Et comment faire pour récupérer les autres photos...

#6 Forum Général PHP » requête de jointure et récupération de ligne » 21-05-2010 08:31:54

sam01
Réponses : 7

Bonjour à tous,

voilà j'effectue la requête de jointure suivante :

$sqla = sprintf("SELECT A.id_adh, A.id_vil, B.id_adh, B.id_log, B.description, B.type, C.id_adh, C.continent, C.pays, C.ville, D.id_log, D.up_nom, E.id_vil, E.id_pay, E.ville, F.id_pay, F.id_con, F.pays_fr, G.cont_fr
FROM flatforswap_adherent A
INNER JOIN flatforswap_logement B ON A.id_adh = B.id_adh
INNER JOIN flatforswap_destination C ON A.id_adh = C.id_adh
INNER JOIN flatforswap_photo D ON B.id_log = D.id_log
INNER JOIN flatforswap_ville E ON A.id_vil = E.id_vil
INNER JOIN flatforswap_pays F ON E.id_pay = F.id_pay
INNER JOIN flatforswap_continent G ON G.id_con = F.id_con
WHERE G.cont_fr= 'Afrique'");
 
$reqa = mysql_query($sqla) or die('Erreur SQL !<br>'.$sqla.'<br>'.mysql_error());
 
 
je sais que le mysqlnumrows me donne 20 lignes.

j'aimerais savoir comment récupérer la totalité des 20 lignes

while($dataa = mysql_fetch_assoc($reqa)){

après que dois-je faire pour avoir la totalité des lignes ?

#7 Forum Général PHP » redimensionner des photo dans mon script » 21-04-2010 19:25:49

sam01
Réponses : 2

Bonjour à tous,


j'ai le script suivant qui me permet de créer des photo miniature dans un répertoire spécifique, mais il me manque une option importante,

si l'image fait plus de 200 en largeur ou plus de 200pixels en longueur, j'aimerais redimensionner l'image d'origine (en gardant les proportion), en une image de maximum 200 sur 200.

Voic mon script :

  $dest_dossier = 'E:\EasyPHP1-8\www\images\photo\\'.$_SESSION['id_adh'].'\\';
  $dest_dossier_mini = 'E:\EasyPHP1-8\www\images\photo\\'.$_SESSION['id_adh'].'\\mini';


 if(isset($_FILES['up_photo']))
      {
 
     
      unset($erreur);
   
      $extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
   
   
    // on défini une variable $ratio qui vaudra 150 dans notre cas (150 pixels).
    // En fait, pour nos miniatures, nous allons respecter le ratio de l'image originale, mais nous allons forcer sa taille à 150 pixels,
    // soit en hauteur soit en largeur (tout dépend de l'orientation de notre image : paysage ou portrait).  
   
    $ratio = 50;  
    $ratiobis = 150;  
    // Création des dossiers
 
    if (!file_exists($dest_dossier))
    {
    mkdir ($dest_dossier, 0777);
    }
   
    if (!file_exists($dest_dossier_mini))
    {
    mkdir ($dest_dossier_mini, 0777);
    }
   
    // on compte d'abord le nombre d'image dans le répertoire
   
    $num_images = count_files($dest_dossier);
   
  if ($num_images < 10)
  {
   
   
     // on teste si le champ permettant de soumettre un fichier est vide ou non
    if (empty($_FILES['up_photo']['tmp_name']))
    {
      // si oui, on affiche un petit message d'erreur
      $erreur[] = 'Aucun fichier envoyé.';
    }
    else
    {
   

      // on examine le fichier uploadé en récupérant de nombreuses informations sur ce fichier
      //(je vous suggère de regarder la documentation de la fonction getimagesize pour de plus amples informations)
   
      $tableau = @getimagesize($_FILES['up_photo']['tmp_name']);
     
      if ($tableau == FALSE)
      {
        // si le fichier uploadé n'est pas une image, on efface le fichier uploadé et on affiche un petit message d'erreur
        unlink($_FILES['up_photo']['tmp_name']);
        $erreur[] = 'Votre fichier n\'est pas une image.';
         }
       else
       {
 
        // vérifications de l'extention
 
        if( !in_array( substr(strrchr($_FILES['up_photo']['name'], '.'), 1), $extensions_ok ) )
 
        {
          $erreur[] = 'Veuillez sélectionner un fichier de type png, gif ,jpg ou jpeg !';
        }
 
          elseif( file_exists($_FILES['up_photo']['tmp_name'])
 
          and filesize($_FILES['up_photo']['tmp_name']) > $max_size)
 
        {
          $erreur[] = 'Votre fichier doit faire moins de 500Ko !';
        }
   
        // on détremine la taille de la photo
   
        $up_taille = $_FILES['up_photo']['size'];
       
        $dest_fichier = basename($_FILES['up_photo']['name']);// cela donne le même résultat que la commande ==> $_FILES['up_photo']['name'];
       
        // si on a déjà un fichier qui porte le même nom que le fichier que l'on tente d'uploader, on modifie le nom du fichier que l'on upload
   
        if (is_file($dest_dossier .$_FILES['up_photo']['name']))
        {
            // echo 'dest_fichier = '.$dest_fichier;
          $dest_fichier = '_'.$_FILES['up_photo']['name'];
            // echo 'dest_fichier = '.$dest_fichier;
        }
       
       
        // formatage nom fichier
        // enlever les accents

        $dest_fichier = strtr($dest_fichier,

        'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
        'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
 
        // remplacer les caracteres autres que lettres, chiffres et point par _
 
        $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
       
     
   
        // on vérifie si le fichier n'est pas déjà présent :
   
        $chemin_fic = $dest_dossier . $dest_fichier;
     
     
        /*if (file_exists($chemin_fic))
        {
          $dest_fichier = 'DUP'.$dest_fichier;
          echo 'dest_fichier = '.$dest_fichier;
        }*/

        // si l'image n'est ni un jpeg, ni un png, on supprime  le fichier uploadé et on affiche le message d'erreur
         
        if (!($tableau[2] == 2 || $tableau[2] == 3))
        {
           unlink($_FILES['up_photo']['tmp_name']);
           $erreur[] = 'Votre image est d\'un format non supporté. Les formats supportés sont uniquement jpeg et png.';
        }
       
      }
    }
  }
  else
  {
    $erreur[] = 'Vous ne pouvez pas charger plus de 10 photos';
  }
 
      // copie du fichier
 
      if(!isset($erreur))
 
      {
 
      // copie du fichier
 
      if (move_uploaded_file($_FILES['up_photo']['tmp_name'], $dest_dossier . $dest_fichier)) // à ce moment on met le fichier sur le serveur
      {
       
        // On définit la taille maximum du fichier
        // On sépare largeur et hauteur pour faciliter la maintenance
        $max_haut = 200;
        $max_larg = 200;
        // Et on m'enlève ces @ plus dangereux qu'autre chose !!!
        // $tableau = getimagesize($_FILES['up_photo']['tmp_name']);
        $largeur = $tableau[0];
        $hauteur = $tableau[1];
       
        if($largeur > 200 or $hauteur > 200){
        // On calcule le ratio à appliquer. On peut enlever le 1 si on veut agrandir les petites images.
        // Désolé, j'utilise la méthode du ratio <img src="./images/smilies/icon_wink.gif" alt=";-)" title="Wink" />
        $ratiobis = 200;}
        else{
        $ratiobis = 100;}
       
        // Creation de l'image miniature
       
         // si notre image est de type jpeg
        if ($tableau[2] == 2)
        {
          // on crée une image à partir de notre grande image à l'aide de la librairie GD
          $src = imagecreatefromjpeg($dest_dossier.'/'.$dest_fichier);
          // on teste si notre image est de type paysage ou portrait
          if ($tableau[0] > $tableau[1])
          {
            $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
            imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
           
            $im_gd = imagecreatetruecolor(round(($ratiobis/$tableau[1])*$tableau[0]), $ratiobis);
            imagecopyresampled($im_gd, $src, 0, 0, 0, 0, round(($ratiobis/$tableau[1])*$tableau[0]), $ratiobis, $tableau[0], $tableau[1]);
          }
          else
          {
            $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
            imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
           
            $im_gd = imagecreatetruecolor($ratiobis, round(($ratiobis/$tableau[0])*$tableau[1]));
            imagecopyresampled($im_gd, $src, 0, 0, 0, 0, $ratiobis, round($tableau[1]*($ratiobis/$tableau[0])), $tableau[0], $tableau[1]);
          }
          // on copie notre fichier généré dans le répertoire des miniatures
          imagejpeg ($im, $dest_dossier_mini.'/'.$dest_fichier);
         
          imagejpeg ($im_gd, $dest_dossier.'/'.$dest_fichier);
        }
       
        if ($tableau[2] == 3)
        {
          $src = imagecreatefrompng($dir.'/'.$file_upload);
          if ($tableau[0] > $tableau[1])
          {
            $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
            imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
          }
          else
          {
            $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
            imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
          }
          imagepng ($im, $dir_mini.'/'.$file_upload);
        }

Pied de page des forums

Propulsé par FluxBB