par
ruly » 09 mars 2006, 11:02
en fait j'ai change d'avis et j'aimerais supprime carement la ligne trouvee.
voici mon code:
<?php
//initialisation:
$fichier = ".htpasswd";
$tab = '';
$login = ''; if (!empty($_POST['login'])) {$login = $_POST['login'];}
$pass = ''; if (!empty($_POST['pass'])) {$pass = $_POST['pass'];}
$i = ''; if (!empty($_POST['i'])) $i = $_POST['i'];
if (isset($_POST['Submit2'])) {
$insertOk2 = true;
if (empty($_POST['login'])) {
$insertOk = false;
echo '<div align="center" style="color:#FF0000">the login is obligatory.</div>'.'<br>';
}
if (empty($_POST['pass'])) {
echo '<div align="center" style="color:#FF0000">the pass is obligatory.</div>'.'<br>';
$insertOk = false;
}
if ($insertOk2) {
echo $login.':'.$pass.'<br><br>';
// Supression d'une ligne
$fp = fopen($fichier,"r"); // Ouverture du fichier en lecture
$fp_temp = fopen("temp.txt","w+"); // Ouverture du fichier temporaire
while (!feof($fp)) { // Parcours du fichier
$ligne = fgets($fp,4000); // On récupère le nombre de la ligne
if ( ($ligne != $login.':'.$pass) or ($ligne != ' ') ) { // Condition de placement
fwrite($fp_temp,$ligne);
}
}
fclose($fp); // Fermeture du fichier
fclose($fp_temp);
copy("temp.txt",$fichier); // On recopie le fichier temporaire obtenu
unlink("temp.txt"); // On l'efface
}
}
if (isset($_POST['Submit'])) {
$insertOk = true;
if (empty($_POST['login'])) {
$insertOk = false;
echo '<div align="center" style="color:#FF0000">the login is obligatory.</div>'.'<br>';
}
if (empty($_POST['pass'])) {
echo '<div align="center" style="color:#FF0000">the pass is obligatory.</div>'.'<br>';
$insertOk = false;
}
if ($insertOk) {
$text = "\r\n".trim($login).":".trim($pass);
$handle = fopen($fichier, 'a');
fwrite($handle, $text);
$login = '';
$pass = '';
$_POST['login'] = '';
$_POST['pass'] = '';
}
}
if (file_exists($fichier)) {
$tableau = file($fichier);
$i = 0;
while(list($cle,$val) = each($tableau)) {
echo $val."<br>";
$tab .= $val;
$i++;
}
}
echo $tab;
?>
et mon formulaire :
Code : Tout sélectionner
<form name="form1" method="post" action="">
<table width="30%" >
<tr>
<td width="6%"><strong>Login:</strong></td>
<td width="94%"><input type="text" name="login" value="<?php echo $login?>"></td>
</tr>
<tr>
<td><strong>Pass:</strong></td>
<td><input type="text" name="pass" value="<?php echo $pass?>"></td>
</tr>
<tr>
<td>
<div align="right">
<input type="submit" name="Submit" value="New">
</div>
</td>
<td>
<input type="hidden" name="i" value="<?php echo $i?>">
<input type="submit" name="Submit2" value="Delete">
</td>
</tr>
</table>
</form>
l'insertion se passe nikel.
probleme pour la suppression.... des fois il me l'enleve des fois pas... et en plus si je supprime et je rajoute apres j'ai des ligne de blance entre les suppressions et les nouvelles insertions...
est-ce que qqn peut m'aider ou voit ou ya une erreur???
merci d'avance.
en fait j'ai change d'avis et j'aimerais supprime carement la ligne trouvee.
voici mon code:
[php]<?php
//initialisation:
$fichier = ".htpasswd";
$tab = '';
$login = ''; if (!empty($_POST['login'])) {$login = $_POST['login'];}
$pass = ''; if (!empty($_POST['pass'])) {$pass = $_POST['pass'];}
$i = ''; if (!empty($_POST['i'])) $i = $_POST['i'];
if (isset($_POST['Submit2'])) {
$insertOk2 = true;
if (empty($_POST['login'])) {
$insertOk = false;
echo '<div align="center" style="color:#FF0000">the login is obligatory.</div>'.'<br>';
}
if (empty($_POST['pass'])) {
echo '<div align="center" style="color:#FF0000">the pass is obligatory.</div>'.'<br>';
$insertOk = false;
}
if ($insertOk2) {
echo $login.':'.$pass.'<br><br>';
// Supression d'une ligne
$fp = fopen($fichier,"r"); // Ouverture du fichier en lecture
$fp_temp = fopen("temp.txt","w+"); // Ouverture du fichier temporaire
while (!feof($fp)) { // Parcours du fichier
$ligne = fgets($fp,4000); // On récupère le nombre de la ligne
if ( ($ligne != $login.':'.$pass) or ($ligne != ' ') ) { // Condition de placement
fwrite($fp_temp,$ligne);
}
}
fclose($fp); // Fermeture du fichier
fclose($fp_temp);
copy("temp.txt",$fichier); // On recopie le fichier temporaire obtenu
unlink("temp.txt"); // On l'efface
}
}
if (isset($_POST['Submit'])) {
$insertOk = true;
if (empty($_POST['login'])) {
$insertOk = false;
echo '<div align="center" style="color:#FF0000">the login is obligatory.</div>'.'<br>';
}
if (empty($_POST['pass'])) {
echo '<div align="center" style="color:#FF0000">the pass is obligatory.</div>'.'<br>';
$insertOk = false;
}
if ($insertOk) {
$text = "\r\n".trim($login).":".trim($pass);
$handle = fopen($fichier, 'a');
fwrite($handle, $text);
$login = '';
$pass = '';
$_POST['login'] = '';
$_POST['pass'] = '';
}
}
if (file_exists($fichier)) {
$tableau = file($fichier);
$i = 0;
while(list($cle,$val) = each($tableau)) {
echo $val."<br>";
$tab .= $val;
$i++;
}
}
echo $tab;
?>[/php]
et mon formulaire :
[code]<form name="form1" method="post" action="">
<table width="30%" >
<tr>
<td width="6%"><strong>Login:</strong></td>
<td width="94%"><input type="text" name="login" value="<?php echo $login?>"></td>
</tr>
<tr>
<td><strong>Pass:</strong></td>
<td><input type="text" name="pass" value="<?php echo $pass?>"></td>
</tr>
<tr>
<td>
<div align="right">
<input type="submit" name="Submit" value="New">
</div>
</td>
<td>
<input type="hidden" name="i" value="<?php echo $i?>">
<input type="submit" name="Submit2" value="Delete">
</td>
</tr>
</table>
</form>[/code]
l'insertion se passe nikel.
probleme pour la suppression.... des fois il me l'enleve des fois pas... et en plus si je supprime et je rajoute apres j'ai des ligne de blance entre les suppressions et les nouvelles insertions...
est-ce que qqn peut m'aider ou voit ou ya une erreur???
merci d'avance.