首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3个小的PHP错误我无法破译

3个小的PHP错误我无法破译
EN

Stack Overflow用户
提问于 2012-11-02 04:53:44
回答 4查看 123关注 0票数 0

*通知:在第45行*中使用/./upader.php中假定的未定义常数_-假定的'_‘。

45线

代码语言:javascript
复制
$newname = str_replace(array(' ', '&'), array('_', 'and'), trim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey() . '_' . time() . '.jpg';

注意:未定义索引:在第81行/./upader.php中批准

81号线-这里的第二行

代码语言:javascript
复制
    $query = sprintf("INSERT INTO `$db_name`.`the_table` (`id` , `name` , `photo` , `email` , `date` , `code` , `subscribe` , `approve` , `created` )
        VALUES ( NULL , '%s', '%s', '%s', '%s', '%s', '%s', '1', CURRENT_TIMESTAMP );",
        mysql_real_escape_string($_POST['name']),
        mysql_real_escape_string($newname),
        mysql_real_escape_string($_POST['email']),
        mysql_real_escape_string($date),
        mysql_real_escape_string($_POST['code']),
        mysql_real_escape_string($subscribe),
        mysql_real_escape_string($_POST['approve'])
        );

警告:无法修改标题信息--第102行中的/./中已发送的标题(输出开始于/./upader.php:45)

45线

代码语言:javascript
复制
$newname = str_replace(array(' ', '&'), array('_', 'and'), trim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey() . '_' . time() . '.jpg';

102线-这里的第三行

代码语言:javascript
复制
if ($success == 'Done') {
    $page = 'uploader';
    header('Location: ./thanks.php');
} else {
echo "error";
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-02 04:57:13

第45行:. _ .应该是. '_' .

第81行:您的帖子数据没有“批准”,请检查提交该帖子的表单。

第102行:在调用header()之前不要输出(即回显)任何内容。我相信以前生成的警告会导致同样的错误。

票数 1
EN

Stack Overflow用户

发布于 2012-11-02 05:30:11

First :

$newname = str_replace(array(' ', '&'), array('_', 'and'), trim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey() . '_' . time() . '.jpg';

在这篇文章中,您给出了trim( strip_tags( $_POST['name'] ) ) ) . _ . $formKey->generateKey() _ beatween的引号。

将此行替换为

$newname = str_replace(array(' ', '&'), array('_', 'and'), trim( strip_tags( $_POST['name'] ) ) ) . '_' . $formKey->generateKey() . '_' . time() . '.jpg';

第二版:

你应该把你所有的

代码语言:javascript
复制
mysql_real_escape_string($_POST['name']),
mysql_real_escape_string($_POST['email']),
mysql_real_escape_string($_POST['code']),
mysql_real_escape_string($_POST['approve'])

通过

代码语言:javascript
复制
    $name = (isset($_POST['name'])) ? mysql_real_escape_string($_POST['name']) : "";
    $email = (isset($_POST['email'])) ? mysql_real_escape_string($_POST['email']) : "";
    $code = (isset($_POST['code'])) ? mysql_real_escape_string($_POST['code']) : "";
    $approve = (isset($_POST['approve'])) ? mysql_real_escape_string($_POST['approve']) : "";
    $query = sprintf("INSERT INTO `$db_name`.`the_table` (`id` , `name` , `photo` , `email` , `date` , `code` , `subscribe` , `approve` , `created` )
    VALUES ( NULL , '%s', '%s', '%s', '%s', '%s', '%s', '1', CURRENT_TIMESTAMP );",
    $name,
    mysql_real_escape_string($newname),
    $email,
    mysql_real_escape_string($date),
    $code,
    mysql_real_escape_string($subscribe),
    $approve
    );

第三代

可以在页面顶部添加<?php ob_start(); ?>,在页面底部添加<?php ob_flush(); ?>,也可以将header('Location: ./thanks.php');替换为

echo '<script>document.location.href="thanks.php";</script>';

票数 1
EN

Stack Overflow用户

发布于 2012-11-02 05:02:10

就像您将字符串"%s"写到. $_POST['name'] .,例如:

代码语言:javascript
复制
 $query = sprintf("INSERT INTO `" . $db_name . "`.`the_table` (`id` , `name` , `photo` , `email` , `date` , `code` , `subscribe` , `approve` , `created` )
                   VALUES ( NULL , '" . $_POST['name'] . "', ...
                 );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13189509

复制
相关文章

相似问题

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