Bonjour à tous,
Ceci est mon premier post sur le forum.
Je rencontre un petit problème sur mon projet personnel et j'aurais besoin d'un coup de main si possible pour le régler.
Je suis en train de réaliser une petite galerie d'image.
Je vous explique, j'ai trois page php
- index.php (un formulaire d'upload infos + photo)
- upload.php (qui traite les infos du formulaire et qui insert les infos dans une bdd ainsi que la photo du formulaire dans un dossier)
- galerie.php (qui affiche toutes les images du dossier avec le nom et un lien a href pour chaque image)
Voila ce qui me pose problème :
Je souhaite crée deux nouvelle pages qui serait capable de m'afficher les photos par 'date' et une autre page par 'user' en allant chercher l'image dans le dossier + les infos de l'image dans la bdd.
Mais la je sèche, si quelqu'un pourrait m'éclairer je peux mettre a disposition le code si vous voulez.
Et désolé si je n'ai pas posté le message au bonne endroit (mais je ne pense pas mettre trompé )
BDD:famille - > table upload:
TABLE upload:
index.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 num nom description date heure user
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <body> <h1>Envoyer une image</h1> <p>Nous sommes le : <?php echo date("d/m/Y") ?> il est <?php echo date("H:i"); ?></p> <form enctype="multipart/form-data" action="upload.php" method="post"> <table> <tr> <td><label for="nom">User : </label></td> <td><input type="text" name="user" /><br /></td> </tr> <tr> <td><label for="nom">Nom de la photo : </label></td> <td><input type="text" name="nom" /><br /></td> </tr> <tr> <td><label for="description">Description : </label></td> <td><textarea name="description" id="description" cols="40" rows="4"></textarea></td> </tr> <tr> <input type="hidden" name="MAX_FILE_SIZE" value="10000000"> <td><label for="fichier">Fichier :</label></td> <td><input type="file" name="avatar"></td> </tr> <tr> <td><label for="validation">Valider : </label></td> <td><input type="submit" name="envoyer" value="Envoyer" /></td> <td><input type="hidden" name="date" value="<?php echo date("Y/m/d");?>"></td> <td><input type="hidden" name="heure" value="<?php echo date("H:i");?>"></td> </tr> </table> </form> <br/> <a href='galerie.php'> Vers la galerie </a> </body> </html>
upload.php:
galerie.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <h1> Résultat de l'insertion </h1> <?php $nom= $_POST['nom']; $description= $_POST['description']; $date= $_POST['date']; $heure= $_POST['heure']; $user= $_POST['user']; echo "Le nom de la photo est [$nom]" ; echo "<br/>"; echo "La description de la photo est [$description]" ; echo "<br/>"; echo "Photo ajouté le [$date] à [$heure]" ; echo "Photo ajouté par [$user]" ; $dossier = 'upload/'; $fichier = basename($_FILES['avatar']['name']); $taille_maxi = 1000000000; $taille = filesize($_FILES['avatar']['tmp_name']); $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.JPG'); $extension = strrchr($_FILES['avatar']['name'], '.'); //Début des vérifications de sécurité... if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau { $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...'; } if($taille>$taille_maxi) { $erreur = 'Le fichier est trop gros...'; } if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload { //On formate le nom du fichier ici... $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... { // on se connecte à notre base $base = mysql_connect ('localhost', 'root', ''); mysql_select_db ('famille', $base) ; // lancement de la requete $sql = 'INSERT INTO upload VALUES ("", "'.$nom.'", "'.$fichier.'", "'.$description.'", "'.$date.'","'.$heure.'","'.$user.'")'; // on insere le tuple (mysql_query) et au cas où, on écrira un petit message d'erreur si la requête ne se passe pas bien (or die) mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); // on ferme la connexion à la base mysql_close(); echo "<br/><br/>"; echo '<font color="red">Upload de la photo effectué avec succès !</font>'; } else //Sinon (la fonction renvoie FALSE). { echo '<font color="red">Echec de l\'upload !</font>'; } } else { echo $erreur; } ?> <br/><br/> <a href='galerie.php'> Vers la galerie </a>
J'ai un peux avancé,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <h1> Galerie d'images </h1> <h4> Toutes les photos du dossier upload: </h4> <?php $adresse="./upload/"; $dossier=Opendir($adresse); while ($Fichier = readdir($dossier)) { if ($Fichier != "." && $Fichier != "..") // Filtre anti-point ! { echo ''.$Fichier.'<br>'; echo '<a href='.$adresse.$Fichier.' target="_self"><img src="'.$adresse.$Fichier.'" WIDTH=100 HEIGHT=100 BORDER=1/></a>'; echo '<br/>'; echo '<br/>'; } } closedir($dossier); ?> <a href='index.php'> Vers le formulaire </a>
Voila la nouvelle page qui me permet d'afficher les photos par USER
Elle m'affiche bien les infos de la table dans la bdd ou l'user est "jacques" par exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <h1> Galerie d'images </h1> <h4> Photos regroupé par famille: </h4> <?php mysql_connect("localhost", "root", ""); // Connexion à la base de données mysql_select_db("famille"); // Sélection de la base de données $reponse = mysql_query ("SELECT * FROM UPLOAD WHERE user = 'Jacques'"); // Requête SQL $adresse="./upload/"; $dossier=Opendir($adresse); while ($donnees = mysql_fetch_array($reponse)) // On boucle pour afficher toutes les données et on met toutes données dans un tableau { ?> <?php echo $donnees['nomfichier'];?> <?php echo '<br/>';?> <?php } mysql_close(); // On oubli pas de déconnecter la base de données ?> <br/> <a href='galerie.php'> Vers la galerie </a> <br/>
Donc je récupère bien les noms des photos.
Mais quoi rajouter pour afficher les photos.
Partager