2014-09-10 2 views
2

Я новичок в PHP. Я создаю страницу login.php. Я создал таблицу в базе данных MySQL. Имя базы данных: школа имя таблицы: пользователиPHP Вход и подключение к MySql

Я спас username = admin и pass= 123

Я сейчас пытаюсь подключиться к базе данных и пытаюсь проверками ввода информации из базы данных перед доступом к странице «администратору. PHP»

<?php 
error_reporting(E_ERROR); 
global $link; 

$servername='localhost'; 
$dbname='school'; 
$dbusername='root'; 
$dbpassword=''; 
$table_Name="users"; 

$link = mysql_connect($servername,$dbusername,$dbpassword); 

if (!$link) { 
die('Could not connect: ' . mysql_error()); 
} 
else 
{ 
mysql_select_db($dbname,$link) or die ("could not open db".mysql_error()); 
} 

?> 

Получение входных данных из этого кода

<?php 
    $my_user = $_POST['user']; 
    $my_password = $_POST['password']; 
?> 

пытается это

$signin = mysql_query("SELECT FROM users where username = &my_user") 
or die("SELECT Error:  ".mysql_error()); $num_rows = mysql_num_rows($signin); 

Теперь любезно объяснить с кодом, как я могу подключить базу данных и проверить информацию, и, если его правильно страница должна перенаправлять на admin.php странице

+0

Ну, что вы пробовали до сих пор, а? – iswinky

+4

Также не используйте 'mysql_ *' функции, они устарели. Используйте 'PDO' или' mysqli' вместо – iswinky

+0

обновите это в своем вопросе, а не публикуйте в комментариях –

ответ

0
if(mysql_num_rows(mysql_query("select * from users where username='$my_user' and pass='$my_password'"))>0) { 

    header('Location:admin.php'); 
} else { 
    echo " <b> Incorrect username or password<\b>"; 
} 
+0

Вы не цитировали и не избежали ваших переменных. – Synchro

1

Это будет вставить формировать данные в базу данных:

$insert="INSERT INTO `users`(`user`,`password`) VALUES ('$my_user','$my_password') "; 
$query=mysql_query($insert,$link); 

Это выбрать данные из базы данных:

$result=mysql_query('SELECT * FROM users WHERE username='$my_user' AND password='$my_password'"); 
$sql1=mysql_query($result,$link); 
0

<?php 

    if (isset($_POST)) { 

    $my_user = $_POST['user']; 
    $my_password = $_POST['password']; 

    $con=mysql_connect("localhost","root",""); 
    if(!$con) 
    { 
     die("Database is not connected"); 
    } 
    mysql_select_db("school",$con); 
    $query="select * from users where username=$my_user and pass=$my_password"; 
    $res=mysql_query($query); 
    if(mysql_num_rows($res) > 0) 
     header('Location:admin.php'); // redirect to home page 
    else 
     echo 'Not found'; // can show some validation err 
} 
+0

Не забывайте ускользнуть. – PatrickB

0
<?php 
include('conn.php'); 
if (isset($_POST['submit'])){ 
$UserName=$_POST['user']; 
$PassWord=$_POST['pass']; 

$sql = "SELECT username,pass from login WHERE username='$UserName'and password='$PassWord'"; 

$retval = mysql_query($sql); 
if(! $retval) 
{ 
    die('Could not get data: ' . mysql_error()); 
} 
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 

if (($row['username']==$Username)and($row['pass']==$Password)){ 

header("location:admin.php"); 
         } 

} 
} 
echo "Invalid User Name and Password\n"; 

?> 
0

Start использовать PDO для подключения к базам данных. Я не проверял это, но должен дать вам представление о том, что делать.

config.php

<?php 
define('DB_TYPE', 'mysql'); 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'school'); 
define('DB_USER', 'root'); 
define('DB_PASS', ''); 
?> 

functions.php

<?php 
function validate_user_creds() { 
    try 
{ 
    $pdo = new PDO(DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME.', '.DB_USER.', '.DB_PASS); 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    header('Location: admin.php'); 
    exit(); 
} 
catch (PDOException $e) 
{ 
    $error = 'Unable to connect to the database server.'; 
    include 'error.html.php'; 
    exit(); 
} 
} 
?> 

login.php

<?php 
require 'config.php'; 
require 'functions.php'; 

if ($_POST['user'] === DB_NAME && $_POST['password'] === DB_PASS) { 
    validate_user_creds(); 
} 

?> 
0

Использование PDO с подготовленными операторами при доступе к базам данных в PHP, так как он помогает против SQL-инъекция. Посмотрите на http://php.net/manual/en/intro.pdo.php.

Редактировать: Ответ Уэйн просто запутан. В login.php он проверяет администратора, сравнивая имя пользователя с именем базы данных и паролем пользователя с паролем базы данных. Я не рекомендую его, и это не имеет особого отношения к тому, что вы опубликовали.

Я бы пошел с ответом Патрика.

0

Обычно с MySQL (рекомендуется!)

<?php 

error_reporting(E_ERROR); 

$error = false; 
if(isset($_POST['login'])) 
{ 
    $servername = 'localhost'; 
    $dbname  = 'school'; 
    $dbusername = 'root'; 
    $dbpassword = ''; 
    $table_Name = 'users'; 

    $link = mysql_connect($servername, $dbusername, $dbpassword) or die('Could not connect: ' . mysql_error()); 

    mysql_select_db($dbname, $link) or die ('could not open db' . mysql_error()); 

    $my_user = $_POST['user']; 
    $my_password = $_POST['password']; 

    $signin = mysql_query("SELECT * FROM `users` WHERE `username` = '" . mysql_real_escape_string($my_user) . "' AND `password` = '" . mysql_real_escape_string($my_password) . "' LIMIT 1;") 
       or die('SELECT Error: '.mysql_error()); 
    $num_rows = mysql_num_rows($signin); 

    mysql_close($link); 

    if($num_rows) 
    { 
     header('Location: admin.php'); 
    } 
    else 
    { 
     $error = 'Unknown login!'; 
    } 
} 

?><html><head><title>Login</title></head><body> 
    <form action="#" method="post"> 
     <?php if($error !== false) { echo '<p>' . $error . '</p>'; } ?> 
     <input name="user" type="text" size="255" /> 
     <input name="password" type="text" size="255" /> 
     <button type="submit" name="login">Login</button> 
    </form> 
</body></html> 

PDO/MySQLi

<?php 

error_reporting(E_ERROR); 

$error = false; 
if(isset($_POST['login'])) 
{ 
    $servername = 'localhost'; 
    $dbname  = 'school'; 
    $dbusername = 'root'; 
    $dbpassword = ''; 
    $table_Name = 'users'; 

    $link = new mysqli($servername, $dbusername, $dbpassword, $dbname); 

    if (mysqli_connect_errno()) 
    { 
     printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 

    $my_user = $_POST['user']; 
    $my_password = $_POST['password']; 

    if(!($signin = $link->prepare('SELECT * FROM `users` WHERE `username` = ? AND `password` = ? LIMIT 1;'))) 
    { 
     printf("Select Error: %s\n", $link->error); 
     exit(); 
    } 

    $signin->bind_param('ss', $my_user, $my_password); 
    if($signin->execute()) 
    { 
     $signin->store_result(); 
     $num_rows = $signin->num_rows; 

     if($num_rows) 
     { 
      header('Location: admin.php'); 
     } 
     else 
     { 
      $error = 'Unknown login!'; 
     } 
    } 

    $link->close(); 
} 

?><html><head><title>Login</title></head><body> 
    <form action="#" method="post"> 
     <?php if($error !== false) { echo '<p>' . $error . '</p>'; } ?> 
     <input name="user" type="text" size="255" /> 
     <input name="password" type="text" size="255" /> 
     <button type="submit" name="login">Login</button> 
    </form> 
</body></html> 
Смежные вопросы