Zaczynam pracę nad własnym prościutkim cms'em.
Robię logowanie w następujący sposób:
1. Formularz w którym podaję dane (login_form.php):
<?php <form name=\"login_form\" action=\"login_check.php\" method=\"post\"> <table cellspacing=\"1\" cellpadding=\"1\" border=\"0\" align=\"center\" bgcolor=\"#527aa0\"> <tr> <td id=\"wybor\"> <font size=\"2\"> <img src=\"ikony/b_search.png\" alt=\"\">   <b>Login:</b> </font> </td> <td id=\"login\"> <font size=\"2\"> <input type=\"text\" size=\"20\" name=\"login\" value=\"login\"></input> </font> </td> </tr> <tr> <td id=\"wybor\"> <font size=\"2\"> <img src=\"ikony/b_search.png\" alt=\"\">   <b>Password:</b> </font> </td> <td id=\"login\"> <font size=\"2\"> <input type=\"password\" size=\"20\" name=\"pass\" value=\"pass\"></input> </font> </td> </tr> </table> <table cellspacing=\"1\" cellpadding=\"1\" border=\"0\" align=\"center\" bgcolor=\"#527aa0\"> <td id=\"zatwierdz\"> <input type=\"submit\" name=\"zaloguj\" value=\"zaloguj\"> <input type=\"reset\" name=\"wyczyść\" value=\"wyczyść\"> <font size=\"2\"> </font> </td> </tr> </table> </form> ?>
2. Następnie przesyłam te dane do pliku sprawdzającego ich poprawność na podstawie wpisów w bazie MySQL (login_check.php):
<?php /* uproszczone logowanie */ $login = $_POST['login']; $pass = $_POST['pass']; $mysql_host = 'localhost'; $mysql_user = 'root'; $mysql_pass = ''; $mysql_db = 'intranet'; @ mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die('Nie można połączyć z serwerem MySQL'); $zapytanie = \"SELECT login, pass FROM admin_users WHERE id = '1'\"; $admin = \"$row[1]\"; $admin_pass = \"$row[2]\"; if($_POST['login'] == $admin && $_POST['pass'] == $admin_pass){ $admin = $_POST['login']; $_SESSION['login'] = $admin; $admin_pass = $_POST['pass']; $_SESSION['pass'] = $admin_pass; footer(); exit; } elseif($_POST['login'] != $admin && $_POST['pass'] != $admin_pass){ $admin = $_POST['login']; $_SESSION['login'] = $admin; $admin_pass = $_POST['pass']; $_SESSION['pass'] = $admin_pass; exit; } ?>
3. Problem jest o tyle ciekawy, że jeśli pobieram dane z bazy MySQL logowanie nie udaje się.
<?php @ mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die('Nie można połączyć z serwerem MySQL'); $zapytanie = \"SELECT login, pass FROM admin_users WHERE id = '1'\"; $admin = \"$row[1]\"; $admin_pass = \"$row[2]\"; ?>
Ale jeśli zadeklaruję nazwę usera i hasło w pliku na sztywno, czyli naprzykład:
<?php /* @ mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die('Nie można połączyć z serwerem MySQL'); $get_db = mysql_select_db($mysql_db); $zapytanie = \"SELECT login, pass FROM admin_users WHERE id = '1'\"; $row = mysql_fetch_row($zapytanie); */ $admin = 'user_1'; $admin_pass = 'pass_1'; ?>
Wówczas loguję się bez problemu :|
Proszę o pomoc
