Problème dans un code php
Fermé
anerax
Messages postés
15
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
16 octobre 2008
-
30 juin 2008 à 19:16
anerax Messages postés 15 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 16 octobre 2008 - 1 juil. 2008 à 09:04
anerax Messages postés 15 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 16 octobre 2008 - 1 juil. 2008 à 09:04
A voir également:
- Problème dans un code php
- Le code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code gta 4 ps4 - Guide
2 réponses
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
30 juin 2008 à 23:14
30 juin 2008 à 23:14
Salut, il ne met pas d'erreur ou warning ? Parce que je vois un problème qui en fait deux :
1. $repertoire = "C:\wamp\www\test"; ne pourra jamais fonctionner. En plus du fait que le backslash soit un caractère d'échappement (dans ton cas il faut le doubler), il me semble que le protocole "file://" doive être renseigné... et encore je n'ai jamais tenté une telle opération pour pointer un répertoire plutôt qu'un fichier, donc je ne confirmerai pas.
2. Tu devrais donc préférablement utiliser des chemins relatifs : Si ton fichier PHP se trouve dans le répertoire test, alors tu te trouves déjà dans le bon répertoire. Si ton fichier PHP se trouve à la racine du serveur web (www), alors tu dois indiquer le chemin relatif "/test" et ainsi de suite, ".." pour remonter une fois de répertoire...
1. $repertoire = "C:\wamp\www\test"; ne pourra jamais fonctionner. En plus du fait que le backslash soit un caractère d'échappement (dans ton cas il faut le doubler), il me semble que le protocole "file://" doive être renseigné... et encore je n'ai jamais tenté une telle opération pour pointer un répertoire plutôt qu'un fichier, donc je ne confirmerai pas.
2. Tu devrais donc préférablement utiliser des chemins relatifs : Si ton fichier PHP se trouve dans le répertoire test, alors tu te trouves déjà dans le bon répertoire. Si ton fichier PHP se trouve à la racine du serveur web (www), alors tu dois indiquer le chemin relatif "/test" et ainsi de suite, ".." pour remonter une fois de répertoire...
anerax
Messages postés
15
Date d'inscription
mardi 19 février 2008
Statut
Membre
Dernière intervention
16 octobre 2008
1
1 juil. 2008 à 09:04
1 juil. 2008 à 09:04
Salut on m'a bien aidé sur le sdz et on m'a crée sa :) (j'ai juste enlevé un mini bug^^)
<?php
if(empty($_POST))
{
?>
<form name="acces" method="post" action="?">
Pseudo : <input type="text" name="pseudo" /><br />
Mot de passe: <input type="password" name="mdp" /><br />
<input type="submit" name="Créer" />
</form>
<?php
}
else
{
$repertoire = 'C:/wamp/www/test/';
// à préciser le répertoire concerné. Ne pas oublier le '/' à la fin
$filename = $repertoire . $_POST['pseudo'] . '.acc';
// nom du fichier
// test si une page du même nom existe déjà ou pas... si oui, on fait rien. si non on crée la page !
if(file_exists($filename))
{
// message pour indiquer qu'un fichier existe déjà
?>
<div style="color: #f00; font-weight: bold;">
Il existe déjà un pseudo du nom de <em><?php echo $_POST['pseudo']; ?></em>.<br />
Merci de préciser au autre pseudo.
</div>
<div style="color: #f00;">
Appuyez sur le bouton RETOUR du navigateur pour modifier vos données.<br />
Merci
</div>
<?php
}
else // le fichier n'existe pas, alors on le créer !
{
// on définit le texte à l'intérieur
$int_texte = '[Account]' . "\n";
$int_texte .= 'AccName=' . $_POST['pseudo'] . "\n";
$int_texte .= 'Password=' . $_POST['mdp'] . "\n";
$int_texte .= 'LogonCount=0' . "\n";
$int_texte .= 'LogonType=2' . "\n";
$int_texte .= 'Flags=0' . "\n";
$int_texte .= 'Character=';
$FileCO = fopen($filename,"w"); // ouverture du fichier
fputs($FileCO,$int_texte); // écriture dans le fichier
fclose($FileCO); // fermeture du fichier
// Le fichier par défaut est en .txt, on le renomme en .acc
rename($filename, substr($filename, 0, strlen($filename)-3) . 'acc');
// chmod 777 (lecture / écriture complète sur le fichier)
chmod($filename, 0777);
echo '<div>Pseudo <strong> ' . $_POST['pseudo'] . '</strong> créé !</div>';
} // fin test existence pour création
} // fin du if du fomulaire
?>
Et sa marche :p
<?php
if(empty($_POST))
{
?>
<form name="acces" method="post" action="?">
Pseudo : <input type="text" name="pseudo" /><br />
Mot de passe: <input type="password" name="mdp" /><br />
<input type="submit" name="Créer" />
</form>
<?php
}
else
{
$repertoire = 'C:/wamp/www/test/';
// à préciser le répertoire concerné. Ne pas oublier le '/' à la fin
$filename = $repertoire . $_POST['pseudo'] . '.acc';
// nom du fichier
// test si une page du même nom existe déjà ou pas... si oui, on fait rien. si non on crée la page !
if(file_exists($filename))
{
// message pour indiquer qu'un fichier existe déjà
?>
<div style="color: #f00; font-weight: bold;">
Il existe déjà un pseudo du nom de <em><?php echo $_POST['pseudo']; ?></em>.<br />
Merci de préciser au autre pseudo.
</div>
<div style="color: #f00;">
Appuyez sur le bouton RETOUR du navigateur pour modifier vos données.<br />
Merci
</div>
<?php
}
else // le fichier n'existe pas, alors on le créer !
{
// on définit le texte à l'intérieur
$int_texte = '[Account]' . "\n";
$int_texte .= 'AccName=' . $_POST['pseudo'] . "\n";
$int_texte .= 'Password=' . $_POST['mdp'] . "\n";
$int_texte .= 'LogonCount=0' . "\n";
$int_texte .= 'LogonType=2' . "\n";
$int_texte .= 'Flags=0' . "\n";
$int_texte .= 'Character=';
$FileCO = fopen($filename,"w"); // ouverture du fichier
fputs($FileCO,$int_texte); // écriture dans le fichier
fclose($FileCO); // fermeture du fichier
// Le fichier par défaut est en .txt, on le renomme en .acc
rename($filename, substr($filename, 0, strlen($filename)-3) . 'acc');
// chmod 777 (lecture / écriture complète sur le fichier)
chmod($filename, 0777);
echo '<div>Pseudo <strong> ' . $_POST['pseudo'] . '</strong> créé !</div>';
} // fin test existence pour création
} // fin du if du fomulaire
?>
Et sa marche :p