ďťż

[PHP] dwa pytania... fputs() i wartość formularza

       

Podstrony


telcocafe

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".




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 ^_^ .

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.