Page 1 sur 1

ce fichier ne s'ouvre pas

Posté : 12 nov. 2008, 14:18
par tounse
bonjour
<?php
if (false === ( $fp = fopen('.htpasswd', 'ab'))) {
echo 'erreur : impossible d\'ouvrir le fichier', "\n";
} else {
// + encodage du mot de passe
fprintf($fp, '%s:%s' . "\r\n", $_POST['user'], crypt($_POST['pwd'])); //"\r\n" pour retour à la ligne windows
fclose($fp);
echo 'succès: votre nouvel utilisateur est correctement enregistre', "\n";
}
?>
le fichier ne s'ouvre pas, il y a un warning :

Code : Tout sélectionner

failed to open stream: Permission denied
merci

Posté : 12 nov. 2008, 15:33
par Ryle
hello !

"failed to open stream" => PHP n'a pas réussi à ouvrir le fichier
"Permission denied" => PHP n'a pas les droits pour ouvrir le fichier

Yapuka :)

Posté : 12 nov. 2008, 17:03
par tounse
merci pour la traduction, mais encore ...

en effet php ne peux pas ouvrir le fichier, mais pour quel raison il est bien présent dans le même repertoire

et pourquoi n'a t il pas le droitr, il n'y a aucun htaccess

merci

Posté : 12 nov. 2008, 17:08
par albat
Il n'y a pas que le .htaccess qui peut gérer les droits sur un fichier (ou un dossier)
As-tu regardé le chmod de ton fichier ?

Posté : 12 nov. 2008, 17:21
par tounse
en effet, tout est en 777

ca avance maintenant :

Call to undefined function: fprintf()

le code est devenu :
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
    $login = $_POST['login'];
    $pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe

    echo 'Ligne qui sera copiée copier dans le .htpasswd :<br />' . $login . ':' . $pass_crypte;

if (false === ( $fp = fopen('.htpasswd', 'ab'))) {
echo 'erreur : impossible d\'ouvrir le fichier', "\n";
} else {
echo ' <br /><br />ouverture du fichier, <br />';
// + encodage du mot de passe
fprintf($fp, '%s:%s' . "\r\n", $login, $pass_crypte); //"\r\n" pour retour à la ligne windows
fclose($fp);
echo 'succès: votre nouvel utilisateur est correctement enregistre', "\n";
}
}
else // On n'a pas encore rempli le formulaire
{
?>
</p>

<p>Entrez votre login et votre mot de passe pour le crypter.</p>

<form action="" method="post">
<p>
        Login : <input type="text" name="login"><br />
        Mot de passe : <input type="text" name="pass"><br /><br />
    
        <input type="submit" value="Crypter !">
    </p>
</form>

<?php
}
?>
merci pour votre aide

Posté : 12 nov. 2008, 21:35
par Ryle
D'après la documentation de la fonction fprintf(), celle-ci n'est apparue que depuis la version 5 de php. Est-ce que tu utilises bien cette version ? (sans quoi php ne pourra effectivement pas la connaitre :))

Posté : 13 nov. 2008, 11:24
par tounse
j'ai verifié, le php 5 est bien installé sur le serveur

merci

je cloture cette conversation, je vais faire autrement et je revient ssur le forum encas de pb

merci pour tout

ps : je vais utiliser fwrite à la place, on ne sais jamais