Je développe un site en ce moment et j'avais besoin de votre aide Je cherche un solution a un problème, je vous explique
J'ai un espace membre contenant des informations personnelles, un formulaire d'envoi de fichier et la liste des fichier d'un dossier.
Voici le code de espace membre ;
<?php
session_start();
$bdd = new PDO('mysql:host=localhost;dbname=id5716118_membre', 'id5716118_clement', 'samuelmai');
if(isset($_GET['id']) AND $_GET['id'] > 0) {
$getid = intval($_GET['id']);
$requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
$requser->execute(array($getid));
$userinfo = $requser->fetch();
?>
<html>
<head>
<title>Profil</title>
<meta charset="utf-8">
</head>
<body>
<div align="center">
<h2>Profil de <?php echo $userinfo['pseudo']; ?></h2>
<br /><br />
Pseudo = <?php echo $userinfo['pseudo']; ?>
<br />
Mail = <?php echo $userinfo['mail']; ?>
<br />
<?php
if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id']) {
?>
<br />
<a href="logout.php">Se déconnecter</a><br />
<?php
}
?>
<form method="POST" action="uploads.php" enctype="multipart/form-data">
Fichier : <input type="file" name="son">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
<?php
$nb_fichier = 0;
echo '<ul>';
?>
<?php
if($dossier = opendir('./upload'))
{
?>
<?php
while(false !== ($fichier = readdir($dossier)))
{
?>
<?php
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{
?>
<?php
$nb_fichier++; // On incrémente le compteur de 1
echo '<li><a href="./mondossier/' . $fichier . '">' . $fichier . '</a></li>';
} // On ferme le if (qui permet de ne pas afficher index.php, etc.)
} // On termine la boucle
?>
<?php
echo '</ul><br />';
echo 'Il y a <strong>' . $nb_fichier .'</strong> fichier(s) dans le dossier';
closedir($dossier);
}
else
echo 'Le dossier n\' a pas pu être ouvert';
?>
</div>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(window).load(function() {
$(".loader").fadeOut("1000");
})
</script>
</body>
</html>
<?php
}
?>
Et celui du fichier renvoyer par le formulaire qui s'occupe de la versification du fichier envoyer :
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['son']['name']);
$taille_maxi = 10000000;
$taille = filesize($_FILES['son']['tmp_name']);
$extensions = array('.mp3', '.waw', '.vlc', '.jpeg');
$extension = strrchr($_FILES['son']['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['son']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
?>
J'aimerai donc que chaque fichier envoyer par un utilisateur dans le dossier upload soit marquer de id de utilisateur et affichés dans un table J'aimerai donc par la suite, que les fichier affichés dans la liste de espace membre soit que ce de utilisateur.
En gros, tu voudrais pouvoir connaître quel utilisateur a envoyé quel fichier ?
Il va te falloir une table SQL dans laquelle tu auras sensiblement ces champs :
ID (auto_increment, unique);
ID du membre
Nom du fichier
Au moment où tu appelles la fonction move_uploaded_file(), tu appelles aussi une requête SQL qui va venir insérer une ligne dans cette table avec les informations voulus. Inspire-toi de ton premier fichier pour récupérer les informations sur le membre présentement connecté. Ensuite, tu auras tout ce qu'il faut pour faire ce que tu souhaites faire !
N'hésite pas si je ne suis pas clair dans mes explications !
En gros, tu voudrais pouvoir connaître quel utilisateur a envoyé quel fichier ?
Il va te falloir une table SQL dans laquelle tu auras sensiblement ces champs :
ID (auto_increment, unique);
ID du membre
Nom du fichier
Au moment où tu appelles la fonction move_uploaded_file(), tu appelles aussi une requête SQL qui va venir insérer une ligne dans cette table avec les informations voulus. Inspire-toi de ton premier fichier pour récupérer les informations sur le membre présentement connecté. Ensuite, tu auras tout ce qu'il faut pour faire ce que tu souhaites faire !
N'hésite pas si je ne suis pas clair dans mes explications !
Merci de ta réponse, j'aimerai par la suite afficher (dans la liste sur la photo avec le teste.mp3) les fichier des utilisateurs en questions. Je m'explique:
Sur la photo envoyer plus haut, on se trouve sur l'espace membre de l'utilisateur. Je voudrai donc afficher que les fichiers envoyer par cette utilisateur.
Merci !
- Edité par SamuelMain 16 août 2018 à 20:20:55
Formulaire et base de donnée
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Développeur PHP | https://www.phptuto.com | https://www.minnesbook.com