2014-09-28 82 views
0

我有一個表單,用戶可以使用它來更改其用戶名,但僅適用於數字!用戶名更改僅更改數字,而不是文字

用戶名類型設置爲VARCHAR,我可以手動設置文本用戶名,並且在註冊時,條目可以是使用INSERT INTO代碼的文本。

這裏的形式

<html> 
<center><h2>Username Change</h2></center> 
<body> 
<form method="post" action=""> 
<input type="text" name="something" value="<?= isset($_POST['something']) ? ($_POST['something']) : '' ?>" /> 
<input type="submit" name="submit" /> 
</form> 

而這裏的代碼

if(isset($_POST['submit'])){ 
    $newname = $_POST['something']; 
    $change = mysqli_query($con,"UPDATE users SET users.username = $newname WHERE users.id=$id4"); 
    } 

不知道我要去哪裏錯了!

+8

你意識到字符串應該用SQL引用.....但是當你使用MySQLi時,切換到使用預處理語句並綁定變量....那麼你不需要記得引用字符串或逃避你的價值,所以你也保護自己免受SQL注入 – 2014-09-28 10:05:30

+0

耶穌基督我總是錯過愚蠢的東西!謝謝! – 2014-09-28 10:09:34

回答

-1
 
    $change = mysqli_query($con,"UPDATE users SET users.username = '$newname' WHERE users.id=$id4"); 
+0

有一個公然的SQL注入問題。它解決了這個問題,但很難解決它! – Evert 2014-09-28 13:40:19

相關問題