Mój problem polega na tym, iz mam skrypt PHP który zapisuje/modyfikuje/kasuje loginy i hasła użytkowników przechowywane w passwords.txt. Sam skrypt teoretycznie dziala poprawnie, jednak po jego wykonaniu cala treść passwords.txt jest zapisywana w jednej linii przez co przestaje mi działać procedura logowania (brak loginu i hasła). Może ktoś mądrzejszy ode mnie będzie umiał ten skrypt tak zmodyfikować, aby po każdym jego wykonaniu login i hasło znajdowalo się w jednej lini, a każde następne w nowej linii. Błagam pomóżcie!!! Poniżej treść skryptu. Poniżej przydatne rzeczy.
CODE
$pass=$_POST['haslo'];
$user=$_POST['user'];
$akcja=$_POST['akcja'];
function readArray($fd)
{
$arr=array();
while(!feof ($fd)) {
$line=trim(fgets($fd));
if(($pos=strpos($line, ':'))==false) continue;
$tempUser=substr($line, 0, $pos);
$tempPass=substr($line, $pos + 1, strlen($line) - $pos);
if($tempUser=='' || $tempPass == '') continue;
$arr[$tempUser]=$tempPass;
}
return $arr;
}
function writeArray($fd, $arr)
{
foreach($arr as $key => $value){
$tempStr=$key.':'.$value.'\r\n';
fwrite($fd, $tempStr);
}
}
if($pass=='' && $akcja!='remove'){
echo"Brak hasła";
return;
}
if($user==''){
echo"Brak nazwy użytkownika";
return;
}
if(!$fd=fopen('passwords.txt', 'a+')){
echo"Błąd przy próbie ostwarcia pliku";
return;
}
fseek($fd, 0);
$arr=readArray($fd);
fclose($fd);
if($akcja=='add'){
if(!array_key_exists($user, $arr)){
$arr[$user]=md5($pass);
echo"Uszytkownik: $user został dodany do bazy!";
}
else {
echo "Uzytkownik $user istnieje już w bazie!!";
return;
}
}
else if($akcja=='remove'){
if(array_key_exists($user, $arr)){
unset($arr[$user]);
echo"Użytkownik $user został usunięty z bazy";
}
else{
echo"NIe ma użytkownika $user w bazie";
return;
}
}
else if($akcja=='modify'){
if($array_key_exists($user, $arr)){
$arr[$user]=md5($pass);
echo"Hasło użytkownika $user zostało zmienione";
return;
}
else{
echo"Nie ma użytkownika $user w bazie";
return;
}
}
else{
echo"Błędne dane: akcja=$akcja";
return;
}
if(!$fd=fopen('passwords.txt', 'w')){
echo"Wystapił błąd przy próbie zapisu zmodyfikowanej bazy!";
return;
}
writeArray($fd, $arr);
fclose($fd);
?>
$user=$_POST['user'];
$akcja=$_POST['akcja'];
function readArray($fd)
{
$arr=array();
while(!feof ($fd)) {
$line=trim(fgets($fd));
if(($pos=strpos($line, ':'))==false) continue;
$tempUser=substr($line, 0, $pos);
$tempPass=substr($line, $pos + 1, strlen($line) - $pos);
if($tempUser=='' || $tempPass == '') continue;
$arr[$tempUser]=$tempPass;
}
return $arr;
}
function writeArray($fd, $arr)
{
foreach($arr as $key => $value){
$tempStr=$key.':'.$value.'\r\n';
fwrite($fd, $tempStr);
}
}
if($pass=='' && $akcja!='remove'){
echo"Brak hasła";
return;
}
if($user==''){
echo"Brak nazwy użytkownika";
return;
}
if(!$fd=fopen('passwords.txt', 'a+')){
echo"Błąd przy próbie ostwarcia pliku";
return;
}
fseek($fd, 0);
$arr=readArray($fd);
fclose($fd);
if($akcja=='add'){
if(!array_key_exists($user, $arr)){
$arr[$user]=md5($pass);
echo"Uszytkownik: $user został dodany do bazy!";
}
else {
echo "Uzytkownik $user istnieje już w bazie!!";
return;
}
}
else if($akcja=='remove'){
if(array_key_exists($user, $arr)){
unset($arr[$user]);
echo"Użytkownik $user został usunięty z bazy";
}
else{
echo"NIe ma użytkownika $user w bazie";
return;
}
}
else if($akcja=='modify'){
if($array_key_exists($user, $arr)){
$arr[$user]=md5($pass);
echo"Hasło użytkownika $user zostało zmienione";
return;
}
else{
echo"Nie ma użytkownika $user w bazie";
return;
}
}
else{
echo"Błędne dane: akcja=$akcja";
return;
}
if(!$fd=fopen('passwords.txt', 'w')){
echo"Wystapił błąd przy próbie zapisu zmodyfikowanej bazy!";
return;
}
writeArray($fd, $arr);
fclose($fd);
?>
/********formularz****************/
<form name='konta' action='konta.php' method='post'>";
<table border='1'><tr><td>Użytkownik:</td><td colspan='2'><input type='text' name='user'></td></tr>
<tr><td>Hasło:</td><td colspan='2'><input type='password' name='haslo'</td></tr>
<tr><td><input type='radio' name='akcja' value='add' checked>Dodaj</td>
<td align='center'><input type='radio' name='akcja' value='remove'>Usuń</td>
<td><input type='radio' name='akcja' value='modify'>Modyfikuj</td>
</tr><td colspan='3' align='center'><input type='submit' value='Wykonaj'></td></tr></table></form>
/********** a tak powinien wyglądać passwords.txt ************/
karolusgt:ebe86682666f2ab3da0843ed3097e4b3
aaa:47bce5c74f589f4867dbd57e9ca9f808
/******** a po wykonaniu skryptu wygląda tak *********/
karolusgt:ebe86682666f2ab3da0843ed3097e4b3/r/naaa:47bce5c74f589f4867dbd57e9ca9f808/r/n
Z góry dzięki za pomoc mądremu człowiekowi który rozwiąże ten problem!!