Witam
Mam problem ze skryptem logowania. Poprawnie łączę się z bazą danych, wybieram ją, ładuje się formularz logowania i działała poprawnie większość warunków (sprawdzanie pól, poprawności wpisania hasła i loginu) niestety nawet jeśli hasło i login jest poprawne wyświetla się informacja, że dane są błędne.
Wszystko działa poprawnie na dysku z użyciem serwera KRASNAL, niestety na serwerze cba.pl już nie :/
Kod index.php:
<?
ob_start();
require_once('./config.php'); // załaczamy plik config.php
function usun($data){
GLOBAL $dbc;
if (ini_get('magic_quotes_gpc')){
$data = stripslashes($data);
}
return mysql_real_escape_string($data, $dbc);
}
if (isset($_POST['submit'])){
if (empty($_POST['login'])){
$message .= '<font class="blad">Nie podałeś loginu</font><br />';
$l = FALSE;
}else{
$l = usun($_POST['login']);
}
if (empty($_POST['haslo'])){
$message .= '<font class="blad">Nie podałeś hasła</font><br />';
$h = FALSE;
}else{
$h = usun($_POST['haslo']);
}
if ( $l && $h ){
$query1 = "SELECT Nr_konta, Haslo, Typ FROM Konta WHERE Nr_konta='$l' AND Haslo=password('$h') AND Typ='pracownik'";
$result1 = mysql_query($query1);
$row1 = mysql_fetch_array ($result1, MYSQL_ASSOC);
$query2 = "SELECT Nr_konta, Haslo, Typ FROM Konta WHERE Nr_konta='$l' AND Haslo=password('$h') AND Typ='klient'";
$result2 = mysql_query($query2);
$row2 = mysql_fetch_array ($result2, MYSQL_ASSOC);
if($row1){
session_start();
$_SESSION['username'] = $row['username'];
$_SESSION['haslo'] = $row['haslo'];
$_GET['cmd'] = 'ok';
header ("Location: admin.php?cmd={$_GET['cmd']}"); // przekierowuje nas na jaka strone chcemy
}else if ($row2)
{
session_start();
$_SESSION['username'] = $row2['username'];
$_SESSION['haslo'] = $row2['haslo'];
$_GET['cmd'] = 'ok';
header ("Location: menu.php?cmd={$_GET['cmd']}"); // przekierowuje nas na jaka strone chcemy
}
else
{
$message .= '<font class="blad">Błędne hasło lub login</font><br />';
}
mysql_close();
}else{
$message .= '<font class="blad">Spróbuj jeszcze raz</font>';
}
}
ob_end_flush();
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table align="center" border="0">
<tr>
<td align="right" class="uni_01">Login:</td>
<td><input type="text" name="login" size="30"></td>
</tr>
<tr>
<td align="right" class="uni_01">Hasło:</td>
<td><input type="text" name="haslo" size="30"></td>
</tr>
<tr>
<td align="right" class="uni_01"> </td>
<td>
<p align="center"><input style="font-weight: bold;" type="submit" name="submit" value="loguj">
</td></tr>
</table>
</form>
<div align="center">
<? if(isset($message)){
echo $message;
}
?>
</div>
Kod config.php (dane wygwiazdkowane specjalnie):
<?
$dbhost = '*****';
$dbuser = '*****'; // tutaj podajemy login do bazy
$dbpass = '*****'; // tutaj podajemy hasło do bazy
$dbname = '*****'; // nazwa bazy danych
$dbc = @mysql_connect($dbhost, $dbuser, $dbpass) or die ('Nie moge połaczyc sie z Mysql'); //łaczymy z baza
mysql_select_db ($dbname) or die ('Nie moge wybrać bazy'); //wybieramy baze danych
?>
Oraz kod tabeli z której korzysta skrypt:
CREATE TABLE Konta (
Id_konta INT NOT NULL AUTO_INCREMENT UNIQUE,
Nr_konta INT(10),
Haslo VARCHAR(32) DEFAULT 'haslo',
Id_klienta INT,
Typ VARCHAR(10);
Stan_konta FLOAT(10,2),
PRIMARY KEY (Id_konta),
FOREIGN KEY (Id_klienta) REFERENCES Klienci(Id_klienta));
Jeśli ktoś wie co może być nie tak, to proszę o pomoc bo moja wiedza w tym temacie się już wyczerpała.