ďťż
Podstrony
|
telcocafePierwszy problem z funkcją fputs():Mam kod php zapisujący do pliku 2 słowa (przykładowo: login i hasło): <?php if (isset($_POST['login'])){ if (isset($_POST['haslo'])){ $login= $_POST['login']; $haslo= $_POST['haslo']; $plik=fopen('dane.txt','w'); flock($plik,2); fputs($plik, $login); fputs($plik, $haslo); flock($plik, 3); fclose($plik); } } ?> Ale przy każdym kolejnym uruchomieniu skryptu poprzednie wartości w pliku dane.txt są kasowane, a ja właśnie temu chce zapobiec i dlatego pisze tutaj: jak zrobić by z każdym kolejnym uruchomieniem skryptu dane były dopisywane do pliku (najlepiej w nowej lini)? Drugi problem: jeżeli w jakimś polu formularza chce przesłać wartość do tablicy $_POST to pisze to w value (nie wiem czy dobrze): <input name="pass" value="<?php echo $_POST['pass'];?>" type="password"> ale nie które serwery obsługujące php nie interpretują tego skryptu i w tym polu są "gwiazdki". Pierwszy problem z funkcją fputs(): Mam kod php zapisujący do pliku 2 słowa (przykładowo: login i hasło): <?php if (isset($_POST['login'])){ if (isset($_POST['haslo'])){ $login= $_POST['login']; $haslo= $_POST['haslo']; $plik=fopen('dane.txt','w'); flock($plik,2); fputs($plik, $login); fputs($plik, $haslo); flock($plik, 3); fclose($plik); } } ?> Ale przy każdym kolejnym uruchomieniu skryptu poprzednie wartości w pliku dane.txt są kasowane, a ja właśnie temu chce zapobiec i dlatego pisze tutaj: jak zrobić by z każdym kolejnym uruchomieniem skryptu dane były dopisywane do pliku (najlepiej w nowej lini)? Drugi problem: jeżeli w jakimś polu formularza chce przesłać wartość do tablicy $_POST to pisze to w value (nie wiem czy dobrze): <input name="pass" value="<?php echo $_POST['pass'];?>" type="password"> ale nie które serwery obsługujące php nie interpretują tego skryptu i w tym polu są "gwiazdki". Zacznę od końca: gwazdki są, bo przecież ustaliłeś, że to pole jest typu password - tam się pokazują gwazdki... Daj zamiast type=password type=text ;) Co do pierwszego problemu: można łatwiej zrobić to, co zrobiłeś, i dodać to, co zrobić nie udało Ci się ;) if (isset($_POST['login'], $_POST['haslo'])) { $login= $_POST['login']; $haslo= $_POST['haslo']; $plik = file_get_contents('dane.txt'); $plik.= "\r\n".$login.$haslo; //jesli stosujesz linuksa to "\n" miast "\r\n" file_put_contents('dane.txt', $plik); } @down: Albo "\r\n", nie każdy serwer jest na linuksie :) Użytkownik pbnan edytował ten post 19 wrzesień 2006, 18:49 Zacznę od końca: gwazdki są, bo przecież ustaliłeś, że to pole jest typu password - tam się pokazują gwazdki... Daj zamiast type=password type=text ;) Co do pierwszego problemu: można łatwiej zrobić to, co zrobiłeś, i dodać to, co zrobić nie udało Ci się ;) if (isset($_POST['login'], $_POST['haslo'])) { $login= $_POST['login']; $haslo= $_POST['haslo']; $plik = file_get_contents('dane.txt'); $plik.= "\r\n".$login.$haslo; //jesli stosujesz linuksa to "\n" miast "\r\n" file_put_contents('dane.txt', $plik); } A nie peościej zamiast $plik=fopen('dane.txt','w'); dać $plik=fopen('dane.txt','a'); Wtedy plik otworzy się do dopisywania, a dopisuje się już normalnie. Tylko że jeśli każdy wpis chcesz umieścić w nowej linni to na początku dopisywanego tekstu musisz dać \n Jeśli moge wtrącić ( chyba troche nie na temat... ) Zauważyłem że ten skrypt mógłby mi się przydać. if (isset($_POST['login'], $_POST['haslo'])) { $login= $_POST['login']; $haslo= $_POST['haslo']; $plik = file_get_contents('dane.txt'); $plik.= "\r\n".$login.$haslo; //jesli stosujesz linuksa to "\n" miast "\r\n" file_put_contents('dane.txt', $plik); } zrobiłbym coś takiego: if (isset($REMOTE_ADDR['ip'], $_POST['imie'])) { $ip= $REMOTE_ADDR['ip']; $imie= $_POST['imie']; $plik = file_get_contents('dane.txt'); $plik.= "\r\n".$REMOTE_ADDR.$imie; //jesli stosujesz linuksa to "\n" miast "\r\n" file_put_contents('dane.txt', $plik); } I teraz chciałbym aby skrypt otwierał plik, sprawdzał adres IP użytkownika i szukał takiego samego w pliku dane.txt, a następnie wpisywał w pole IMIE wprowadzone dane. ( jeśli brak ip, wyświelił by pole z proźbą o podanie imienia ) Zacznę od końca: gwazdki są, bo przecież ustaliłeś, że to pole jest typu password - tam się pokazują gwazdki... Doskonale o tym wiem, ja sie pytam dlaczego tam jest wogóle jakiś ciąg znaków, dlaczego nie zinterepretował tego interpretator PHP? Mieszasz, jak tam nie moze być ciągu znaków, jak żeś walnął echo w value? Mieszasz, jak tam nie moze być ciągu znaków, jak żeś walnął echo w value? Ok już wszystko działa, wystarczyło zmienić nazwe z *.html na *.php i nie ma gwiazdek ^_^ . |
|||
Sitedesign by AltusUmbrae. |