使用方法POST从FORM中使用$ _GET ['VALUE']

时间:2017-05-25 21:08:05

标签: php

我在其他人的代码中解决CAPTCHA问题,其中表单方法是“POST” 但是在action.php文件中,代码是这样的:

$key=substr($_SESSION['key'],0,5);
$number = $_GET['img_code'];

if($_GET['img_code']){
    if($number==$key)
    {
        echo "done";
        exit();
    }
    else
    {
        echo false;
        exit();
    }
} 

我已尝试var_dump($_GET['img_code'])并按预期获得null值。

但如果我这样做var_dump($_POST['img_code'])我会得到正确的价值。

但是一旦我将其设置为POST,我就会开始收到错误“验证码未正确输入。

非常感谢任何帮助。

更新: FORM METHO

<form action="{$Site_Root}signup.php" method="post" class="frmRegister tutor-registration" name="frmRegister" id="frmRegister" enctype="multipart/form-data" >

进一步更新:

如果我正在使用$_REQUEST['img_code'],然后执行var_dump,我会获得$ key和$ number的匹配字符串 string(5) "f065a" string(5) "f065a"

但问题是当我将此作为条件应用时,例如: 我得到了 - “验证码未正确输入。”

if(isset($_POST['email'])){
if ($key==$number){                    // condition line is added by me
        if(!empty($_FILES['photo']['name']))
        {
            $_POST['photo'] = fileUpload($_FILES['photo'],TUTOR);
            $thumb->image($physical_path['Tutor'].$_POST['photo']);
            $thumb->size_width(120);
            $thumb->jpeg_quality(100);
            $filename = $thumb->get2(); //small_thumb_
        }
        else
        {
            $_POST['photo'] = "";
        }
        $tutor_id = $tut->Insert($_POST);
        $to_email = $_POST['email'];
        global $mail;
        $mail = '';
        $mail = new htmlMimeMail();
        $mail->setFrom($config[WC_CONTACT_US]);
        //Set Cc
        // $mail->setCc(array($config[WC_CONTACT_US]));
        $mail->setSubject('Welcome to TuitionJobsPortal.com!');
        $tpl2 = new Smarty;
        $tpl2->template_dir = $physical_path['EmailTemplate'];
        $tpl2->compile_dir  = $physical_path['Site_Root']. 'templates_c/';
        $tpl2->debugging    = DEBUG;

        $tpl2->assign(array("membername"    =>  $_POST['tutor_name'],
                            "vcode"         =>  $_POST['verification_code'],
                            "tutor_id"      =>  $tutor_id,
                            "Templates_Image" => $virtual_path['Site_Root'].'templates/images/',
                            "Site_Root" => $virtual_path['Site_Root'],
                          ));

        $content = $tpl2->fetch('registration'. $config['tplEx']);
        $mail->setHtml($content);

        $result = $mail->send(array($to_email));
        header("location: signup.php?signup=true");
        exit();
    }
} //this is added.

2 个答案:

答案 0 :(得分:0)

我认为您无法从 $ _ GET 访问 $ _ POST 数据,因此将表单方法更改为 GET 或访问使用$_POST['img_code']发布数据。

答案 1 :(得分:0)

您可以使用$_REQUEST全局变量,它可以完成GET和POST的工作,