![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hej wszystkim!!!
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); ?> /********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!! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 115 Pomógł: 12 Dołączył: 13.05.2006 Ostrzeżenie: (0%) ![]() ![]() |
tak na szybkiego. Zamień funkcję writeArray na:
Ważne jest żeby ten ciapek cudzysłowu przechodził na sam pcozatek nowej linii to wtedy na poczatku bedzi ci tak zapisywac do pliku -------------------- do wszystkiego trzeba podejść z głową a problem sam się rozwiąże
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 1 Dołączył: 5.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod pomiędzy apostrofami jest traktowany "dosłownie", natomiast w wypadku cudzysłowów parser "szuka" w nim znaków specjalnych i zmiennych.
Spróbuj:
Ten post edytował slic3 24.08.2008, 19:10:51 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Serdeczne dzięki
![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 01:49 |