2013-06-05 157 views
-4
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 
<body> 
<form id="form1" name="form1" method="post" action="admin page.php"> 
    <p> 
    <label for="Name">Name</label> 
    <input type="text" name="Name" id="Name" /> 
    </p> 
    <p> 
    <label for="Age">Age </label> 
    <input type="text" name="Age" id="Age" /> 
    </p> 
    <p> 
    <label for="Email">Email</label> 
    <input type="text" name="Email" id="Email" /> 
    </p> 
    <p> 
    <label for="DOB">DOB</label> 
    <input type="text" name="DOB" id="DOB" /> 
    </p> 
    <p> 
    <input type="button" name="add" id="add" value="Add" onclick="func();" /> 
    </p> 
</form> 

<?php 

function func() 
{ 
    $con = mysql_connect("127.0.0.1","root","") or die(mysql_error()); 
    $db = mysql_select_db("lr") or die(mysql_error()); 
    $sql=mysqli_query("INSERT INTO Persons (Name,age,Email,DOB) 
             VALUES ('&Name', '&Age','&Email','&DOB')"); 
    if($sql){echo "Welcome ".$Name.",you may Login now! ";} 

    mysql_close($con);  
} 

?> 
</body> 

這是我的代碼,我想在這個相同的頁面上運行我的查詢!我不能在其他頁面上做,因爲我想在這個頁面遞歸地添加用戶。我點擊函數func來做到這一點,但它不工作。通過表格更新數據庫

+1

爲什麼你總是想要插入''&名稱','&年齡','&電子郵件','&DOB''這對每個用戶都是一樣的......。和$和$有區別我想你想用$ –

+0

你得到的錯誤是什麼? – Yogus

+0

你看過你的代碼嗎?你正在混合所有的東西。點擊按鈕不能調用'php'函數。爲此,你必須使用ajax。 –

回答

2

嘗試是這樣的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 
<body> 
<?php 
if(isset($_POST['add'])) 
{ 
$dbhost = 'localhost'; 
$dbuser = 'root'; 
$dbpass = 'rootpassword'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 

    $name= $_POST['Name']; 
    $age= $_POST['Age']; 
    $email= $_POST['Email']; 
    $dob= $_POST['DOB']; 

$sql = "INSERT INTO employee ". 
     "(name,age, email, dob) ". 
     "VALUES('$name','$age','$email','$dob')"; 
mysql_select_db('test_db'); 
$retval = mysql_query($sql, $conn); 
if(! $retval) 
{ 
    die('Could not enter data: ' . mysql_error()); 
} 
echo "Entered data successfully\n"; 
mysql_close($conn); 
} 
else 
{ 
?> 
<form id="form1" name="form1" method="post" action="<?php $_PHP_SELF ?>"> 
    <p> 
    <label for="Name">Name</label> 
    <input type="text" name="Name" id="Name" /> 
    </p> 
    <p> 
    <label for="Age">Age </label> 
    <input type="text" name="Age" id="Age" /> 
    </p> 
    <p> 
    <label for="Email">Email</label> 
    <input type="text" name="Email" id="Email" /> 
    </p> 
    <p> 
    <label for="DOB">DOB</label> 
    <input type="text" name="DOB" id="DOB" /> 
    </p> 
    <p> 
    <input type="submit" name="add" id="add" value="Add" /> 
    </p> 
</form> 
<?php 
} 
?> 
</body> 
</html> 
+1

您的代碼容易受到** mysql注入**在mysql_ *'你可以使用'mysql_real_escape_string()' –

+0

@NullPoiиteя是的我知道。它只是用戶的一個例子。如果可以在服務器上使用,他可以修改並使用mysqli或PDO – Yogus

2

嘗試在你的代碼,這個修正/修改:

  • 行動形式: <form id="form1" name="form1" method="post" action="admin page.php"> - 無空白管理和page.php文件之間!

  • func()。你不能用onclick調用php。只要刪除該行onclick="func();"。表單提交操作將執行您想要的操作。並刪除func() {}並保留php

  • INSERT:將&更改爲$並連接您的變量。例如,我強烈建議您爲表單輸入添加一些驗證以避免sql注入。

  • 從輸入字段獲取變量:使用$Age = $_POST["Age"]從表單文章中獲取變量。

  • 您的代碼很容易受到sql injection如果你只是更換&到查詢您需要正確逃生mysql_*所有請求$可以使用mysql_real_escape_string()

  • Mysql_* api is deprecated所以無論使用PDOMySQLi和國際海事組織使用PDO

  • 你也在混合兩種不同的API mysqli_*mysqli_query)和mysql_* API不能工作

0

爲此,您可以使用AJAX是這樣的:

//Submit form without refreshing page 
$.ajax({ 
     type: "POST", 
     url: "update.php", 
     data: dataString, 
     success: function(){ 
      $('.success').fadeIn(200).show(); 
      $('.error').fadeOut(200).hide(); 
     } 
    }); 

請參考HEREjQuery.ajax()

DEMO

+0

請告訴如何這個答案是有幫助的....因爲它不完整 –