Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z logowaniem
Forum PHP.pl > Forum > PHP
siurek
znalazłem kod do logowania na strone uzupełniłem go trochę sam i mam problem bo jak wpisze dobre hasło to wyrzuca że jestem niezalogowani i że jest błąd w 19 linijce sidze już pare godzin nad tym i niewiem co źle :/
CODE
<?php session_start(); ?>
<html>
<head>
<title> Logowanie </title>
</head>
<body>
<center>

<?php

include 'conf.php';
mysql_connect($host,$username,$password);
$user = $_POST['login'];
$passmd5 = md5($_POST['haslo']);



$result = mysql_query("SELECT haslo FROM usr WHERE login=\"$user\"");
$row = mysql_fetch_array($result, MYSQL_NUM);
$passorg = $row[1];

if($passmd5 == $passorg)
{
echo '<CENTER>';
printf("<H1>Zostałeś pomyślnie zalogowany !!!</H1>");
printf("<a href=\"admin2.php\">Dalej >>></a>");
$_SESSION['log'] = 1;
$_SESSION[‘admin’] = $row[2];
$_SESSION[‘login’] = $row[0];
echo '</CENTER>';
}
else
{
echo '<CENTER>';
printf("<H1>Hasło się nie zgadza !!!</H1><BR>");
printf("<a href=\"admin.php\">Powrót</a>");
echo '</CENTER>';
}
?>
</center>
</body>
</html>
kossa
Cytat
$passorg = $row[1];


  1. <?php
  2. $passorg = $row[0]; //tablice liczy się od 0
  3. ?>


dalej już nie analizowałem

Łukasz
siurek
nic to niedało doszedłem wkońcu że mienna $passorg jest pusta czyli zapytanie
SELECT haslo FROM usr WHERE login = \"$user\" jest zle to jakie bedzie dobre?
toolmaniak
Czekaj, aby otrzymać hasło - jedziesz po md5 ze zmiennej z POST.
Kod
$passmd5 = md5($_POST['haslo']);



A zmienna użytkownika to co to jest, globalna czy co..? Nie wiem może, coś zgubiłem po drodze.


Kod
$result = mysql_query("SELECT haslo FROM usr WHERE login='".$_POST[user]."'");
siurek
nic niedalo :|
toolmaniak
Pisałeś cos o błędzie w 19 linijce mógłbyś go po prostu strzelić tutaj, a i fajnie by było gdybyś dał również kod admin.php przynajmniej sam formularz...
siurek
zmienilo sie na 20 linijke tongue.gif

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in adres/jakisplik.php on line 20

CODE

<?php session_start(); ?>
<html>
<head>
<title> Logowanie </title>
</head>
<body>
<center>
<br><br>
Wpisz poniżej swoją nazwę użytkownika oraz hasło: <br><br>
<form name="login" method="post" action="przetlogin.php">
<input name="username" type="text"><br>
<input name="password" type="password"><br>
<br><br>
<input type="Submit" value="Wyślij">

<input type="Reset" value="Wyczyść">
</form>
</center>
</body>
</html>




konraddo
w formularzu inputa nazwales username a w pliku php pobierasz nazwe usera $user = $_POST['login']; co powoduje ze twoje zapytanie jest zle a mysql_fetch_array sie wykrzacza
siurek
juz wczesniej to zlukalem zanim to napisales i to poprawilem ;)teraz zostala ta linia 20 :/
toolmaniak
No jeżeli zaminiłeś

$user=$_POST['login'] na $user=$_POST['username'] i wsadziłeś takie zapytanie

$result = mysql_query("SELECT haslo FROM usr WHERE login=' ".$user." ' ");

i nadal cos nie działa, to może sprawdź co masz w tym conf.php czy nazwa bazy nie jest może skopana, albo w tabeli kolumny się inaczej nie nazywają niz w zapytaniu, lub co gorsza czy w ogóle dałeś uprawnienia do SELECT chociażby na tabeli usr. A może właśnie nazwa tabeli jest wadliwa. Sprawdź. Jakby co ja jeszcze jestem...
siurek
moim zdaniem to niema znaczenia czy sa te kropki czy nie i 2 razy dane cudzyslowie ' ".$user." '
plik conf.php dziala napewno bo z niego kozysta tez ksiega gosci i ona dziala tabele sa napewno dobre
a w tabeli usr mam tak:
ID (int6) login (varchar10) haslo (varchar34) admin (int1) gg (varchar 10) www(varchar 30)

a z uprawnieniami niewiem o co ci chodzi :|

bo ten skrypt ma zalogować ( z haslem w md5) i podzielic na sesje niezalogowany zalogowany user
zalogowany admin i do tego mi tabela admin ktora ma miec wartosc 0 lub 1 w zaleznosci od rangi usera...
UDAT
Jakbyś zobaczył co pokazuje mysql_error" title="Zobacz w manualu PHP" target="_manual to zobaczyłbyś, że zapomniałeś wybrać bazy danych.
siurek
no fakt zapomnialem 1 linijki juz wstawione blad o lini 20 znikl ale nadal zmienna $passorg jest pusta (testowalem z rozynm $row)
CODE
<?php session_start(); ?> <html> <head> <title> Logowanie </title> </head> <body> <center> <?php include 'conf.php';$user = $_POST['username']; $pass2 = $_POST['password']; $passmd5 = md5($pass2); mysql_connect($host,$username,$password); @mysql_select_db($database) or die("Nie znaleziono bazy danych");$result = mysql_query("SELECT haslo FROM usr WHERE login = \"$user\""); $row = mysql_fetch_array($result, MYSQL_NUM); $passorg = $row[1]; if($passmd5 == $passorg) { echo '<CENTER>'; printf("<H1>Zostałeś pomyślnie zalogowany exclamation.gif!</H1>"); printf("<a href=\"admin2.php\">Dalej >>></a>"); $_SESSION['log'] = 1; $_SESSION['admin'] = $row[2]; $_SESSION['login'] = $row[0]; echo '</CENTER>'; } else { echo '<CENTER>'; printf("<H1>Hasło się nie zgadza exclamation.gif!</H1><BR>"); printf("<a href=\"admin.php\">Powrót</a>"); echo"<br><br>"; echo"$passmd5"; echo"<br>b<br>"; echo"$passorg"; echo '</CENTER>'; } ?> </center> </body> </html>
no mniejsza juz sam se poradziłem smile.gif temat do zamkniecia dzieki za zainteresowanie winksmiley.jpg
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.