PHP不会回应XML子

Rob*_*Rob 1 html php xml simplexml

这是我的代码

    <form method="post">
  <input name="hash" type="text" id="hash" style='width: 30%;'/>
    <input name="Crack!" type="submit" value="Crack!" onfocus="if(this.blur)this.blur()"/>
</form>

    <?php
 if(isset($_POST['Crack!'])){
  $hash = $_POST['hash'];        

     $xml = simplexml_load_file("http://gdataonline.com/qkhash.php?mode=xml&hash=$hash");

  $status = $xml->data->status; 
    if ($status = "Success"){
     $plain = $xml->data->result;
      }elseif ($status = "Hash not found"){
      $plain = "Not Found"; }     

?>
 <table>
 <tr>  
 <td><?php echo "gdataonline.com: "; ?></td>
 <td><?php echo "$plain"; ?></td>
 </tr>
 </table>

<?php
echo "<pre>";
var_dump($xml);
echo "</pre>"; 

 } //if submit

 ?>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我根本无法回应$ plain.它似乎甚至无法读取它.

Jos*_*vis 5

Rob,如果你想让人们甚至理解你的问题,你必须付出努力,而不是只发布大量不相关的代码并问"为什么不起作用?"

所以我完成了你的作业,我弄清楚了脚本在做什么,并获取了一个示例XML文档.事实证明,你的层次结构错了.此外,这是不相关的,但您使用赋值运算符而不是比较运算符.换句话说,你的ifs不会测试任何东西,第一个只是设置$status为"成功".

相关部分应该是这样的:

$data = simplexml_load_file("http://gdataonline.com/qkhash.php?mode=xml&hash=$hash");

switch ($data->status)
{
    case 'Success':
        $plain = $data->result;
        break;

    case 'Hash not found':
        $plain = "Not Found";
        break;
}
Run Code Online (Sandbox Code Playgroud)