2015-05-29 2 views
-2

Я создал регистрационную форму с php или mysql, но у нее есть проблема. Когда я вхожу в систему и нажимаю submit, я вижу пустой сайт. Это обращение страница формы:

<?php 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'loginform'); 
define('DB_USER','user'); 
define('DB_PASSWORD','pass'); 

    $con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
    $db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 
/* 
    $ID = $_POST['user']; 
    $Password = $_POST['pass']; 
    */ 
    function SignIn() 
    { 
    session_start(); //starting the session for user profile page 
    if(!empty($_POST['user'])) //checking the 'user' name which is from index.html, is it empty or have some text 
{ 
$query = mysql_query("SELECT * FROM UserName where userName = ".$_POST['user']." AND pass = ".$_POST['pass'].") or die(mysql_error()); 
$row = mysql_fetch_array($query) or die(mysql_error()); 
if(!empty($row['userName']) AND !empty($row['pass'])) 

    { 
$_SESSION["a"] = "a";   
$_SESSION['user'] = $_POST['user']; 
$_SESSION['userName'] = $row['pass']; 
      echo "Succesfully login, redirecting to member page."; 
header("Location: http://192.168.100.13/member"); 

} 
    else 
    { 
      echo "Wrong password or Name try again"; 
    } 
    } 
    } 
    if(isset($_POST['submit'])) 
    { 
    SignIn(); 
    } 
    if(!isset($_POST['submit'])) 
    { 
    header("Location: http://192.168.100.13/login"); 
} 
?> 

Mysql стол выглядел как этот

+------------+----------+------+ 
| UserNameID | userName | pass | 
+------------+----------+------+ 
|   1 | user  | pass | 
+------------+----------+------+ 

Я думаю, что проблема в строке 9 в коде PHP, потому что я побежал код с CodingGround.

+1

Примечание: MySQL Пб осуждается. Вместо этого используйте mysqli или PDO. Ваш скрипт также уязвим для SQL-инъекций. – AbcAeffchen

+0

Что такое «login» в «header» («Location: http://192.168.100.13/login») ;? Это файл? Это каталог? Может быть, «login» нуждается в расширении типа «.php», если это каталог, возможно, он должен иметь файл внутри named index.php. –

+0

вы также должны хранить только безопасные хеш-значения вместо исходного пароля в своей базе данных. Используйте php [password_hash] (http://php.net/) manual/en/function.password-hash.php) здесь. – AbcAeffchen

ответ

0

Похоже, у вас есть цитата, где вы не должны, и не хватает их там, где они должны быть.

$query = mysql_query("SELECT * FROM UserName where userName = ".$_POST[user]." AND pass = ".$_POST[pass].") or die(mysql_error()); 

Эта линия должна быть:

$query = mysql_query('SELECT * FROM UserName where userName = "' . $_POST['user'] . '" AND pass = "' . $_POST['pass'] . '"') or die(mysql_error()); 
+1

'$ _POST [user]' также не выглядит действительным, пока 'user' не определен как константа. должен быть '$ _POST ['user']'. – AbcAeffchen

+0

Хороший вопрос. Я просто пошел на очевидный. Я обновлю. Спасибо! –

+0

Теперь не отображается пустой экран, теперь показывающий: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' at lin e 1 – jusola