ďťż
Podstrony
|
telcocafeCzesc! :DChciałbym was prosić o pomoc. Na swojej stronce chcę wprowadzić darmowe aliasy e-mail. Wygladaloby to tak: Klient wpisuje w pole(w pliku aliasy.html) jak cche by wygladal jego alias klika na "sprawdz" a skrypt(aliasy.php) sprawdza czy w pliku aliasy.txt nie ma już wpisanego takiego aliasu. Proszę was o napisanie skryptu który sprawdzalby czy wartośc wpisana w aliasy.html jest już w aliasy.txt, jezeli jest to niech zostaje wywolany komunikat "alias zajety", jezeli nie niech zostaje wywolany dany kod, w kodzie aliasy.php zaznaczcie mi go jako <kod>. I jeszcse jedno jak wpisywac dane w txt? po przecinku? Oto plik aliasy.html: <form method=post action="aliasy.php"> <input type="text" name="alias"><B>@miedwie.com.pl</b><BR> <input type=submit value="Sprawdź!"> </form> Sposobów jest dużo. Podam jeden. Sprawdzanie czy jest taki element w pliku aliasy.htm: $aliasy = unserialize(file_get_contents('aliasy.htm')); $szukany = 'szukany.alias'; if (@in_array(strtolower($szukany), $aliasy)) { echo "Jest :("; } else { echo "OK! nie ma!"; } Modyfikowanie aliasów w pliku będzie mozliwe tylko z php, tzn. można ręcznie ale dane są tam zapisane tak, że ręcznie babrać się w tym byłoby głupotą. Wczytujesz aliasy z pliku do zmiennej (tablicy) tak jak to widać w pierwszej linijce. Potem możesz modyfikować tę tablicę aliasów i spowrotem zapisać do pliku używając file_put_contents i serialize. Uwaga! file_put_contents zdaje się, że jest dopiero w php 5 :( Więc należy zapisać to np. przez puts. Innym sposobem: możesz zapisywać aliasy w osobnej linijce, potem odczytać do tablicy uzywając funkcji 'file'. Zapis podobnie jak wcześneiej: file_put_contents lub puts. Życzę pwodzenia :) Ja bardziej bym chciał by to bylioc zerpane z pliku txt który wyglada jak powiedizales tak: zenek stefan romek czy w tedy w tym kodzie mam napisać zamiast unserialize serialize a zamiast file_get_contents file_puts czy file_puts_contents? W takim przypadku: $aliasy = file('aliasy.txt'); $szukany = 'siurak:)'; if (@in_array(strtolower($szukany), $aliasy)) { Â Â echo "Jest :("; } else { Â Â echo "OK! nie ma!"; } Jeśli chcesz zapisać tablicę $aliasy to: $f = fopen('aliasy.txt', 'w'); if ($f) fputs($f, join("\r\n", $aliasy)); fclose($f); [dopisane] W poprzednich postach się walnąłem: nie puts() tylko fputs(). Kupe czasu z tego nie korzystałem. Użytkownik MatroX edytował ten post 07 maj 2005, 19:08 Robie tak w tym pliku gosc wpisuje swojego aliasa: <form method=post action="aliasy.php"> <input type="text" name="szukany"><B>@miedwie.com.pl</b><BR> <input type=submit value="Sprawdź!"> </form> tak wyglada plik aliasy.txt: stefan zenek bogdan a tak plik aliasy.php: <? $aliasy = file('aliasy.txt'); if (@in_array(strtolower($szukany), $aliasy)) { echo "Jest :("; } else { echo "OK! nie ma!"; }?> Tylko jak w pierwszym pliku wpisze bogdan to pokazuje mi sie ze jest taka wartowsc a jak wpisuje zenek i stefan to jest napisane ze tkaiej wartosci nie ma, co robie zle? $szukany zamień na $_POST[szukany] czyli tak to ma wygladac? <? $_POST[szukany]; $aliasy = file('aliasy.txt'); if (@in_array(strtolower($_POST), $aliasy)) { Â Â echo "Jest :("; } else { Â Â echo "OK! nie ma!"; }?> Bo jesli tak to nie dziala Użytkownik Phomerus edytował ten post 07 maj 2005, 19:40 Nie wiem czy ja dzisiaj nie umiem się wysłowić czy... ehh <? $aliasy = file('aliasy.txt'); if (@in_array(strtolower($_POST[szukany]), $aliasy)) { echo "Jest :("; } else { echo "OK! nie ma!"; }?> Dlaczego nie zaczniesz od jakiś kursów PHP? Tez probowalem i nie dziala, dziala tylko bogdan :( sprawdzilem i wiem w cyzm rzecz ale nie wiem jak to naprawic, otoz skrypt znajdzie zawsze ostatni wpis wszystko co jest przedtem nie jest znajdywane, jak to naprawic? Użytkownik Phomerus edytował ten post 07 maj 2005, 19:49 Faktycznie, to wina tego, że funkcja file pozostawia na końcu elementu znak końca lini, z tąd niezgodność napisów. Dodaj przed warunkiem, po wczytaniu aliasów: for ($i = 0; $i < count($aliasy); $i++) $aliasy[$i] = trim($aliasy[$i]); Działa! Wielkie dzięki! |
|||
Sitedesign by AltusUmbrae. |