Php提交到自返回源代码
我试图向self提交一个php表单,但提交后,页面返回页面的源代码,而不是处理后的数据 我有一个ISSET来检查表单是否已经提交,然后在同一页面上有处理提交数据的功能 代码如下: if(isset($_POST['submit'])){ if ($_POST['name' == 'px']) { $pxValue = $_POST['value']; $value = convertToEm($pxValue); } if ($_POST['name' == 'em']) { $emValue = $_POST['value']; $value = convertToPx($emValue); } function convertToEm($value) { $base_font = 16; $em_value = $value / $base_font; return $em_value; } } 如果(isset($_POST['submit'])){ 如果($_POST['name'=='px'])){ $pxValue=$_POST['value']; $value=convertToEm($pxValue); } 如果($_POST['name'='em'])){ $emValue=$_POST['value']; $value=convertToPx($emValue); } 函数convertToEm($value){ $base_font=16; $em_value=$value/$base_font; 返回$em_值; } } 表格如下:Php提交到自返回源代码,php,function,form-submit,self,Php,Function,Form Submit,Self,我试图向self提交一个php表单,但提交后,页面返回页面的源代码,而不是处理后的数据 我有一个ISSET来检查表单是否已经提交,然后在同一页面上有处理提交数据的功能 代码如下: if(isset($_POST['submit'])){ if ($_POST['name' == 'px']) { $pxValue = $_POST['value']; $value = convertToEm($pxValue);
<form action="" id="converterPx" method="POST">
<h3>Convert Pixels to Ems:</h3>
<label>PX:</label>
<input type="text" name="value" value="" />
<?php echo 'Result:'. $value; ?>
<input type="hidden" name="type" value="px" />
<input type="submit" name="submit" id="submit-px" />
</form>
将像素转换为Ems:
二甲苯:
正在尝试在同一页上处理表单
使用浏览器检查器,我看到提交的帖子带有值
这方面的任何帮助都是非常好的
$\u POST['name'='px']
可能应该是$\u POST['name']='px']
(在类似的结构上进行了类似的更改)
您正试图使用两个字符串之间的比较结果(将为false)作为数组索引。$\u POST['name'=='px']可能应该是
$\u POST['name']=='px']
(在类似的构造上进行了类似的更改)
您正试图使用两个字符串之间的比较结果(将为false)作为数组索引。您是否忘记了
标记?另外,$\u POST['name'='px']
应该是$\u POST['name']='px'
,convertToPx函数丢失,您的表单上没有被调用的参数名称,并且您没有回显任何内容
<?php if(isset($_POST['submit'])){
if ($_POST['name']== 'px') {
$pxValue = $_POST['value'];
$value = convertToEm($pxValue);
}
if ($_POST['name'] == 'em') {
$emValue = $_POST['value'];
$value = convertToPx($emValue);
}
function convertToEm($value) {
$base_font = 16;
$em_value = $value / $base_font;
return $em_value;
}
function convertToPx($value) {
$base_font = 32;
$em_value = $value / $base_font;
return $em_value;
}
echo $value;
}
?>
您是否忘记了
标记?另外,$\u POST['name'='px']
应该是$\u POST['name']='px'
,convertToPx函数丢失,您的表单上没有被调用的参数名称,并且您没有回显任何内容
<?php if(isset($_POST['submit'])){
if ($_POST['name']== 'px') {
$pxValue = $_POST['value'];
$value = convertToEm($pxValue);
}
if ($_POST['name'] == 'em') {
$emValue = $_POST['value'];
$value = convertToPx($emValue);
}
function convertToEm($value) {
$base_font = 16;
$em_value = $value / $base_font;
return $em_value;
}
function convertToPx($value) {
$base_font = 32;
$em_value = $value / $base_font;
return $em_value;
}
echo $value;
}
?>
你不是在向自己屈服,你是在向什么都不屈服:
编辑:正如劳伦斯所指出的,应该避免使用我最初在下面描述的方法。相反,使用$\u服务器['SCRIPT\u NAME']代码>有关更多信息,请参阅
原件:根据您对表单的调用方式,您可以尝试:
你不是在向自己屈服,你是在向什么都不屈服:
编辑:正如劳伦斯所指出的,应该避免使用我最初在下面描述的方法。相反,使用$\u服务器['SCRIPT\u NAME']代码>有关更多信息,请参阅
原件:根据您对表单的调用方式,您可以尝试:
如果返回的页面上出现PHP源代码,可能是因为您忘记了标记
或者因为服务器没有被配置为正确执行PHP
(或者文件名的扩展名错误)如果返回的页面上出现PHP源代码,可能是因为您忘记了标记
或者因为服务器没有被配置为正确执行PHP
(或文件名的扩展名错误)若要在同一页面中执行自我操作,请在action$\u SERVER['REQUEST\u URI']表单中使用此选项。
//这是您问题的确切答案代码
<?php
if(isset($_POST['submitBtn'])){
function convertToEm($value) {
$base_font = 16;
$px_value = $value/$base_font;
return $px_value;
}
function convertToPx($value) {
$base_font = 32;
$em_value = $value/$base_font;
return $em_value;
}
if (isset($_POST['type']) && $_POST['type']=='px') {
$pxValue = $_POST['value'];
$value = convertToEm($pxValue);
}
if (isset($_POST['type']) && $_POST['type'] == 'em') {
$emValue = $_POST['value'];
$value = convertToPx($emValue);
}
}
//form data
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" id="converterPx" method="POST">
<h3>Convert Pixels to Ems:</h3>
<label>PX:</label>
<input type="text" name="value" />
<?php echo 'Result:'.$value; ?>
<input type="hidden" name="type" value="px" />
<input type="submit" name="submitBtn" id="submit-px" />
</form>
要在同一页面中进行自我操作,请在action$\u SERVER['REQUEST\u URI'的形式中使用它。
//这是您问题的确切答案代码
<?php
if(isset($_POST['submitBtn'])){
function convertToEm($value) {
$base_font = 16;
$px_value = $value/$base_font;
return $px_value;
}
function convertToPx($value) {
$base_font = 32;
$em_value = $value/$base_font;
return $em_value;
}
if (isset($_POST['type']) && $_POST['type']=='px') {
$pxValue = $_POST['value'];
$value = convertToEm($pxValue);
}
if (isset($_POST['type']) && $_POST['type'] == 'em') {
$emValue = $_POST['value'];
$value = convertToPx($emValue);
}
}
//form data
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" id="converterPx" method="POST">
<h3>Convert Pixels to Ems:</h3>
<label>PX:</label>
<input type="text" name="value" />
<?php echo 'Result:'.$value; ?>
<input type="hidden" name="type" value="px" />
<input type="submit" name="submitBtn" id="submit-px" />
</form>
这是您的代码中的一个输入错误,您使用的是名称而不是类型
if ($_POST['type']== 'px') {
$pxValue = $_POST['value'];
$value = convertToEm($pxValue);
}
if ($_POST['type'] == 'em') {
$emValue = $_POST['value'];
$value = convertToPx($emValue);
}
这是您的代码中的一个输入错误,您使用的是名称而不是类型
if ($_POST['type']== 'px') {
$pxValue = $_POST['value'];
$value = convertToEm($pxValue);
}
if ($_POST['type'] == 'em') {
$emValue = $_POST['value'];
$value = convertToPx($emValue);
}
你忘了
标记了吗?你忘了
标记了吗?当我这样做时,我会得到附加在它后面的url:%3C?php%20echo%20$_服务器%5B'php_SELF'%5D%20?%3e你不应该在表单中使用
,这将使XSS和XSRF更好地使用action=“”
如果发布到self…您的表单是由处理该表单的同一脚本生成的吗?@lawrencerone足够公平(其他人,请参阅),但关键是操作=“”
为空。通过生成,它只是php文件中的一个html表单,具有相同的处理功能。是的。当我这样做时,我会得到附加在它后面的url:%3C?php%20echo%20$_服务器%5B'php_SELF'%5D%20?%3e您不应该在表单中使用
,这将使XSS和XSRF更好地使用action=“”
如果发布到self…您的表单是由处理该表单的同一脚本生成的吗?@lawrencerone足够公平(其他人,请参阅),但关键是操作=“”
为空。通过生成,它只是php文件中的一个html表单,具有相同的处理函数yes.yah我知道该函数缺失,我只是测试了convertToPx表单。另外,你确定应该有第二个]而且不应该是:$\u POST['name']='px'我也有PHP标记,只是没有将它们复制到此处的代码中。啊,我知道函数丢失了,我只测试了convertToPx表单。另外,你确定应该有第二个]而且不应该是:$\u POST['name']='px'我也有PHP标记,只是没有将它们复制到此处的代码中。如果action=”“为空,它将发布到它的self@LawrenceCherone,但这不是提交数据的正确方式,,在php标准中,它应该遵循一些编码样式sif action=“”如果为空,它将发布到其self@LawrenceCherone,但这不是提交数据的正确方式,,,在php标准中,它应该遵循一些编码样式。如果要检查我的服务器是否配置为执行php,我做了一个phpinfo(),它似乎工作正常…?如何