Sprawdzanie logowania
LucKy_skiLL
08.02.2012
Najpierw utworzyłem zapytanie, które tworzy tabele users i pola login, haslo, email i gg
Panel logowania
db_fns.php Sprawdzanie danych w bazie
logowanie.php Jezeli zalogowany to wyświetla napis Jestes zalogowany i przenosi na strone głowna, jeśli nie to wyświetla nie jestes zalogowany
Niestety po wpisaniu POPRAWNYCH danych do logowania, przekierowuje mnie do pliku logowanie.php gdzie jest pusta, biała strona, gdy wpisze niepoprawne dane również to samo, proszę o pomoc.
CREATE TABLE `users` ( `login` VARCHAR( 30 ) NOT NULL, `haslo` VARCHAR( 30 ) NOT NULL, `email` VARCHAR( 30 ) NOT NULL, `gg` VARCHAR( 30 ) NOT NULL, PRIMARY KEY ( `login` ) );
Panel logowania
<form action='logowanie.php' method='post'><br> Login: <input type="text" name="login" id="login"><br><br> Hasło: <input type="password" name="haslo" id="haslo"><br><br> <input type="submit" name="zaloguj" id="zaloguj" value="Zaloguj">
db_fns.php Sprawdzanie danych w bazie
<?php function db_connect() { $conn = mysql_connect("localhost", "login", "haslo"); if(!$conn) { echo mysql_error(); exit; } if(!$db = mysql_select_db("nazwabazy")); { echo mysql_error(); exit; } return $conn; } function get_user($userLogin,$userHaslo) { db_connect(); $query = sprintf("SELECT * FROM users WHERE login='$userLogin' AND haslo='$userHaslo'"); $result = mysql_query($query); $row = mysql_fetch_assoc($result); return $row; } ?>
logowanie.php Jezeli zalogowany to wyświetla napis Jestes zalogowany i przenosi na strone głowna, jeśli nie to wyświetla nie jestes zalogowany
<?php session_start(); include ("db_fns.php"); $row = get_user($_POST['login'],$POST['haslo']); if($row) { $_SESSION['login'] = $row['login']; $_SESSION['haslo'] = $row['haslo']; header("Location: index.php"); exit; echo "jestes zalogowany"; } else { echo "Nie jestes zalogowany"; } ?>
Niestety po wpisaniu POPRAWNYCH danych do logowania, przekierowuje mnie do pliku logowanie.php gdzie jest pusta, biała strona, gdy wpisze niepoprawne dane również to samo, proszę o pomoc.
Portek
08.02.2012
error_reporting(E_ALL);
I jazda. Do tego takie zapytanie, bo nóż mi się w kieszeni otwiera jak sobie pomyślę o ostatnim Twoim temacie...
ALTER TABLE `users` ADD UNIQUE (`login` ,`email`);
LucKy_skiLL
08.02.2012
Notice: Undefined variable: POST in /home/luckyskill/public_html/php/logowanie.php on line 6
$row = get_user($_POST['login'],$POST['haslo']);
Fili:P
08.02.2012
To raczej nie pomoże, ale zamień:
na:
Jak nie pomoże to sory
<form action='logowanie.php' method='post'><br>
na:
<form action='logowanie.php' method='POST'><br>
Jak nie pomoże to sory
LucKy_skiLL
08.02.2012
To raczej nie pomoże, ale zamień:
<form action='logowanie.php' method='post'><br>
na:
<form action='logowanie.php' method='POST'><br>
Jak nie pomoże to sory
Nie pomogło, błąd wynika z niezdefiniowania,
ELOS
08.02.2012
to nie jest błąd tylko ostrzeżenie dopisz na końcu:
Powinno zadziałać.
<?php ini_set( 'error_reporting', E_ALL ^ E_NOTICE );?> <?php ini_set( 'display_errors', '0' );?>
Powinno zadziałać.
G[o]Q
08.02.2012
Powinno zadziałać.
a ty powinienes siedziec cicho zamiast szerzyc tutaj herezje
nie
$POST['haslo']
tylko
$_POST['haslo']
LucKy_skiLL
09.02.2012
Ok zmieniłem, i nadal jest biała strona bez niczego po logowaniu, mimo iż poprawiłem to i jest dopisane
error_reporting(E_ALL);
sebul
09.02.2012
A ja tylko zadam jedno pytanie. Który to już z kolei temat praktycznie o tym samym?
G[o]Q
09.02.2012
ktos sie nie uczy na wlasnych bledach
sluchając ludzi zeby wylaczyc raportowanie błędów co bylo skrajną głupotą pozbawiles sie informacji dlaczego teraz skrypt nie dziala
sluchając ludzi zeby wylaczyc raportowanie błędów co bylo skrajną głupotą pozbawiles sie informacji dlaczego teraz skrypt nie dziala
LucKy_skiLL
09.02.2012
ktos sie nie uczy na wlasnych bledach
sluchając ludzi zeby wylaczyc raportowanie błędów co bylo skrajną głupotą pozbawiles sie informacji dlaczego teraz skrypt nie dziala
Nie, ponieważ robiąc ten sam błąd czyli zamiast $_POST dałem $POST, błąd jest, po naprawie błędu nie ma nic w pliku logowanie.php
@@DOWN
Miało być nic, a nie nick
G[o]Q
09.02.2012
po naprawie błędu nie ma nick w pliku logowanie.php
a ja po Polski czytać nie umieć
Fili:P
09.02.2012
Zamień:
na
Chyba dlatego była pusta strona bez napisu
if($row)
{
$_SESSION['login'] = $row['login'];
$_SESSION['haslo'] = $row['haslo'];
header("Location: index.php");
exit;
echo "jestes zalogowany";
}
na
if($row)
{
$_SESSION['login'] = $row['login'];
$_SESSION['haslo'] = $row['haslo'];
header("Location: index.php");
echo "jestes zalogowany";
exit;
}
Chyba dlatego była pusta strona bez napisu
LucKy_skiLL
09.02.2012
Zamień:
if($row)
{
$_SESSION['login'] = $row['login'];
$_SESSION['haslo'] = $row['haslo'];
header("Location: index.php");
exit;
echo "jestes zalogowany";
}
na
if($row)
{
$_SESSION['login'] = $row['login'];
$_SESSION['haslo'] = $row['haslo'];
header("Location: index.php");
echo "jestes zalogowany";
exit;
}
Chyba dlatego była pusta strona bez napisu
Nie pomogło, dalej pusta strona, Go[Q] tam popełniłem literówkę, miało być nic, a nie nick.
G[o]Q
09.02.2012
usun to header i wtedy sprawdz bo przekierowujesz goscia do index.php a potem mu cos wyswietlasz co jest bez sensu tak jak ten exit
LucKy_skiLL
09.02.2012
usun to header i wtedy sprawdz bo przekierowujesz goscia do index.php a potem mu cos wyswietlasz co jest bez sensu tak jak ten exit
Usunąłem, dalej nic się nie dzieje.
LucKy_skiLL
10.02.2012
<?php session_start(); include ("db_fns.php"); $row = get_user($_POST['login'],$_POST['haslo']); error_reporting(E_ALL); if($row) { $_SESSION['login'] = $row['login']; $_SESSION['haslo'] = $row['haslo']; echo "jestes"; error_reporting(E_ALL); } else { echo "Nie ma Cie"; error_reporting(E_ALL); } error_reporting(E_ALL); ?>
JabLuszko
10.02.2012
1. error_reporting wystarczy raz, zanim wywołasz session_start();
2. Strona zwraca 500 czy 200 jako status?
3. Masz dostęp do error.log na hostingu - tam się coś pojawia?
Edited by JabLuszko, 10.02.2012 01:06.
<?php error_reporting(E_ALL); ini_set("display_errors", 1); session_start(); -ciach,reszta kodu-
2. Strona zwraca 500 czy 200 jako status?
3. Masz dostęp do error.log na hostingu - tam się coś pojawia?
Edited by JabLuszko, 10.02.2012 01:06.
G[o]Q
10.02.2012
po pierwsze powiedz co to jest get_user po drugie nie rozumiem po co dajesz to raportowanie ale ok i po trzecie wyswietl sobie print_r to $row i zobacz co tam masz tylko wyswietlaj przed ifem