2014-03-01 58 views
1

讓我們說,我想在php代碼中更改密碼,然後它將通過使用javascript進行驗證。在它返回到我的索引頁面之前它將在索引頁面上彈出。我該怎麼做?你可以建議的任何技巧? :)如何在php中添加驗證(javascript)?

<?php 
    include('config2.php'); 
    error_reporting(E_ERROR | E_PARSE); 
    if (mysqli_connect_errno()){ 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
    $val = $_GET['val1']; 
    session_start(); 
    $ak = $_SESSION['autokey']; 

    $sql = "UPDATE tbl_user SET password = '". md5($val) ."' WHERE autokey = '$ak'"; 
    mysql_query($sql); 

    header("location:index"); 
?> 

在此先感謝:)

+3

你哈希你的密碼錯誤。而不是md5使用[password_hash()](http://php.net/password_hash)。 md5不適合散列密碼。 – Mike

+0

其實這不是我的問題:| – Lestr1992

+2

另外,你正在混合mysql_ *和mysqli_ * up。你實際使用哪一個?我希望mysqli,因爲ext/mysql已被棄用。 – Mike

回答

3

正如評論說,你可以改變你的代碼塊這樣的..

$sql = "UPDATE tbl_user SET password = '". md5($val) ."' WHERE autokey = '$ak'"; 
mysql_query($sql); 
if(mysql_affected_rows()) 
{ 
    echo "<script>alert('Password was successfully changed !');</script>"; 
    echo "<script>window.location='index.php'</script>"; 
} else 
{ 
    echo "<script>alert('Password was not changed');</script>"; 
    echo "<script>window.location='index.php'</script>"; 
} 

..你是混合了mysql_*mysqli_*。首先改變。

Sidenote:切換到PreparedStatements更好地防止SQL注入攻擊!

+1

謝謝!有用 :) – Lestr1992