Problème d'affichage PHP
                                    
                        LowLil                    
                                    -
                                     
avion-f16 Messages postés 20367 Statut Contributeur -
        avion-f16 Messages postés 20367 Statut Contributeur -
        Salut a tous, 
J'ai un problème avec PHP, je fait un site web et j'ai un page d'administration ou j'ai un formulaire pour uploader des images, l'Upload se passe très bien, les images vont dans le répertoire image, mais ce que je voudrais c'est un script PHP, qui me permette d'afficher ces images sur une page, la plus récente en première.
Merci
            
            
                
            
                
    
    
    
        J'ai un problème avec PHP, je fait un site web et j'ai un page d'administration ou j'ai un formulaire pour uploader des images, l'Upload se passe très bien, les images vont dans le répertoire image, mais ce que je voudrais c'est un script PHP, qui me permette d'afficher ces images sur une page, la plus récente en première.
Merci
        A voir également:         
- Problème d'affichage PHP
- Affichage double ecran - Guide
- Easy php - Télécharger - Divers Web & Internet
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Problème affichage facebook ✓ - Forum Facebook
5 réponses
                        
                    Salut.
Je te propose de créer une table dans MySQL, nommée "images" et composée d'au minimum ces champs :
- id : TINYINT, INT, SMALLINT ou BITINT, selon les besoins, en unsigned, PRIMARY KEY et AUTO_INCREMENT ; Ce champ contiendra un ID unique à l'image
- fichier : TINYTEXT ou VARCHAR : contient le nom de l'image dans le dossier
- date : INT (si tu veux stocker un timestamp) ou DATE.
Tu peux ajouter d'autres champs comme :
- titre : TINYTEXT/VARCHAR
- description : TEXT
Pour afficher tes images par date, la plus récente en première :
Pour éviter les doublons, je te conseille de générer le nom de tes images lors de l'upload.
    
                Je te propose de créer une table dans MySQL, nommée "images" et composée d'au minimum ces champs :
- id : TINYINT, INT, SMALLINT ou BITINT, selon les besoins, en unsigned, PRIMARY KEY et AUTO_INCREMENT ; Ce champ contiendra un ID unique à l'image
- fichier : TINYTEXT ou VARCHAR : contient le nom de l'image dans le dossier
- date : INT (si tu veux stocker un timestamp) ou DATE.
Tu peux ajouter d'autres champs comme :
- titre : TINYTEXT/VARCHAR
- description : TEXT
Pour afficher tes images par date, la plus récente en première :
<?php
define('IMAGES_PATH', 'images/');
$bdd = new PDO('mysql:host=localhost;dbname=la_base','user','password');
$sql = 'SELECT * FROM images ORDER BY date DESC';
$req = $bdd->query($sql);
$req->setFetchMode(PDO::FETCH_OBJ);
while($image = $req->fetch()) {
    echo '<div class="image">';
    echo '<img src="'.IMAGES_PATH.$image->fichier.'" alt="Image" />';
    echo '</div>';
}
$req->closeCursor();
?>
Pour éviter les doublons, je te conseille de générer le nom de tes images lors de l'upload.
$pathinfo = pathinfo($_FILES['image']['name']); $extension = $pathinfo['extension']; $nom = uniqid(md5($_SERVER['REQUEST_TIME'])).'.'.$extension;
                        
                    Salut, merci de ta réponse, j'ai trouver le moyen de le faire sans MySQL, mais la les images s'affichent dans l'ordre d'ajout, comment y remédié ?
                
                
    
                
                        
                    Sans ton code, difficile de t'aider.
De plus, je ne vois pas comment tu fais sans base de données ou sans fichier texte/XML.
On peut récupérer la date de création d'un fichier, mais "date de création" != "date d'ajout".
    
                De plus, je ne vois pas comment tu fais sans base de données ou sans fichier texte/XML.
On peut récupérer la date de création d'un fichier, mais "date de création" != "date d'ajout".
                        
                    Voila le code d'affichage des mes images:
et le code d'upload:
Biensur je passe avant par un formulaire.
    
                <?php
$dir="image/";
$dossier=opendir($dir);
while($fichier=readdir($dossier)){
 
   $berk=array('.', '..');
    if(!in_array($fichier,$berk)){
	$lien=$dir.'/'.$fichier;
	
	if(file_exists($lien)){
	   
echo '<img src="'.$lien.'" alt=""  />
<br />';
  
          echo '<a href="'.$lien.'">'.substr($fichier,0,-4).'</a><br/>';
 
                             }
            
        }
  
  }
?>
et le code d'upload:
if( isset($_POST['upload']) ) // si formulaire soumis
{
    $content_dir = 'image/'; // dossier où sera déplacé le fichier
    $tmp_file = $_FILES['fichier']['tmp_name'];
    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }
    // on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];
    if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr
($type_file, 'gif') )
    {
        exit("Le fichier n'est pas une image");
    }
    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];
    if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
{
    exit("Nom de fichier non valide");
}    
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
    echo "Le fichier a bien été uploadé";
}
}
Biensur je passe avant par un formulaire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question