首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从php脚本发送到mySQL的双条目

从php脚本发送到mySQL的双条目
EN

Stack Overflow用户
提问于 2015-08-09 08:33:48
回答 1查看 77关注 0票数 0

尽管我只执行了一次脚本(一个mysql_query),但由于某种原因,我在mySQL表中得到了重复的条目。

这些条目是不一样的--“重复”条目对于列时间戳和图片总是有相同的字段,但是其余的列是空的。

这是我的剧本:

代码语言:javascript
运行
复制
<?php

 session_start();

 $con = mysql_connect("Fruity.mysql.anyhost.com", "apples", "password");

 mysql_select_db("IAN_1");


 $username = $_SESSION['username'];
 $image = $_POST['image'];
 $post = $_POST['postdescription'];
 $idcolor = $_POST['idcolor'];
 $idbgcolor = $_POST['idbgcolor'];
 $timestamp = date("jS \of F Y h:i:s A P");



 $user_uploadposts = 
 "INSERT INTO $username (Timestamp, Image, Description, ID_color, ID_backgroundcolor)  
  VALUES ('$timestamp','$image', '$post','$idcolor','$idbgcolor')";


  mysql_query($user_uploadposts);


  mysql_close($con)

 ?> 

问题的屏幕截图 http://i.imgur.com/DaPiRYm.jpg

EN

回答 1

Stack Overflow用户

发布于 2015-08-09 11:43:43

这太长了,不能发表评论。

首先,$_POST['image']建议我们处理文件,如果是这样的话,您的表单需要一个有效的容器类型,一个POST方法,如果是这样的话,您还需要使用$_FILES而不是$_POST

我们也不知道是否设置了会话数组(不知道为什么在这里使用它),以及表单元素是否包含匹配的名称属性。

即:<input type="text" name="postdescription">

您的表单应该包含method="post" enctype="multipart/form-data"

如果表单和PHP/MySQL位于同一个文件中,则需要对变量使用isset()!empty()。您可能收到了未定义的索引通知,但没有显示它们。

  • 错误报告会告诉你这一点。

if(!empty($_POST['postdescription'])){...}对其他人来说是一样的。

您还需要做的是拥有一个主键,这通常可以解决一些问题。

对于mysql_close($con),还缺少一个分号,添加它为mysql_close($con);

将当前代码替换为:

代码语言:javascript
运行
复制
mysql_query($user_uploadposts) or die(mysql_error());

以查找错误和错误报告。

另外,您还在使用MySQL保留字 Timestamp,它应该用滴答来包装。

代码语言:javascript
运行
复制
INSERT INTO $username (`Timestamp`, Image, ...

如果这仍然不起作用,那么传入的数据可能包含MySQL会抱怨的字符。

  • 逃离你的数据。
  • 即:$post = mysql_real_escape_string($_POST['postdescription']);

错误报告添加到文件的顶部,这将有助于查找错误。

代码语言:javascript
运行
复制
<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

Sidenote:显示错误只应在暂存过程中进行,而不应在生产中执行。

您现在的代码对SQL注入开放。

使用有准备好的陈述有准备陈述的PDO

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31902371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档