【问题标题】:Two forms, two seperate pages want the first form to write to a table in sql and the second form to add to that specific table filling in the blanks两个表单,两个单独的页面希望第一个表单写入 sql 中的表,第二个表单添加到该特定表中填写空白
【发布时间】:2014-07-12 05:01:33
【问题描述】:

(我的第一个网站只是一个有趣的小实验) 所以这部分工作正常,它接收从另一个页面上的表单输入的信息。它添加到“用户”表中,其中包含“用户”、“通行证”(从这个给定的 php 代码添加)以及“ID”,它在添加到表时自动递增,然后 'screen_name' 和 'email' 我想通过另一个表单进一步添加到给定的表中。

<?
    session_start();
    include('dbconn.php');
    $username = $_POST['user'];
    $password = $_POST['pass'];
    $sql = "INSERT INTO `user`(`user`, `pass`) VALUES ('".$username."','".$password."')";
    $run = mysql_query($sql);

    if($run){
        $_SESSION['username'] = $username;

    }
?>

这部分代码要求提供电子邮件地址和屏幕名称,然后将其进一步存储在数据库中,但是我希望它添加到特定用户的信息中。由于“用户”和“通行证”已经保存,因此想法是进一步将“屏幕名称”和“电子邮件”添加到该特定用户。不知道我在这里做错了什么。此外,每次我刷新页面时,都会向数据库中的字段添加一个空白用户。

       <form id="contact-form" method="post">
            <div>
                <label>
                    <span>Userame/Screen Name:</span>
                    <input placeholder="Please enter your name" name="screen_name" type="text" tabindex="1" required autofocus>
                </label>
            </div>
            <div>
                <label>
                    <span>Email:</span>
                    <input placeholder="Please enter your email address" name="email" type="email" tabindex="2" required>
                </label>
            </div>
            <div>
                <button name="submit" type="submit" id="contact-submit" data-text="...Sending">Submit</button>
            </div>
                <input type="hidden" name="user" value="<?php echo $_POST['user']; ?> />
        </form>

这是连接到上述表单的代码,它位于同一页面上,由于某种原因,我无法将其添加到数据库中的任何字段,更不用说已经为新用户。

<?php
session_start();
include('dbconn.php');
$screen_name = $_POST['screen_name'];
$email = $_POST['email'];
$sql = "UPDATE `user` SET `screen_name` = '$screen_name', `email` = '$email' WHERE user = $username";
$run = mysql_query($sql);
?>  

任何帮助将不胜感激。通常不是一个寻求帮助的人,而是被这个问题困扰了很长时间并浏览了多个 Stackoverflow 帖子,我想我会添加我自己的问题!

【问题讨论】:

    标签: php html mysql sql forms


    【解决方案1】:

    似乎在您的第二个 php 脚本中您没有初始化 $username。 您可能应该添加$username = $_SESSION['username']; 您还需要在查询中加上引号。

    关于在页面刷新时插入的空白用户,我的猜测是第一个 php 脚本被执行,但 $_POST 变量没有设置。

    最后你应该阅读 SQL 注入 http://php.net/manual/en/security.database.sql-injection.php

    【讨论】:

    • 首先感谢您的回答。所以在第二个脚本中我添加了 $username = $_SESSION['username'];但是它不会更改对数据库的提交,而且我知道它向数据库添加了一个未设置的变量,只是停止它是我需要知道的。我还写了一篇关于 sql 注入的报告,但就实用性而言,我只是想了解一下 php 和数据库!
    • 您在查询中是否还引用了 $username?尝试在第二个脚本末尾添加echo mysql_error();,看看出了什么问题。您可以在检查 $_POST 变量是否实际设置的第一个代码块周围放置一个 if。 if (!empty($_POST['user']) &amp;&amp; !empty($_POST['pass'])) { 或将块与第二个表单分开,并在将用户信息插入数据库后重定向到第二个表单页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 2018-08-25
    • 1970-01-01
    相关资源
    最近更新 更多