PHP variable de session et url d'upload
JEJEOS
Messages postés
50
Statut
Membre
-
yoshiro Messages postés 532 Statut Membre -
yoshiro Messages postés 532 Statut Membre -
Bonjour,
Dans mon site, j'ai une partie, ou l'utilisateur se logue pour pouvoir uploader des photos.
A l'inscription, un dossier avec son pseudo se crée, et lorsqu'il uploade des photos, elles vont dans ce dossier.
Seulement voila, j'ai un petit problème pour que les photos aillent dans ce dossier précis.
Je démarre ma session, et ensuite, dans le chemin d'upload des images( $uploadDir), je met le pseudo.
Seulement voila, les images ne vont pas dans ce dossier, mais restent dans le dossier supérieur (ou se trouvent les pages php).
Voici le code d'ouverture et de vérification de la session, ainsi que celui de l'upload des images :
Le problème se situe visiblement à ce niveau :
Mais je ne sait pas quoi faire, ...
Merci de me répondre.
Jérome
Dans mon site, j'ai une partie, ou l'utilisateur se logue pour pouvoir uploader des photos.
A l'inscription, un dossier avec son pseudo se crée, et lorsqu'il uploade des photos, elles vont dans ce dossier.
Seulement voila, j'ai un petit problème pour que les photos aillent dans ce dossier précis.
Je démarre ma session, et ensuite, dans le chemin d'upload des images( $uploadDir), je met le pseudo.
Seulement voila, les images ne vont pas dans ce dossier, mais restent dans le dossier supérieur (ou se trouvent les pages php).
Voici le code d'ouverture et de vérification de la session, ainsi que celui de l'upload des images :
<?php
$login=$_SESSION['login'];
session_start();
if (isset($_FILES['Filedata']['name'])) {
$uploadDir = './'.$login.'/';
$uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
}
if (!isset($login)) {
header ('Location: index.php');
exit();
}
?>
Le problème se situe visiblement à ce niveau :
$uploadDir = './'.$login.'/';
Mais je ne sait pas quoi faire, ...
Merci de me répondre.
Jérome
A voir également:
- PHP variable de session et url d'upload
- Url - Guide
- Upload video youtube - Télécharger - Diffusion
- Easy php - Télécharger - Divers Web & Internet
- Www.yahoomail.com ouverture de session ✓ - Forum Yahoo mail
- The requested url was rejected. please consult with your administrator. ✓ - Forum Réseaux sociaux
12 réponses
Bonjour
J'ai plutôt l'impression que le problème est dans le $_SESSION['login']. Y a-t-il bien un session_start() au début du script ?
As-tu fait un echo $uploadDir; pour vérifier s'il a bien la valeur que tu attends.
J'ai plutôt l'impression que le problème est dans le $_SESSION['login']. Y a-t-il bien un session_start() au début du script ?
As-tu fait un echo $uploadDir; pour vérifier s'il a bien la valeur que tu attends.
Bonjour
Merci pour votre réponse !
Oui, j'ai bien fait un echo $uploadDir et j'obtiens la valeur souhaité.
D'ailleurs lorsque je met le nom du dossier dans $uploadDir (et pas une variable), le fichier va dans le dossier indiqué !
C'est a ne rien y comprendre !
Merci pour votre réponse !
Oui, j'ai bien fait un echo $uploadDir et j'obtiens la valeur souhaité.
D'ailleurs lorsque je met le nom du dossier dans $uploadDir (et pas une variable), le fichier va dans le dossier indiqué !
C'est a ne rien y comprendre !
Pardon, je n'avais pas remarqué le session_start().
Mais il est mal placé ! Si le $login=$_SESSION['login']; est AVANT le session_start, il ne peut pas marcher : tu ne peux pas récupérer une variable de session avant d'avoir démarré les sessions !
J'ai beaucoup, beaucoup de mal à croire que le echo $uploadDir te sorte une bonne valeur dans ces conditions.
Mais il est mal placé ! Si le $login=$_SESSION['login']; est AVANT le session_start, il ne peut pas marcher : tu ne peux pas récupérer une variable de session avant d'avoir démarré les sessions !
J'ai beaucoup, beaucoup de mal à croire que le echo $uploadDir te sorte une bonne valeur dans ces conditions.
En fait, effectivement pour avoir la bonne valeur de l'echo j'ai du placer session_start() au dessus de $login=$_SESSION['login'];
Mais sa ne marche toujours pas. (l'upload ne se fait pas dans le dossier souhaité, sauf a le rentré manuellement, c'est à dire mettre $uploadDir = './dossier/'; par exemple).
Voici d'ailleur le "nouveau" code.
Mais sa ne marche toujours pas. (l'upload ne se fait pas dans le dossier souhaité, sauf a le rentré manuellement, c'est à dire mettre $uploadDir = './dossier/'; par exemple).
Voici d'ailleur le "nouveau" code.
<?php
session_start();
$login=$_SESSION['login'];
$uploadDir = './'.$login.'/';
if (isset($_FILES['Filedata']['name'])) {
$uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
}
if (!isset($login)) {
header ('Location: index.php');
exit();
}
?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici le code complet de ma page, avec l'echo :
<?php
session_start();
$login=$_SESSION['login'];
$uploadDir = './'.$login.'/';
if (isset($_FILES['Filedata']['name'])) {
$uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
move_uploaded_file($_FILES['Filedata']['tmp_name'], $uploadFile);
}
if (!isset($login)) {
header ('Location: index.php');
exit();
}
?>
<html>
<head>
<title>Espace membre</title>
</head>
<body>
Bienvenue <?php echo htmlentities(trim($login)); ?> !<br />
<a href="deconnexion.php">Déconnexion</a> <br>
<br>
<?php echo $uploadFile; ?>
</body>
</html>
ton <?php echo $uploadFile; ?> n'a pas grand intérêt là où il est...
il faut le mettre immédiatement après la ligne $uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
D'autre part, je répète ma question du départ : y a-t-il bien la bonne valeur dans $uploadDir ? (là encore, avec un echo juste après le ligne $uploadDir=...). Car tous les indices vont dans le même sens : ton $uploadDir ne serait pas initialisé, sans doute parce que $_SESSION['login'] est vide.
il faut le mettre immédiatement après la ligne $uploadFile = $uploadDir . basename($_FILES['Filedata']['name']);
D'autre part, je répète ma question du départ : y a-t-il bien la bonne valeur dans $uploadDir ? (là encore, avec un echo juste après le ligne $uploadDir=...). Car tous les indices vont dans le même sens : ton $uploadDir ne serait pas initialisé, sans doute parce que $_SESSION['login'] est vide.