2014-07-17 69 views
0

我有一个存储在MySQL数据库上的信息的HTML表单。有用!但是我想要一个只用PHP扩展完成的文件。点击按钮时我填充了数据库,但转而部署一个PHP文件,我不希望发生这种情况。如何用MySQL创建PHP/HTML表单?

这里是我的HTML代码:

<html> 
    <head></head> 
    <body> 
    <form id="form" name="form" action="insert.php" method="POST"> 
     <label id="lbluser">Name:</label> 
     <input type="text" name="name" id="name" /><br/> 
     <label id="lbllastaname">Lastname:</label> 
     <input type="text" name="lstname" id="lstname" /><br/> 
     <label id="lblmail">E-mail:</label> 
     <input type="text" name="email" id="email" /><br/> 
     <label id="lblpassword">Password:</label> 
     <input type="password" name="password" id="password" /><br/> 
     <label id="lblpassword">Repeat password:</label> 
     <input type="password" name="passwordr" id="passwordr" /><br/> 
     <button type=”submit” name=”button” value=”insert”>OK</button> 
    </form> 
    </body> 
</html> 

,这是我的PHP代码:

<?php 
$mysqli = mysqli_connect("localhost", "user", "12345", "own_bd"); 

if (mysqli_connect_errno()) { 
    printf("Problem with connection: %s\n", mysqli_connect_error()); 
    exit(); 
} 
else { 
$var_name = mysqli_real_escape_string($mysqli, $_POST['name']); 
$var_lst = mysqli_real_escape_string($mysqli, $_POST['lstname']); 
$var_mail = mysqli_real_escape_string($mysqli, $_POST['email']); 
$var_pwd = mysqli_real_escape_string($mysqli, $_POST['password']); 
$var_pwdr = mysqli_real_escape_string($mysqli, $_POST['passwordr']); 
$sql = "INSERT INTO users_tbl (Name,Lastname,Mail,Pwd,PwdR) VALUES ('".$var_name."','".$var_lst."','".$var_mail."','".$var_pwd."','".$var_pwdr."')"; 
$res = mysqli_query($mysqli, $sql); 

if ($res === TRUE) { 
    echo "User added."; 
} 
else { 
printf("Error: %s\n", mysqli_error($mysqli)); 
} 

mysqli_close($mysqli); 
} 
?> 

我怎么办呢?我希望你的帮助。

isset函数在这个脚本中不适用于我,但是如果我尝试使用这段代码,它就可以工作!

<form action="" method="post"> 
    <input type="submit" value="Click" name="addImg" /> 
</form> 
<? 
    if (isset($_POST['addImg'])) {echo "haaallloooo";} 
?> 

帮助!!!

+2

”我填的数据库,我不想要这样的事情发生。“我不太明白你的意思,对不起 – serakfalcon

+0

是的,你可以把html放在与php相同的页面 - 如果这是问题。 –

+0

serakfalcon,我不想从HTML代码中分离出PHP代码,我想说的是我想将两个代码都放在一个唯一的文件中,就像Dagon所说的那样。 – JuanGD

回答

0
<?php 
error_reporting(0); 
echo <<<EOD 

<html> 
    <head></head> 
    <body> 
    <form id="form" name="form" action="" method="POST"> 
     <label id="lbluser">Name:</label> 
     <input type="text" name="name" id="name" /><br/> 
     <label id="lbllastaname">Lastname:</label> 
     <input type="text" name="lstname" id="lstname" /><br/> 
     <label id="lblmail">E-mail:</label> 
     <input type="text" name="email" id="email" /><br/> 
     <label id="lblpassword">Password:</label> 
     <input type="password" name="password" id="password" /><br/> 
     <label id="lblpassword">Repeat password:</label> 
     <input type="password" name="passwordr" id="passwordr" /><br/> 
     <button type="submit" name="button" value="insert">OK</button> 
    </form> 
    </body> 
</html> 

EOD; 

$mysqli = mysqli_connect("localhost", "user", "12345", "own_bd"); 

if (mysqli_connect_errno()) { 
    printf("Problem with connection: %s\n", mysqli_connect_error()); 
    exit(); 
} 
else { 
$var_name = mysqli_real_escape_string($mysqli, $_POST['name']); 
$var_lst = mysqli_real_escape_string($mysqli, $_POST['lstname']); 
$var_mail = mysqli_real_escape_string($mysqli, $_POST['email']); 
$var_pwd = mysqli_real_escape_string($mysqli, $_POST['password']); 
$var_pwdr = mysqli_real_escape_string($mysqli, $_POST['passwordr']); 

if ((isset($_POST['name'])) && (isset($_POST['lstname'])) && (isset($_POST['email'])) && (isset($_POST['password'])) && (isset($_POST['passwordr']))) 
{ 
    $sql = "INSERT INTO users_tbl (Name,Lastname,Mail,Pwd,PwdR) VALUES ('".$var_name."','".$var_lst."','".$var_mail."','".$var_pwd."','".$var_pwdr."')"; 
    $res = mysqli_query($mysqli, $sql); 

if ($res === TRUE) { 
    echo "User added."; 
} 
else { 
printf("Error: %s\n", mysqli_error($mysqli)); 
} 
} 
mysqli_close($mysqli); 
} 
?> 

这就是他们两个合并成一个文件,我希望这就是你要找的。

+0

谢谢你回答路德韦斯特!但不适合我!每次检查页面时,运行PHP脚本在我的表格中添加空行:( – JuanGD

+0

@JuanGD我修复了错误并进行了测试,它应该可以正常工作 默认情况下,PHP和HTML文件是分开的,因为PHP是后端,而HTML是前端的,我个人觉得奇怪的是,你希望他们在1个文件中,因此我想知道将它们结合起来的目的是什么,也许我们可以通过更好的方式达到这个目的。代码我已经提供了上面的工作,但它并不是一个好的设计,恕我直言。 –

1

如果我明白你的要求,HTML和PHP可以在同一页面上。

请记住,更好的做法是将processnig代码放在文件的顶部。

<?php 
if(isset($_POST['button'])){ 
    $mysqli = mysqli_connect("localhost", "user", "12345", "own_bd"); 

    if (mysqli_connect_errno()) { 
     printf("Problem with connection: %s\n", mysqli_connect_error()); 
     exit(); 
    } 
    else { 
     $var_name = mysqli_real_escape_string($mysqli, $_POST['name']); 
     $var_lst = mysqli_real_escape_string($mysqli, $_POST['lstname']); 
     $var_mail = mysqli_real_escape_string($mysqli, $_POST['email']); 
     $var_pwd = mysqli_real_escape_string($mysqli, $_POST['password']); 
     $var_pwdr = mysqli_real_escape_string($mysqli, $_POST['passwordr']); 
     $sql = "INSERT INTO users_tbl (Name,Lastname,Mail,Pwd,PwdR) VALUES ('".$var_name."','".$var_lst."','".$var_mail."','".$var_pwd."','".$var_pwdr."')"; 
     $res = mysqli_query($mysqli, $sql); 

     if ($res === TRUE) { 
      echo "User added."; 
      exit(); 
     } 
     else { 
      printf("Error: %s\n", mysqli_error($mysqli)); 
     } 

    } 
    mysqli_close($mysqli); 
} 
?> 
<html> 
    <head></head> 
    <body> 
    <form id="form" name="form" action="" method="POST"> 
     <label id="lbluser">Name:</label> 
     <input type="text" name="name" id="name" /><br/> 
     <label id="lbllastaname">Lastname:</label> 
     <input type="text" name="lstname" id="lstname" /><br/> 
     <label id="lblmail">E-mail:</label> 
     <input type="text" name="email" id="email" /><br/> 
     <label id="lblpassword">Password:</label> 
     <input type="password" name="password" id="password" /><br/> 
     <label id="lblpassword">Repeat password:</label> 
     <input type="password" name="passwordr" id="passwordr" /><br/> 
     <button type="submit" name="button" value="insert">OK</button> 
    </form> 
    </body> 
</html> 
+0

感谢您的回答,Bob0t!但是,对我来说不起作用。我尝试你的代码,但不要执行PHP脚本:我需要做一些配置? – JuanGD

+0

如果我尝试这个代码,它的工作原理!

<? if(isset($ _ POST ['addImg'])){echo“haaallloooo”;} ?> – JuanGD

+0

请确保它位于.php文件中。 –

0

当我明白你正在寻找一个HTML和PHP代码都在同一个文件和答案从Bob0t。你可能需要改变这里的唯一事情是 isset($_POST['button'])isset($_POST['BtnSubmit'])并更改按钮上单击不过弯来部署PHP文件时,<button type=”submit” name=”button” value=”insert”><button type=”submit” value=”BtnSubmit”>

<?php 
if(isset($_POST['BtnSubmit'])){ 
    $mysqli = mysqli_connect("localhost", "user", "12345", "own_bd"); 

    if (mysqli_connect_errno()) { 
     printf("Problem with connection: %s\n", mysqli_connect_error()); 
     exit(); 
    } 
    else { 
     $var_name = mysqli_real_escape_string($mysqli, $_POST['name']); 
     $var_lst = mysqli_real_escape_string($mysqli, $_POST['lstname']); 
     $var_mail = mysqli_real_escape_string($mysqli, $_POST['email']); 
     $var_pwd = mysqli_real_escape_string($mysqli, $_POST['password']); 
     $var_pwdr = mysqli_real_escape_string($mysqli, $_POST['passwordr']); 
     $sql = "INSERT INTO users_tbl (Name,Lastname,Mail,Pwd,PwdR) VALUES ('".$var_name."','".$var_lst."','".$var_mail."','".$var_pwd."','".$var_pwdr."')"; 
     $res = mysqli_query($mysqli, $sql); 

     if ($res === TRUE) { 
      echo "User added."; 
      exit(); 
     } 
     else { 
      printf("Error: %s\n", mysqli_error($mysqli)); 
     } 

    } 
    mysqli_close($mysqli); 
} 
?> 
<html> 
    <head></head> 
    <body> 
    <form id="form" name="form" action="" method="POST"> 
     <label id="lbluser">Name:</label> 
     <input type="text" name="name" id="name" /><br/> 
     <label id="lbllastaname">Lastname:</label> 
     <input type="text" name="lstname" id="lstname" /><br/> 
     <label id="lblmail">E-mail:</label> 
     <input type="text" name="email" id="email" /><br/> 
     <label id="lblpassword">Password:</label> 
     <input type="password" name="password" id="password" /><br/> 
     <label id="lblpassword">Repeat password:</label> 
     <input type="password" name="passwordr" id="passwordr" /><br/> 
     <button type=”submit” value=”BtnSubmit”>OK</button> 
    </form> 
    </body> 
</html> 
+0

这很可能来自引号'type =“submit”value =“BtnSubmit”',应该是正常的双引号'''^^ – Bobot