Posez votre question Signaler

Problème mkdir [Résolu]

cdti 763Messages postés 20 novembre 2008Date d'inscription 17 février 2011Dernière intervention - Dernière réponse le 25 févr. 2009 à 10:29
Bonjour,
J'ai un formulaire qui recupère les données sans sousis dans des variables grace a la méthode post.
Le contenu de ses variables sont affichées sur une page qui récupére les données et le soucis intervient au niveau de la commande mkdir qui n'interprete pas la variable.
Elle crée un dossier $login au lieu de créer un dossier qui contient le contenu de la variable.
De plus quand on affiche la page on obtient les messages d'erreurs suivant :
Warnig:mkdir() [function.mkdir]:File exists in /..............
Warnig:mkdir() [function.mkdir]:File exists in /..............
Warnig:mkdir() [function.mkdir]:File exists in /..............
Warnig:mkdir() [function.mkdir]:File exists in /..............
Malgré cela les dossier sont quand meme crées.
code php :
mkdir ('stid/',0777);
mkdir ('stid/$login/' , 0777);
mkdir ('stid/$login/P/' , 0777);
mkdir ('stid/$login/K' , 0777);
Merci d'avance pour vos réponces.
Lire la suite 

Problème mkdir »

8 réponses
Réponse
+1
moins plus
fais un copier/coller du code si dessous , efface le fichier que tu a deja , crée un nouveu fichier , renomme le , et colle y le code copié cidessous :

<?php
if (isset($_POST['login']) AND (isset($_POST['psw']))) // On vérifie que les variable existent
{
session_start();

//On stocke ces mêmes valeurs dans des variables de SESSION
$_SESSION['login']=$login;

//On stocke les valeurs entrées dans le formulaire à l'interieur de variable $login et $pwd
$login = $_POST['login'];
$psw = $_POST['psw'];
}
?>
<html>
<head>
<title>STID.PERP-UNIV Carcassonne</title>
</head>
<body>

<form action=$PHP_SELF method="post">
<h3>Login</h3>
<input type="text autocomplete='off'" name="login" /><br />
<h3>Mot de passe</h3>
<input type="password autocomplete='off'" name="psw" /><br />
<input type="submit" value="Validez" />
</form>

<?php

$plop = "stid/".$login ;
@mkdir('stid/', 0777);
@mkdir("stid/$login/", 0777);
@mkdir("stid/$login/P/", 0777);
@mkdir("stid/$login/K/", 0777);
?>
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

vire les apostrophes et met des guillemets :P

Tchou.
cdti - 24 févr. 2009 à 16:31
mkdir ("stid/",0777);
mkdir ("stid/$login/" , 0777);
mkdir ("stid/$login/P/" , 0777);
mkdir ("stid/$login/K" , 0777);

marche toujours po ...
Ajouter un commentaire
Réponse
+0
moins plus
J'ai fais un copier coller de ton code. Il marche parfaitement. Tu utilises quoi pour developper ? $login est-il rempli ?

<?php

$login = "test";

mkdir("stid/",0777);
mkdir("stid/$login/" , 0777);
mkdir("stid/$login/P/" , 0777);
mkdir("stid/$login/K" , 0777); 

?>


Ce code fonctionne.
cdti - 24 févr. 2009 à 16:57
<?php
if (isset($_POST['login']) AND (isset($_POST['psw']))) // On vérifie que les variable existent
{
session_start();

//On stocke ces mêmes valeurs dans des variables de SESSION
$_SESSION['login']=$login;

//On stocke les valeurs entrées dans le formulaire à l'interieur de variable $login et $pwd
$login = $_POST['login'];
$psw = $_POST['psw'];
}
?>
<html>
<head>
<title>STID.PERP-UNIV Carcassonne</title>
</head>
<body>

<form action="recup_donnees.php" method="post">
<h3>Login</h3>
<input type="text autocomplete='off'" name="login" /><br />
<h3>Mot de passe</h3>
<input type="password autocomplete='off'" name="psw" /><br />
<input type="submit" value="Validez" />
</form>

<?php
$login = $_POST['login'];
$psw = $_POST['psw'];
@mkdir('stid/', 0777);
@mkdir('stid/$login/', 0777);
@mkdir('stid/$login/P/', 0777);
@mkdir('stid/$login/K/', 0777);
?>

Voila mon code.
?>

vOILÀ MON CODE
Ajouter un commentaire
Réponse
+0
moins plus
Je sais pas comment tu fais, mais ce code fonctionne chez moi :/ (en enlevant les apostrophes et en mettant des guillemets à la place)

Bon, quelques petits trucs à revoir quand même :

//On stocke ces mêmes valeurs dans des variables de SESSION
$_SESSION['login']=$login;


Déjà cette ligne est fausse. Tu remplis $_SESSION['login'] avec du vent ... Il faut mettre $_POST['login'] à la place de $login. Ou alors définir $login avant cette ligne.

Mais bon, le probléme ne vient pas de là. Je vois que tu as toujours tes apostrophes dans le mkdir. Tu es sûr d'avoir modifié le script ?

EDIT: je suppose que cette page s'appelle recup_donnees.php Sinon je vois vraiment pas :)
Ajouter un commentaire
Réponse
+0
moins plus
remplace $PHP_SELF par <?php $SERVER['PHP_SELF'] ?> et efface la ligne
$plop = "stid/".$login ;

c'est ce qui arrive quand on relis pas Nos Posts ^^ !!
cdti - 25 févr. 2009 à 10:29
Problème résolu ^.^
Merci a tous pour votre aide.
Ajouter un commentaire
Ce document intitulé « Problème mkdir » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Windows 8 - À quoi s'attendre ?