注意:使用$ _POST []进行表单输入时使用数组转换为字符串

时间:2015-12-14 17:27:52

标签: php forms

我有这样的表单输入。但它正在显示

  

注意:第95行的C:\ xampp \ htdocs \ testpage \ index.php中的数组到字符串转换

<form class='signupform' action='<?php echo htmlspecialchars('".$_SERVER."'['PHP_SELF']);?'> method='post'>

我在这里看过很多帖子,但无法解决。

2 个答案:

答案 0 :(得分:2)

从你的代码:

<?php echo htmlspecialchars('".$_SERVER."'['PHP_SELF']);?'>

你在做的是:

htmlspecialchars(subject)

但是subject由混乱的字符串和变量引用组成,所以从数组开始$_SERVER)包含你想要的元素处理,由方括号(['PHP_SELF'])中的表示。但你所拥有的是一个连贯.和两者之间的几个引用所以你正在做的是

htmlspecialchars(array + quote + string  )

显然无效。

所以要修复它,你删除多余的引号并删除数组和它的指示符之间的连接。

htmlspecialchars('".$_SERVER['PHP_SELF'])

这样更好但仍然没有,你现在必须整理其他引号,因为你的函数不包含任何字符串(它只是你在这里工作的数组变量) ),您的代码中不需要任何引号:

  htmlspecialchars($_SERVER['PHP_SELF'])

所以要结束关于一个非常小的问题的长篇文章,你可以更正原始代码:

action='<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>'>

值得注意的是,PHP_SELF可能很容易被滥用,不应在此上下文中使用,最好使用其他类似的过程,例如$_SERVER['SCRIPT_NAME']

必须跟踪您的公开报价,并尽量避免混合引号。您还应该使用PHP跟踪正确关闭?>代码作为原始代码而忘记了>,以便服务器将HTML解释为PHP

答案 1 :(得分:0)

使用

    <form class="signupform" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">

<form class="signupform" action="" method="post">