2013-04-08 45 views
0

每次在提交按鈕上點擊兩次以獲取代碼時,也只是隨機觸發不同的代碼,這些代碼的設置方式相同但名稱不同輸入和內部的$_POST。我是否通過將輸入的名稱設置爲相同的東西來使用$_POSTPHP推送提交按鈕需要兩次來啓動代碼

這裏是你唯一的輸出name="intro"提交按鈕時if()條款,第一行是滿足碼

<?php      
//If submit form was clicked 
if(isset($_POST['intro'])) { 
    //Server side validation for security purposes 
    if($userpoints >= 100 AND $intro == 0 AND $lifeonmarsalbum == 0) { 
     mysqli_query($con,"UPDATE users SET points = points - 100 WHERE users.user_name = '$username' LIMIT 1"); 
     mysqli_query($con,"UPDATE users SET intro = 1 WHERE users.user_name = '$username' LIMIT 1"); 
    } 
} 
?> 
<form method="post" action="index.php"> 
    <?php 
    if ($userpoints >= 100 AND $intro == 0 AND $lifeonmarsalbum == 0) { 
     echo '<input type="submit" name="intro" value="100pts">'; 
    } elseif ($intro == 1 OR $lifeonmarsalbum == 1) { 
     echo '<input type="submit" name="submit" value="100pts" disabled title="You already earned this track!">'; 
    } else { 
     echo '<input type="submit" name="submit" value="100pts" disabled title="You need at least 100 points for this download">'; 
    } 
    ?> 
+0

通過使用'UPDATE ... WHERE user_name ='$ username'',您錯過了使用'MySQLi'的要點。建議使用'$ stmt = mysqli_prepare(「UPDATE ... WHERE user_name =?」); mysqli_stmt_bind_param($ stmt,「s」,$ username);'。 – Passerby 2013-04-08 04:10:11

+0

雅如果你不能說我對PHP和MySQLi完全陌生,從字面上剛開始使用它前兩天建立一個點系統與我的網站。所以我使用的一切正是我從互聯網上學到的東西。我從W3Schools獲得了mysqli代碼 – 2013-04-08 04:17:58

+0

哇,w3school在SO中的聲譽非常糟糕。人們甚至建立了[一個網站](http://w3fools.com)來「downvote」它。閱讀[PHP的指南](http://www.php.net/manual/en/mysqli.quickstart.php)可能會更好。 – Passerby 2013-04-08 04:21:37

回答

2

。很可能是您第一次加載此頁面時,該條件未得到滿足,因此沒有intro按鈕。第一次提交後,條件滿足,並在表單中獲得name="intro",然後提交然後「開始」工作。

+0

OP說他點擊提交按鈕兩次 – Amir 2013-04-08 03:56:52

+0

是的,並且?點擊一個,沒有介紹,所以沒有任何反應,除了介紹提交按鈕生成,所以第二次點擊「作品」。 OP沒有說沒有表單提交,只是有兩個點擊。 – 2013-04-08 03:58:15

+0

'點擊一個'關於什麼? OP說'提交'兩次點擊...對不起,這只是爲了澄清我 – Amir 2013-04-08 04:03:46