ďťż
Podstrony
|
telcocafeWitam. Piszę prosty PA. Mam problem z logowaniem. Po wpisaniu hasła i sprawdzeniu go, skrypt powinien przekierować mnie na tajną stronę. Oto skrypt:<?php $haslo = $_POST["haslo"]; $adres = 'index.php?pokaz=panel'; if($haslo <> "moje_tajne_haslo"){ echo('<p><div class="blad">Niepoprawne hasło!</div></p>'); } else{ header ('Location: ' . $adres); } ?> Czemu wyświetla błąd :"Warning: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\www\index.php:11) in c:\usr\krasnal\www\www\html\logowanie.php on line 10", czyli tej z header? Pozdrawiam PS. Nie wiem czemu, umieściłem temat w "Polu do popisu". przpraszam i prosiłbym moda o przeniesienie :) Użytkownik bartek_kawa edytował ten post 24 sierpień 2006, 12:47 Przed tym kodem php nie może znajdować się NIC! Użytkownik Bartas edytował ten post 24 sierpień 2006, 12:55 if($haslo <> "moje_tajne_haslo"){ To nie delphi :) zrób if($haslo != "moje_tajne_haslo"){ @Bartas: To nie rozwiąże problemu a na dodatek spowolnia skrypt (choć w skali nano ;)) Edit: Faktycznie, sorry, mój błąd. Też dopiero zauważyłem te puste znaki na początku ... Użytkownik Einzeinbleth edytował ten post 24 sierpień 2006, 12:39 I SIĘ NIE ZNAJDUJE! Nie krzycz proszę :) Co do <>, to już raczej wina Marcina Lisa, bo wziąłem skrypt z jego książki ;) Bartas: O które dwie linijki chodzi? Użytkownik bartek_kawa edytował ten post 24 sierpień 2006, 12:40 1. masz jakiś kod przed tym skryptem? 2. <> == != Nie. Pełny plik logowanie.php wygląda tak: <?php $adres = 'index.php?pokaz=panel'; if($_POST["haslo"] <> "moje_tajne_haslo") { echo('<p><div class="blad">Niepoprawne hasło!</div></p>'); } else{ header ('Location: ' . $adres); } ?> <p> <h2>Podaj hasło dostępu</h2> <form name = "formularz1" action= "index.php?pokaz=logowanie" method= "POST"> <input type="password" name="haslo"> <p> <input type="submit" value="Wejdź"> </p> </form> </p> Jest to logowanie do Panelu Administratora websites.yoyo.pl. Wkrótce pojawi tu się link do zdjęć z PA :) <!-- Jeśli nie masz konta <a href="index.php?pokaz=rejestracja">załóż je</a>!--> odpal skrypt i jak wywali błąd to wejdź w źródło strony i wklej je tu I SIĘ NIE ZNAJDUJE! Nie krzycz proszę :) Co do <>, to już raczej wina Marcina Lisa, bo wziąłem skrypt z jego książki ;) Bartas: O które dwie linijki chodzi? Nie krzyczałem, przypadkiem capsa włączyłem, lecz już się poprawiłem. Przed skryptem musi się coś znajdować. Ja wkleiłem Twój skrypt do pliku php na początku i działa wyśmienicie. Użytkownik Bartas edytował ten post 24 sierpień 2006, 12:53 @Bełdzio Wywaliło błąd. Wszedłem w źódło strony i wklejam tylko sam błąd: <br /> <b>Warning</b>: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\www\index.php:11) in <b>c:\usr\krasnal\www\www\html\logowanie.php</b> on line <b>5</b><br /> <p> <h2>Podaj hasło dostępu</h2> <form name = "formularz1" action= "index.php?pokaz=logowanie" method= "POST"> <input type="password" name="haslo"> <p> <input type="submit" value="Wejdź"> </p> </form> </p> Jest to logowanie do Panelu Administratora websites.yoyo.pl. Wkrótce pojawi tu się link do zdjęć z PA :) <!-- Jeśli nie masz konta <a href="index.php?pokaz=rejestracja">załóż je</a>!--> Skrypt wygląda tak: <?php $adres = 'index.php?pokaz=panel'; if($_POST["haslo"] != "tonyhawk") { echo('<p><div class="blad">Niepoprawne hasło!</div></p>'); } else{ header ('Location: ' . $adres); } ?> @Bartas= tak includuję. Tzn. Mam system linków z Biblioteczki KŚ o PHP :) Użytkownik bartek_kawa edytował ten post 24 sierpień 2006, 12:52 Umieść skrypt na początku pliku index.php, a w pliku logowanie.php zostaw sam formularz z action ustawionym na index.php Użytkownik Bartas edytował ten post 24 sierpień 2006, 13:06 No trudno :) Nie mogę na początku, bo wtedy rozsypałby mi się layout. (trzykolumnowy, w środku treść) :) manual + ob_* manual + ob_* Jakby były problemy z szukaniem: ob_*. Dobra rada to zacząć od ob_start :] zrób przekierowanie w js zrób przekierowanie w js Człowieku, przecież gość przy logowaniu musi użyć PHP, bo JS w tym wypadku ani bezpieczne ani praktyczne. Komunikat uporczywie mówi, że coś jednak jest przed przekierowaniem. Upewnij się, że nie ma nawet pustych linii (enterów), spacji czy tabulatorów. Może nie zauważyłeś jakiś białych znaków? nie, nie musi użyć php, może użyć js, i skrypt będzie dobrze działał [code] <?php $haslo = $_POST["haslo"]; $adres = 'index.php?pokaz=panel'; if($haslo <> "moje_tajne_haslo"){ echo('<p><div class="blad">Niepoprawne hasło!</div></p>'); } else{ header ('Location: ' . $adres); } ?> Ten błąd oznacza tylko tyle że wysyłasz coś do użytkownika ( serwer wysyła ) przed funkcją header() Błąd ten wystąpi jeśli na przykład dasz echo przed header bo coś czuje że nie pokazujesz całego kodu :P. Jak dorobiłem formularz to ten skrypt jakoś u mnie dziwnie chodzi a '<>' oznacza negacje i można go używać zamiast != chociaż wielu webmasterów przyjęło drugią formę jako standard. Edit > A jeśli chodzi o użycie Javascript to można to rozwiązać dając: document.location.href='index.php?pokaz=panel'; Użytkownik orglee edytował ten post 24 sierpień 2006, 20:00 |
|||
Sitedesign by AltusUmbrae. |