Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt logowania
Forum PHP.pl > Forum > Przedszkole
vegeta
Mam problem ze skryptem logowania.

Przy poprawnym logowaniu wyświetla mi się:
Warning: Cannot modify header information - headers already sent by (output started at F:\Adam\WebServ\httpd\via\index.php:8) in F:\Adam\WebServ\httpd\via\index.php on line 17

I nie chce przejść do index2.php

Kod index.php


  1. <meta http-equiv="content-type" content="text/html;charset=UTF-8">
  2. <meta http-equiv="Content-Language" content="pl">
  3. <img src="logo.png">
  4.        <?php
  5.        $dbh = mysql_connect("localhost", "root", "haslo");
  6.        $db = mysql_select_db("via");
  7.        if(isset($_POST['ok']) AND isset($_POST['login']) AND isset($_POST['pass'])){  
  8.        $login = $_POST['login'];
  9.        $pass = $_POST['pass'];
  10.        $mysql = mysql_fetch_array(mysql_query("select `ID` from `konta` where `login` = '$login' AND `password` = '$pass' limit 1"));
  11.        if($mysql != NULL){
  12.        $_SESSION["login"] = $login;     //<------ Linia 17
  13.        header("Location: index2.php");
  14.        }
  15.        else {
  16.        echo 'Wysąpił błąd podczas logowania!';
  17.        }
  18.        }
  19.        else {
  20.        ?>
  21.        <form action='' method='POST'>
  22.        Login: <input type='text' name='login'><br />
  23.        Hasło: <input type='text' name='pass'>
  24.        <input type='submit' name='ok' value='Zaloguj'>
  25.        </form>
  26.        <?php
  27.        }
  28.        ?>


Jak widać w pliku mam kodowanie UTF-8, zapisałem też plik w kodowaniu UTF-8 (w notatniku). Proszę o pomoc.


---------------- Edited by Ociu
Proszę używać odpowiedniego bbCode. To Twój ostatni temat, w którym poprawiam bbCode.
l0ud
Zapisz plik w UTF8 bez BOM (notepad++ ma taką opcję).

Problem leży jednak w czym innym. Aby wysłać nagłówki, nic wcześniej nie może zostać wysłane do przeglądarki. Ty wysyłasz chociażby te znaczniki META. Musisz zadbać, aby skrypt znalazł się na samym początku dokumentu.
vegeta
Dobra skrypt juz nie wyświetla blędów, przechodzi nawet do index2.php smile.gif

Ale w index2.php mam taki skrypt:
  1. <?php
  2.            session_start();
  3.            if(isset($_SESSION['login'])){
  4.            $login = $_SESSION['login'];
  5.            echo 'Witaj '.$login.'!';
  6.            }
  7.            else {
  8.            echo 'Niestety, nie masz praw do przeglądania tej strony!';
  9.            }
  10.            ?>


Ale ten skrypt mam w tabeli. Przeniosłem skrypt na początek pliku i nie wyświetla się nic po zalogowaniu. Tylko te tabele. A co do tego zapisu w Notepadzie, to powiedz mi dokładniej jak to się robi, bo nie mogę znaleźć
l0ud
Podejrzewam że zapomniałeś o session_start() w pliku index.php

W notepadzie++ masz taką opcję: Konwertuj na utf8 bez BOM w menu format smile.gif
Gallareton
Jest jeszcze inna opcja, ktorej ja bardzo czesto uzywam. Na poczatku skryptu wpisz funkcje ob_start(); a na samym koncu ob_enf_flush(); i wszystko na ten temat. Mozesz wysylac headerow ile chcesz (ja w funkcjach uzywam headerow do odswiezenia strony, czesto po kilka na strone mam).
vegeta
Problem rozwiązany już daaawno temu winksmiley.jpg Thx
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.