←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

MySQL
Sprawdzanie logowania

  • +
  • -
LucKy_skiLL - zdjęcie LucKy_skiLL 08.02.2012

Najpierw utworzyłem zapytanie, które tworzy tabele users i pola login, haslo, email i gg


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.
Odpowiedz

  • +
  • -
Portek - zdjęcie 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`);
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie 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']);
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 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
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie 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,
Odpowiedz

  • +
  • -
ELOS - zdjęcie ELOS 08.02.2012

to nie jest błąd tylko ostrzeżenie dopisz na końcu:
<?php ini_set( 'error_reporting', E_ALL ^ E_NOTICE );?>
<?php ini_set( 'display_errors', '0' );?>

Powinno zadziałać.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 08.02.2012

Powinno zadziałać.


a ty powinienes siedziec cicho zamiast szerzyc tutaj herezje

nie

$POST['haslo']

tylko
$_POST['haslo']
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie 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);
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 09.02.2012

A ja tylko zadam jedno pytanie. Który to już z kolei temat praktycznie o tym samym? :o
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie 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
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie 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
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 09.02.2012

po naprawie błędu nie ma nick w pliku logowanie.php


a ja po Polski czytać nie umieć
Odpowiedz

  • +
  • -
Fili:P - zdjęcie Fili:P 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
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie 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.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie 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
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie 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.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 09.02.2012

pokaz caly kod jak teraz wygląda bo to powoli sie robi smieszne xD
Odpowiedz

  • +
  • -
LucKy_skiLL - zdjęcie 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);

?>

Odpowiedz

  • +
  • -
JabLuszko - zdjęcie JabLuszko 10.02.2012

1. error_reporting wystarczy raz, zanim wywołasz session_start();
<?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?
Użytkownik JabLuszko edytował ten post 10.02.2012 01:06
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie 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
Odpowiedz