Php提交到自返回源代码

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);

我试图向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_值; } } 表格如下:

<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(),它似乎工作正常…?如何