2013-09-30 7 views
0

Итак, быстрое введение ... Я пытаюсь создать систему баз данных для локального веб-сайта, размещенного на моем компьютере.Ошибка PHP 500 & Post возвращает пустую строку

У меня есть сценарий входа в PHP, и я столкнулся с ошибкой, которая показана внизу этого вопроса.

Я запускаю это на ОС Debian и устанавливаю PHP5 вместе с Apache2 и MySQL. Я не могу найти журнал ошибок как для Apache, так и для PHP.

При попытке получить '$ _POST [' Anything ']', он возвращает пустую строку.

Это мой код:

<?php 
ob_start(); 
$host="localhost"; 
$username="MySQLUser"; 
$password="*************"; 
$db_name="test"; 
$tbl_name="members"; 
mysql_connect("$host", "$username", "$password") or die("Cannot connect"); 
mysql_select_db("$db_name")or die("Cannot select DB"); 
$myusername=$_POST["vuser"]; 
$mypassword=$_POST["vpass"]; 
$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 
$mypassword = md5(md5(md5(md5(md5(md5($mypassword)))))); // This is for tests. 
$sql="SELECT * FROM $tbl_name WHERE Username='$myusername' and Password='$mypassword'"; 
$result=mysql_query($sql); 
$count=mysql_num_rows($result); 
if($count==1){ 
    session_register("vuser"); 
    session_register("vpass"); 
    header("location:login_success.php"); 
} else { 
    echo "Wrong Username or Password"; 
} 
ob_end_flush(); 
?> 

Я даже изменил

эхо "Неправильное имя пользователя или пароль";

в

эхо "Неправильное имя пользователя или пароль, $ MyPassword и $ MyUserName, $ _POST [ 'Vuser'] и $ _POST [ 'vpass']";

И vuser, vpass показаны как пробелы. Я повторяю имя пользователя и пароль, чтобы прочитать его. В основном это для тестов. (Это, прежде чем она сломалась)

После того как я сделал что-то, я понятия не имею, что ... Это то, что я получаю: Received image

То, что я спрашиваю, почему это $ _POST вещь, не показывающая данные и в чем проблема с страницей ошибок?

+1

Проверьте свои журналы ошибок. –

+0

Пожалуйста, не повторяйте пароль пользователя. –

+0

Пища для размышлений. Независимо от того, сколько раз вы MD5 ваш 'md5', он все равно небезопасен. –

ответ

1

Не уверен, что не смог проверить его сейчас. Немного занят, но просто попробуйте удалить одиночные кавычки вокруг имени пользователя и пароля, как в приведенном ниже запросе:

$sql="SELECT * FROM $tbl_name WHERE Username=$myusername and Password=$mypassword"; 

или использовать ниже:

$sql="SELECT * FROM $tbl_name WHERE Username='". $myusername ."' and Password='" . $mypassword . "'"; 
+0

Возможно даже использование '$ sql = (" SELECT * FROM $ tbl_name WHERE Username = '". $ Myusername."' И Password = '". $ Mypassword."' ");' Внутри круглых скобок. Я верю, что не делаю этого, открывает дверь для инъекций. –

+0

также, ob_start/ob_end_flush вещи не нужны – Rajesh

+0

Thankyou! Это то, что мне нужно было исправить: D – KeirDavis

0

Ok ..

Не используйте «session_register», согласно php.net, эта функция УДАЛЕНА с PHP 5.3.0 и УДАЛЕНА с PHP 5.4.0.

<?php 

// initialize session 
session_start(); 

define('DB_HOST', 'my.host.com'); 
define('DB_USER', 'youruser'); 
define('DB_PASS', 'yourpass'); 
define('DB_NAME', 'dbname'); 

// connect 
mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Cannot connect"); 
mysql_select_db(DB_NAME) or die("Cannot select DB"); 


function clean($value) 
{ 
    if (get_magic_quotes_gpc()) { 
     $value = mysql_real_escape_string(stripslashes($value)); 
    } else { 
     $value = mysql_real_escape_string($value); 
    } 
    return $value; 
} 


$user = isset($_POST['vuser']) ? trim($_POST['vuser']) : null; 
$pass = isset($_POST['vpass']) ? trim($_POST['vpass']) : null; 

if (!$user || !$pass) { 
    echo 'Wrong username or password'; 
    die; 
} 

$user = clean($user); 
$pass = clean($pass); 

$sql = sprintf("select * from members where username = '%s' and password = '%s'", $user, $pass); 

$query = mysql_query($sql); 

if ($query) { 

    $data = mysql_fetch_array($query, MYSQL_ASSOC); 

    if (sizeof($data) > 0) { 
     // save sessions... 
     // redirect... 
     // user ok 
     die; 
    } 

} 

echo 'Incorrect!'; 
die; 
Смежные вопросы