我的PHP文件没有将表单发布到数据库

时间:2014-06-04 16:00:52

标签: php html database forms insert

在这里输入代码我的php文件没有在我的数据库上发布表单。我在其他线程中搜索过,但我无法使其工作。 我尝试了一切,但我不能让它发挥作用。我正在使用XAMPP进行托管。 代码:

<?php
$link=mysql_connect('localhost','root','');
mysql_select_DB('registro',$link);
?>
<html>
  <head>
    <meta charset="utf-8" />
    <link rel="icon" type="image/png" href="/images/icon.png" />
    <title>Insert.</title>
    <link href="estilo.css" rel="stylesheet" type="text/css" />
  </head>
  <link href="../../../../../Mis Cosas/Mis documentos/Insert/estilos/estilos.css"     rel="stylesheet" type="text/css">
  <body>
      <?php if(!$_POST) { ?>
      <h1>Registro</h1> 
      <form id="form1" name="form1" action="index.php" method="POST">
        <p>Nombre:
          <input name="nombre" type="name" class="input" placeholder="Nombre">
        </p>
        <p><BR>Apellido:
          <input name="ape" type="text" class="input" placeholder="Apellido">
        </p>
        <p>Email:    
          <input name="email" type="email" class="input" placeholder="Email">
        </p>
        <p>Tel&eacute;fono: 
          <input name="tel" type="text" class="input" placeholder="Teléfono">
        <BR>
          <input name="enviar" type="submit" class="button" value="Enviar">
        </p>
      </form>
      <?php 
      }else{
      $nombre=$_POST['nombre'];
      $apellido=$_POST['ape'];
      $email=$_POST['email'];
      $tel=$_POST['tel'];
      $sql = "INSERT INTO clientes(nombre,apellido,email,tel) VALUES('$nombre','$apellido','$email','$tel')";
      Mysql_query($sql);
      print"Done";
      }?>
  </body>
</html>

1 个答案:

答案 0 :(得分:2)

第一个问题:

Mysql_query($sql); //even though php functions are case-insensitive
^
should be lower case

第二个问题:你没有逃避数据,你应该使用PDO或MySQLi。这会给您的网站带来严重的问题,比如SQL Injection。

我认为你的问题是你没有逃避变量。如果您的任何输入字段包含引号,则可能会收到错误消息like syntax error,但由于error_reporting error_log它可能会显示在mysql_real_escape_string($postVariable);中。所以要么使用$nombre = $_POST['nombre']; $apellido = $_POST['ape']; $email = $_POST['email']; $tel = $_POST['tel']; $sql = "INSERT INTO clientes(nombre, apellido, email, tel) VALUES(:nombre, :apellido, :email, :tel)"; $stmt = $pdoObj->prepare($sql); $stmt->bindParam(':nombre', $nombre, \PDO::PARAM_STR); $stmt->bindParam(':apellido', $apellido, \PDO::PARAM_STR); $stmt->bindParam(':email', $email, \PDO::PARAM_STR); $stmt->bindParam(':tel', $tel, \PDO::PARAM_STR); if ($stmt->execute()) { echo 'DONE'; } ,要么使用预备语句。

PDO:

的示例
{{1}}