Shylios Opublikowano 1 Maja 2008 Udostępnij Opublikowano 1 Maja 2008 Co oznacza ten błąd? Warning: Cannot modify header information - headers already sent by (output started at D:\WebServ\httpd\index.php:30) in D:\WebServ\httpd\index.php on line 13 13 linia: setcookie("login","true"); Czemu cookie nie może być utworzone? Sorki za takie nuuuuuuuuupksie pytanie ale dopiero zaczynam php ;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 1 Maja 2008 Udostępnij Opublikowano 1 Maja 2008 Nie można zmodyfikować nagłówka - nagłówek już został wysłany przez index.php w linii 13. To raczej nie jest 13 linijka. Musisz gdzieś wysyłać nagłówek (funkcja header()). Zawsze rób to przed jakimkolwiek tekstem. Jeżeli tak robisz, to znaczy że wywalił błąd w jakiejś funkcji, przez co wyświetlił się tekst i nagłówki zostały wysłane zanim ty zdążyłeś to zrobić funkcją header. Pokaż więcej tego kodu może? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 1 Maja 2008 Udostępnij Opublikowano 1 Maja 2008 Nie możesz tego robić po output bufferze, czyli po echo, print itp. Albo jeśli chcesz to: ob_start(): Na początku kodu, a to na końcu: ob_flush(); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shylios Opublikowano 1 Maja 2008 Autor Udostępnij Opublikowano 1 Maja 2008 już obeszłem się bez cookie ;) ale czekajcie, zaraz dam ten kod przy którym wywalało błąd... NIE ŚMIAĆ SIĘ! TO MÓJ PIERWSZY SKRYPT LOGOWANIA! I W OGOLE PIERWSZA STRONA PHP XD <?php $pass="haslo; $emot = array(' <img src="../shylios/emoty/smile.gif">',' <img src="../shylios/emoty/happy.gif">',' <img src="../shylios/emoty/sad.gif">'); function login() { echo 'Podaj haslo:'; echo '<form action="index.php?do=check" method="POST">'; echo '<input type="password" name="haslo"> '; echo '<input type="submit" value="Zaloguj">'; echo '</form>'; }; function logged() { echo "Zalogowales sie pomyslnie"; echo "$emot[1]<br><br>"; setcookie("login","true"); echo '<a href="pobierz.php">Wejdz na strone</a><br>'; echo '<a href="index.php?do=logout">Wyloguj sie</a>'; }; ?> <html> <head> <title>Proszę wprowadzić hasło...</title> </head> <body> <center> <?php if (!$_GET) { if ($_POST["do"]!=$pass) { login(); } } else if ($_GET["do"] == check) { switch ($_POST["haslo"]) { case $pass: logged(); break; default: echo 'Niepoprawne hasło' .$emot[2] . '<br><hr width="30%">'; login(); } } else if ($_GET["do"] == logout) { echo 'Wylogowałes sie poprawnie' . $emot[0] . '<br><hr width="30%">'; login(); } else if ($_GET["do"] == relogin) { echo 'Teraz sie zaloguj' . $emot[1] . '<br><hr width="30%">'; login(); } ?> </center> </body> </html> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 1 Maja 2008 Udostępnij Opublikowano 1 Maja 2008 Według tego skryptu 13 linijka to } o.O Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shylios Opublikowano 2 Maja 2008 Autor Udostępnij Opublikowano 2 Maja 2008 O przepraszam... Teraz jest delikatnie zmodyfikowany... Ale i tak gada o błędach... Teraz drze się na linie nr 3 o_O Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 2 Maja 2008 Udostępnij Opublikowano 2 Maja 2008 A dokładniej? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piczer Opublikowano 5 Maja 2008 Udostępnij Opublikowano 5 Maja 2008 $pass="haslo; Może dlatego, że nie zamknąłeś cudzysłowem? P.S. Dla bezpieczności, nie przechowuj w cookie wartości boolean, tylko hasło, jakie trzeba wpisać, a przy automatycznym logowaniu sprawdzaj, czy hasło się zgadza. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 6 Maja 2008 Udostępnij Opublikowano 6 Maja 2008 Hm, może tak jako materiał edukacyjny: <?php error_reporting( E_ALL ); class tmpl { static function header() { return <<<XHTML <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title> Strona Shyliosa </title> </head> <body> XHTML; } static function footer() { return <<<XHTML </body> </html> XHTML; } static function login_form( $nick = '', $pass = '' ) { return <<<XHTML Nie jesteś zalogowany, proszę się zalogować. <form action="?login" method="post"> <p> Nick: <input type="text" name="nick" value="{$nick}"> </p> <p> Hasło: <input type="password" name="pass" value="{$pass}"> </p> <p> <input type="submit" value="Zaloguj"> </p> </form> XHTML; } static function login_error() { return <<<XHTML Nick lub hasło jest nieprawidłowe. XHTML; } static function login_ok() { return <<<XHTML Zostałeś zalogowany pomyślnie! XHTML; } static function login_welcome() { global $user_nick; return <<<XHTML Witaj {$user_nick}! XHTML; } } class buff { function __construct() { ob_start( array( $this, 'compress' ) ); echo tmpl::header(); } function __destruct() { tmpl::footer(); ob_end_flush(); } function compress( $input ) { return str_replace( array( chr( 10 ), chr( 13 ), "\t", ' ' ), '', $input ); } } $buff = new buff; $users = array( 'Shylios' => '12345', 'Tymon' => 'wpytke' ); $user_loggedin = false; $user_nick = ''; if( isset( $_GET['login'] ) ) { if( isset( $_POST['nick'], $_POST['pass'] ) ) { if( isset( $users[$_POST['nick']] ) ) { if( $users[$_POST['nick']] === $_POST['pass'] ) { echo tmpl::login_ok(); $user_loggedin = true; $user_nick = $_POST['nick']; setcookie( 'nick', $_POST['nick'], time() + 86400 ); setcookie( 'pass', md5( $_POST['pass'] ), time() + 86400 ); } else { echo tmpl::login_error(); } } else { echo tmpl::login_error(); } } else { echo tmpl::login_error(); } } else { if( isset( $_COOKIE['nick'], $_COOKIE['pass'] ) ) { if( isset( $users[$_COOKIE['nick']] ) ) { if( md5( $users[$_COOKIE['nick']] ) == $_COOKIE['pass'] ) { $user_loggedin = true; $user_nick = $_COOKIE['nick']; } } } } if( !$user_loggedin ) { echo tmpl::login_form(); } else { echo tmpl::login_welcome(); } ?> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 6 Maja 2008 Udostępnij Opublikowano 6 Maja 2008 @up WTf? widze materiał. 100% MVC xdd Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Shylios Opublikowano 6 Maja 2008 Autor Udostępnij Opublikowano 6 Maja 2008 Dzięki Tymon!! :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się