ra-v Opublikowano 25 Marca 2006 Zgłoś Opublikowano 25 Marca 2006 (edytowane) Chciłem zrobić system pisania newsów ale narazie mam problem z logowanie sie admina mam dwa pliki itd nie pisałem bo to każdy zna i gdzie jest bład ? jak sie loguj to mi wyskakuje złe hasło mimo że podałem dobre... HELP.... EDIT usunąłem już zawartość plików... aby nie kopiowano Edytowane 25 Marca 2006 przez ra-v Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
shaqal Opublikowano 25 Marca 2006 Zgłoś Opublikowano 25 Marca 2006 (edytowane) Moje propozycje: admin.html - nie podałeś metody przesłania danych z formularza. <form action="adminpanel.php" method="post">adminpanel.php - twój "if" sprawdzał tylko jeden warunek, ten prawdza oba: if($adminlogin == $truelogin && $adminpass == $truepass) Edytowane 25 Marca 2006 przez shaqal Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
m4r Opublikowano 25 Marca 2006 Zgłoś Opublikowano 25 Marca 2006 (edytowane) nie chce mi się całego wklepywać na drugiego kompa (złożony jest). Ale co się rzuca w oczy, i co możesz samodzielnie zrobić: <form action="adminpanel.php" method="POST">Dla pewności ;) Poza tym wyremuj sobie ifa, a zamiast tego wpisz echo $_POST['login'];echo $_POST['pass']; Zobaczysz czy Ci przekazuje te zmienne z formularza. Inna sprawa, to ta linijka: if($adminlogin == $truelogin | $adminpass == $truepass)Porównujesz bitowo. Zamiast tego powinieneś logicznie- ||, albo w tym przypadku && jest prawidłowe. Wyjaśnienie- || zwróci true, jeżeli co najmniej jedno pole będzie poprawne - czyli możesz wpisać poprawny login i złe hasło, a i tak wejdziesz. && zwraca true tylko kiedy oba są poprawne. w związku z tym spróbuj tak: if(($adminlogin == $truelogin) && ($adminpass == $truepass))Nawiasy wstawiłem, bo nie pamiętam priorytetów operatorów :oops: .:.:edit:.:. Shaqual: pierwszy byłeś :] Edytowane 25 Marca 2006 przez MareCeK Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ra-v Opublikowano 25 Marca 2006 Zgłoś Opublikowano 25 Marca 2006 adminpanel.php <?php //poczatek skryptu autor : R@fcio $adminlogin = $_POST['login']; $adminpass = $_POST['pass']; $truelogin = "admin"; $truepass = "pass"; // sprawdzamy pola login i password if($adminlogin == $truelogin && $adminpass == $truepass) { echo ' <span class="style1 style2">Tytuł</span> <input name="tytul" type="text" class="style3" /><br> <span class="style3">Treść :</span> <textarea name="tresc" cols="100" rows="15" class="style3"></textarea><br> <input type="submit" class="style3" value="Napisz newsa" />' $news = $tytul."\n".$tresc; // otworzenie pliku $openplik = fopen("news.txt","w"); //dopisanie nowych informacji fputs($openplik,$news); // zamknięcie pliku fclose($openplik); } else { echo "Podales zle haslo"; } //koniec skryptu ?> I jak tu poprawić żeby zapisało sie do pliku news.txt ?? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
tukamon Opublikowano 25 Marca 2006 Zgłoś Opublikowano 25 Marca 2006 nie myslales moze nad dorzuceniem sqla zamiast txt? :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ra-v Opublikowano 25 Marca 2006 Zgłoś Opublikowano 25 Marca 2006 nie bardzo to troche skomplikowane a ja wole prostsze rozwiązanie prosze o pomoc... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
tukamon Opublikowano 25 Marca 2006 Zgłoś Opublikowano 25 Marca 2006 podpatrz jak to jest rozwiazane np w e107. tam chyba [nie pamietam dokladnie] jest mozliwosc zapisawania do txt Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ra-v Opublikowano 25 Marca 2006 Zgłoś Opublikowano 25 Marca 2006 korzystałem z kursu php ale i tak dużo mi z tego nie wynikło, niby wszystko ok ale nie działa bo chyba w złej kolejności uzłożyłem Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
m4r Opublikowano 26 Marca 2006 Zgłoś Opublikowano 26 Marca 2006 $news = $tytul."\n".$tresc;jakie wartości mają $tytul i $tresc? Nigdzie ich nie widzę, a to znaczy że masz dwa puste łańcuchy przedzielone enterem -> w rezultacie sam enter. W tym przypadku pewnie będzie Ci wpisywać pojedynczy enter ilekroć uruchomisz skrypt. Jeszcze coś: Masz w parametrach funkcji fopen() podane "w" (zapis), przez co za każdym razem plik będzie zerowany a kursor ustawiany na jego początku. Jeżeli chcesz dopisywać do pliku, proponuję ustawić sobie "a" (albo "a+"), wtedy kursor ustawi się na końcu pliku i nie usunie dotychczasowej zawartości (może nawet po parokrotnym wywołaniu zobaczysz kilka enterów ;) ). Więcej tutaj Proponuję trochę poczytać największy "tutorial" dostępny w sieci, czyli właśnie php.net. Albo przynajmniej czytać opisy funkcji których używasz korzystając z innego tutoriala. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ra-v Opublikowano 26 Marca 2006 Zgłoś Opublikowano 26 Marca 2006 ok dzięx zaraz zmienie z tym fopen a co to tego że sie nie zapisuje faktycznie miałem formularz ale zapomniałem przypisać wartości do zmiennej za pomocą $_POST['']; mój bład teraz pomęcze sie nad odczytaniem a teraz mam jeszcze pytanie jak zrobić żeby był podział na temat i treśc i przy odczytywaniu to rozróżniał bo takto jak zapisuje i odczytuje to temat i treśc bierze za jedną całość... mam np. napisać w notatniku $ temat = "coś tam" i $ tresc = "cos tam" a potem odczytać to ?? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 26 Marca 2006 Zgłoś Opublikowano 26 Marca 2006 mam wątpliwości czy to porównanie zadziała... if($adminlogin == $truelogin)gdzieś widziałem że nie powinno się w ten sposób porównywać stringów bo w jakimś przypadku to będzie zwracać ciągle na false... do porównywania stringów bardziej andaje się chyba operator === ale on też ma jakieś wady... tutaj więcej.. moze sie przyda... :wink: http://www.leon.w-wa.pl/texts/kurs/text.php Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ra-v Opublikowano 27 Marca 2006 Zgłoś Opublikowano 27 Marca 2006 mam ostatnie pytanie co jest źle w tym kodzie ? <? php // początek skryptu odczytywania danych z pliku news.txt //autor : Ra-V21 // otworzenie pliku $openplik = fopen("news.txt", "r"); // odczyt z pliku $news = fread($openplik, filesize("news.txt")); //rozszczepienie tytułu i tematu explode("\t", $news); // wyświetlenie newsa echo $news; //zamknięcie pliku txt fclose($openplik); //koniec skryptu ?> Bład który mi wyskakuje to : Parse error: parse error in /data/members/free/tripod/uk/c/m/s/cmsample/htdocs/portfolio/index.php on line 13 I siedze nad tym od pół godziny i nie moge nic wymyślić Pomocy... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 27 Marca 2006 Zgłoś Opublikowano 27 Marca 2006 (edytowane) flock($openplik ,1);fread($openplik , filesize("news.txt"));flock($openplik ,3);uzywaj dodatkowo blokady pliku dla odczytu... na wszelki wypadek, choć w tym przypadku nie jest to istotnym błędem. a błąd wyskakuje przy fclose() o ile dobrze policzyłem czy w której linijce? Która to jest linijka 13.... Acha... i jak przeczytasz plik to go zamnij, a potem operuj sobie na wczytanej tablicy czy wczytanym tekście (explode...) Edytowane 27 Marca 2006 przez PelzaK Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
flatline Opublikowano 27 Marca 2006 Zgłoś Opublikowano 27 Marca 2006 //rozszczepienie tytułu i tematuexplode("\t", $news);// wyświetlenie newsaecho $news; Hmmm, to nie jest obiekt :) - musisz przypisać wynik explode() do zmiennej i odwoływać się do elementów tablicy. Poza tym we wcześniejszym listingu separatorem był znak nowej linii (\n) a teraz tabulacja (\t)? // ...$temp = explode("\t", $news);// wyświetlenie tytułuecho $temp[0];// wyświetlenie treściecho $temp[1];// ... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...