Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/08/2011, 15h39   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 149
Points : 39
Points : 39
Envoyer un message via MSN à Kuchiki Byakuya
Par défaut Ecriture fichier droits ?

bonjour à tous, je suis entrain de créer un système d'authentification par fichiers ( histoire de savoir le faire "à l'ancienne" sans bdd ).
J'ai sans soucis réussit à faire l'inscription,(création d'un dossier à son nom contenant un fichier infos.txt. ce fichier contient ceci : nom_utilisateur/hash_du_mdp

Voici le script que j'utilise pour créer le dossier et le fichier :
Code :
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
<?php
session_start();
extract($_POST);
	if(isset($login) && isset($password))
	{
		if($password == "")
		{
			header("location:http://www2.ras.fr/pied-de-page/telechargement/");
			exit;
		}
		if(!is_dir("../download/$login"))
		{
			if (!mkdir("../download/$login", 777, true))
			{
				die('Echec lors de la cr&eacute;ation des r&eacute;pertoires...');
			}
			if(!$fp=fopen("../download/$login/infos.txt","w"))
				die('Echec lors de la cr&eacute;ation du fichier...');
			else
			{
				if(!fputs($fp, $login."/"))
					echo'File wrinting error';
				else
					echo'inscription r&eacute;ussie. <a href="/pied-de-page/telechargement/"> Cliquez ici</a> pour acc&eacute;der aux t&eacute;l&eacute;chargement;';
				fputs($fp,hash("sha256",$password));
				fclose($fp);
				$_SESSION['User'] = $login;
			}
		}
		else
		{
			if($fp=fopen("../download/$login/infos.txt","r"))
			{
				$password = hash("sha256",$password);
				$acces = fread($fp,"1000");
				$acc = strchr($acces,"/");
				$acc = substr($acc,1,64);//ici le 64 donne le nb de caractère de la clé
				if($password == $acc)
				{
					$_SESSION['User'] = $login;
					header("location:http://www2.ras.fr/pied-de-page/telechargement/");
				}
				else
					echo'Bad password <a href="/pied-de-page/telechargement/">Cliquez ici</a> pour revenir au t&eacute;l&eacute;chargement'.$password.' '.$acc;
			}
			else
				echo "erreur d'ouverture du fichier";
		}
	}
	else
		echo'Vous devez rentrer 2 fois le même mot de passe.';
 
 
 
?>
Une fois connecté, on peut modifier son profil. Je veux juste permettre la modification du mot de passe j'ai donc fait ça :
Code :
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
<?php
session_start();
define("SITE","http://www2.ras.fr/");
if(!isset($_SESSION['User']))
{
	header("location:http://www2.ras.fr");
}
else
{
	if(!isset($_POST['pcw']))
	{
		echo'<form method="POST" action="http://www2.ras.fr/wp-content/script-additionnels/profil.php"><p> Mot de passe : <input type="text" name="pcw" style="width:150px;"/></p><p><input type="submit" name="Submit" value="Enregistrer"</p></form>';
	}	
	else
	{
		$pcw = $_POST['pcw'];
		$login = $_SESSION['User'];
		echo $login.' ';
		if(!is_dir("/wp-content/download/$login/"))
		{
 
			if(!$fp=fopen("../wp-content/download/$login/infos.txt","w"))
				die(' Echec lors de l\'ouverture du fichier...');
			else
			{
				if(!fputs($fp, $login."/"))
					echo'File wrinting error';
				else
					echo'inscription r&eacute;ussie. <a href="/pied-de-page/telechargement/"> Cliquez ici</a> pour acc&eacute;der aux t&eacute;l&eacute;chargement;';
				fputs($fp,hash("sha256",$pcw));
				fclose($fp);
			 }
		}
		else
			echo'utilisateur introuvable';
	}
}
	?>
Il m'est impossible de comprendre pourquoi mais le die de la ligne 23 s'active à chaque fois : je n'arrive pas à ouvrir le fichier. Pourtant, si on regarde le code d'au dessus, le dossier a été créé avec les droits 777 et l'url est la même : je ne comprends pas
Kuchiki Byakuya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 15h47   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 793
Points : 35 793
Citation:
Envoyé par Kuchiki Byakuya
et l'url est la même
Ah... ça doit être mes yeux alors...
Code :
is_dir("/wp-content/download/$login/")
Code :
$fp=fopen("../wp-content/download/$login/infos.txt","w")
parce que je vois ".." dans l'une et pas dans l'autre...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/08/2011, 15h54   #3
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 149
Points : 39
Points : 39
Envoyer un message via MSN à Kuchiki Byakuya
je me suis mal exprimé on dirait : regarde cette ligne dans les deux morceaux de code, c'est exactement la même.
Code :
1
2
if(!$fp=fopen("../download/$login/infos.txt","w"))
				die('Echec lors de la cr&eacute;ation du fichier...');
Je suis d'accord que le if ne cherche pas sur la même url mais le fopen n'a pas l'air d'aimer les adresses absolues comme celle que j'ai mis dans is_dir().
j'ai testé avec le /wp-content etc... ds le fopen mais il ne m'aide pas plus. En plus vu que je ne fais pas le site en local ( obligation de maitre de stage ) je n'ai aucun message d'erreur pour me dire où est le soucis.

EDIT : tu avais raison et j'avais tort, je suis juste fatigué. désolé du dérangement...
Kuchiki Byakuya est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h41.


 
 
 
 
Partenaires

Hébergement Web