表单上的 PHP 错误

标签 php html mysql forms

所以我有两个文件,一个是 index.phpregister.php。 Index 是表单,register 是处理表单的 PHP。所以这里是 index.php

        <!DOCTYPE html>
    <html lang="en">
      <body>

        <div class="container">

          <form class="form-signin" role="form" action="register.php" method="post">
            <h2 class="form-signin-heading">Please sign up</h2>
            <input type="text" class="form-control" placeholder="Name"  name="name" autofocus style="border-color:#<?php   ?>;">
             <input type="text" class="form-control" placeholder="Username"  name="username" autofocus>
            <input type="text" class="form-control" placeholder="Email"  name="email" autofocus>
            <input type="password" class="form-control" placeholder="Password" name="password">
            <input type="password" class="form-control" placeholder="Password, Again" name="passwordconf" >
            <button class="btn btn-lg btn-primary btn-block" type="submit">Sign up</button>
          </form>

        </div> 



      </body>
    </html>

还有我的register.php

        <?php
    try {
    $handler = new PDO('mysql:host=localhost;dbname=s','root', '*');
    $handler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e){
    exit($e->getMessage());
}

//Post
$name = $_POST['name']; 
$username = $_POST['username']; 
$email = $_POST['email'];   
$password = $_POST['password']; 
$password1 = $_POST['passwordconf'];
$ip = $_SERVER['REMOTE_ADDR'];




//Verifcation 
if (empty($name) || empty($username) || empty($email) || empty($password) || empty($password1))
    {
    echo "Complete all fields";
    }

// Password match
if ($password != $password1)
    {
    echo $passmatch = "Passwords don't match";
    }

// Email validation

if (!filter_var($email, FILTER_VALIDATE_EMAIL))
    {
    echo $emailvalid = "Enter a  valid email";
    }

// Password length
if (strlen($password) <= 6){
    echo $passlength = "Choose a password longer then 6 character";
}

if(empty($passmatch) && empty($emailvalid) && empty($passlength)) {

//Securly insert into database
$sql = 'INSERT INTO userinfo (name ,username, email, password, ip) VALUES (:name,:username,:email,:password,:ip)';    
$query = $handler->prepare($sql);

    $query->execute(array(

    ':name' => $name,
    ':username' => $username,
    ':email' => $email,
    ':password' => $password,
    ':ip' => $ip

    ));
    }
        ?>

但这就是我想要做的,我想在表单旁边显示 PHP 错误,而不是将它们显示在 register.php 上,但我也想使用两个单独的文件。而不是将两个文件合并在一起。有任何想法吗?

最佳答案

我真的不明白你使用服务器端来进行所有这些验证。在客户端本身执行此操作是明智且经济的。如果您是这样的话,有很多用于客户端表单验证的插件。

一些脚本是:

找到最后一个链接来自己完成这项工作。

就您的情况而言,请尝试将 View 和逻辑分开。遵循当今许多 PHP Web 应用程序和 JavaScript 应用程序中遵循的模型- View - Controller 架构也是明智的。

<小时/>

或者,如果您需要在服务器端完成逻辑,请将 HTML 放入 form.php 中来分隔表单。在验证过程中,通过添加一个标志来进行一些小更改,当表单未经过验证时,该标志设置为 false

现在,如果验证不成功,即标志 $valid = false,则包含 form.inc,否则包含 success。公司

if ($valid)
    include 'success.inc';
else
    include 'form.inc';

由于它将位于同一个文件中,因此在 form.inc 中添加以下行:

if (!$valid)
    echo '<p class="error">You have errors in your form! Please correct them!</p>';

关于表单上的 PHP 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305711/

相关文章:

html - 使上一个/下一个按钮在 iOS 上的复选框上起作用

mysql - 计算 MySQL 中的串联值

php - 多答案枚举的 SQL DB 设计

javascript - D3 排序条形图错误 n.each

php - while循环多次显示一条记录php和mysql问题

javascript - 垂直对齐底部 + 行内 block

mysql - 统计 SQL 查询结果的出现次数

mysql - 关于Wordpress DB、WP_Posts和WP_Postmeta关系问题

php - 使用PHP和mysql时如何检查普通用户或管理员用户是否登录?

php - 在 mySQL 表中搜索用户并将 true 或 false 返回到 $result?