2015-07-05 189 views
0

我目前正在爲家庭成員編寫一個基本網頁。我以前使用過sql/php/jscript,但是我只修改了預建的git pulls(例如.mpos cryptomining pool)。這是我第一次嘗試手動構建整個事物的經驗。我有我的網站佈局,我鎖定的頁面似乎重定向到登錄就好了。但是,當我嘗試登錄時,我的腳本似乎鎖定後去我的「表單操作」(login.php)。我能夠連接到我的sql數據庫就好了(db/table /列名將在以後更改爲安全),所以我不認爲sql連接部分是問題。 (使用000webhosting現在PS,IM,所以PHP是所有似乎正常工作...任何JS代碼是很難得到正確的運行)Mysql Php登錄問題

這裏是我的login.php的片段

<?php 
mysql_connect("x", "x", "x"); 
mysql_select_db("x"); 

function Redirect($url, $permanent = false) 
{ 
if (headers_sent() === false) 
{ 
    header('Location: ' . $url, true, ($permanent === true) ? 301 : 302); 
} 

exit(); 
} 

function user_login($username, $password) 

{ 
ob_start(); 

$username = mysql_real_escape_string($username); 
$password = mysql_real_escape_string($password); 

$sql = "select * from Users where username='$username' and password ='$password' LIMIT 1"; 
$result = mysql_query($sql) or die('Error in you sql, Please Take a look.'); 

if(mysql_num_rows($result) > 0) 
{  
    $_SESSION['username'] = $username; 
    $_SESSION['loggedin'] = true; 

    $row = mysql_fetch_row($result); 

    while (ob_get_status()) 
    { 
     ob_end_clean(); 
    } 

    Redirect('http://x/locked_page.html, false'); 

} 
else 
{ 
    Redirect('http://x/login.html, false'); 

} 
} 
?> 

(間距有點不可思議遵守協議棧的標籤間距)

和我的繼承人實際登錄表單代碼

<div class="login-card"> 
     <form method="post" action="includes/login.php"> 
       <input type="username" name="username" placeholder="username"> 
       <input type="password" name="password" placeholder="password"> 
       <input type="submit" name="submit" class="login login-submit" value="Login"> 
     </form>  
     <div class="login-help"> 
       <a href="#">Register</a> • <a href="#">Forgot Password</a> 
     </div> 
    </div> 

我來實現這種安全性是相當寬鬆的,但是即時通訊只是擔心讓它首先工作......虐待增加MD5加密和更多的後續。

+0

很多不好的做法在這裏如何安裝一個CMS –

+0

@Dagon我絕對計劃清潔和sanitiz所有的代碼和輸入後,我設法讓一切工作。添加CMS可能會非常困難,因爲我正在使用000webhost作爲我的主機。我的問題目前是SESSION變量「用戶名」不是跨頁加載。 – L8NIT3TR0UBL3

+0

在000webhost你cn從他們的控制面板一鍵安裝一個CMS –

回答

2

你是不是調用該函數user_login

試試這個

$name = $_POST['username'] ; 
$password = $_POST['password'] ; 

user_login($name , $password) ; 

你應該淨化雖然數據...

編輯 - >消毒手段篩選出可能潛在的有害數據傷害你的網站

+0

所以我需要添加一個「user_login」行在我的PHP結束,只需調用該函數?大聲笑哇,我覺得愚蠢,你的意思是通過淨化數據? – L8NIT3TR0UBL3

+0

太棒了!它現在似乎正在正確運行我的腳本!然而,我有一個新的小問題(不知道我是否應該爲它打開一個新的線程....)我鎖定的頁面有一個[code] <?php session_start(); if(empty($ _ SESSION [「username」])){/ *如果沒有用戶註冊會話變量*/ header(「LOCATION:login.html」);/*重定向用戶登錄頁面*/ } ?> [code]重定向爲「鎖定」。但是,我似乎沒有一個「用戶名」會話變量傳遞給我的鎖定頁面。我的問題是我如何創建一個$ _Session變量注入元數據頭? – L8NIT3TR0UBL3

+0

ahhh我認爲我現在理解了衛生,它也刪除了像1 = 1--(總是true sqli)這樣的攻擊的可能性(或者至少限制了可能性) – L8NIT3TR0UBL3