par
sawlo » 17 juin 2014, 23:06
Bonjour à tous,
Je vous explique brièvement mon problème :
- mes utilisateurs sont autorisés à uploader des fichiers sur mon site (cette partie est terminée)
-j'aimerais enregistrer le login de l'uploader dans ma table "critique"(partie qui pose problème). Le login se trouve dans une table différente (users) et je me demandais s'il était possible de passer par les variables "session" ?
Voici le code (notez les points d'interrogations lorsqu'il s'agit de "uploader"

:
<?php
session_start();
if(!isset($_SESSION['login']))
{
echo 'Vous n\'êtes pas connecté au site. Vous ne pouvez donc pas venir sur cette page. <a href="index.php"> Se connecter </a><br /> <a href="index2.php"> Page d\'accueil </a>';
exit;
}
?>
<?php
if(isset($_POST['titre'])&& isset($_POST['auteur']) && isset($_POST['niveau']) && isset($_POST['critique']) && isset ($_FILES['photo'])) {
if(isset($_FILES['photo']) && $_FILES['photo']['error']==0) { // Inscription de la photo uploadé dans le dossier bouquin
move_uploaded_file($_FILES['photo']['tmp_name'],
'cours/'.basename($_FILES['photo']['name']));
echo 'L\'envoi a bien été effectué';
}
try{ // Connexion à la BDD
$bdd=new PDO('mysql:host=...;dbname=...', 'root','...');
// Options de connection
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
}
catch(Exception $e){
die ('Erreur:'.$e->getMessage());
}
// Insertion des données envoyées par l'internaute grâce à une requête préparée
$stockage='cours/'.$_FILES['photo']['name'].'';
$insertion=$bdd->prepare('INSERT INTO critique(titre, auteur, niveau, critique, date_upload, uploader, photo) VALUES (:titre, :auteur, :niveau, :critique, NOW(), ?????,:photo)');
$insertion->execute(array(
'titre' => $_POST['titre'],
'auteur' => $_POST['auteur'],
'niveau' => $_POST['niveau'],
'critique' => $_POST['critique'],
'uploader' => $_POST['uploader'], ?????
'photo' => $stockage
));
if($insertion==true) {
echo '<div class="confirm_upload"> Les données ont bien été enregistrées</p>';
}
else {
echo 'Erreur dans l\'enregistrement des données </div>';
}
$insertion->closeCursor(); // déconnexion
}
?>
Bonjour à tous,
Je vous explique brièvement mon problème :
- mes utilisateurs sont autorisés à uploader des fichiers sur mon site (cette partie est terminée)
-j'aimerais enregistrer le login de l'uploader dans ma table "critique"(partie qui pose problème). Le login se trouve dans une table différente (users) et je me demandais s'il était possible de passer par les variables "session" ?
Voici le code (notez les points d'interrogations lorsqu'il s'agit de "uploader" ;) :
[php]<?php
session_start();
if(!isset($_SESSION['login']))
{
echo 'Vous n\'êtes pas connecté au site. Vous ne pouvez donc pas venir sur cette page. <a href="index.php"> Se connecter </a><br /> <a href="index2.php"> Page d\'accueil </a>';
exit;
}
?>
<?php
if(isset($_POST['titre'])&& isset($_POST['auteur']) && isset($_POST['niveau']) && isset($_POST['critique']) && isset ($_FILES['photo'])) {
if(isset($_FILES['photo']) && $_FILES['photo']['error']==0) { // Inscription de la photo uploadé dans le dossier bouquin
move_uploaded_file($_FILES['photo']['tmp_name'],
'cours/'.basename($_FILES['photo']['name']));
echo 'L\'envoi a bien été effectué';
}
try{ // Connexion à la BDD
$bdd=new PDO('mysql:host=...;dbname=...', 'root','...');
// Options de connection
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
}
catch(Exception $e){
die ('Erreur:'.$e->getMessage());
}
// Insertion des données envoyées par l'internaute grâce à une requête préparée
$stockage='cours/'.$_FILES['photo']['name'].'';
$insertion=$bdd->prepare('INSERT INTO critique(titre, auteur, niveau, critique, date_upload, uploader, photo) VALUES (:titre, :auteur, :niveau, :critique, NOW(), ?????,:photo)');
$insertion->execute(array(
'titre' => $_POST['titre'],
'auteur' => $_POST['auteur'],
'niveau' => $_POST['niveau'],
'critique' => $_POST['critique'],
'uploader' => $_POST['uploader'], ?????
'photo' => $stockage
));
if($insertion==true) {
echo '<div class="confirm_upload"> Les données ont bien été enregistrées</p>';
}
else {
echo 'Erreur dans l\'enregistrement des données </div>';
}
$insertion->closeCursor(); // déconnexion
}
?>[/php]