在我的网站网址中包含* any *查询字符串会导致404

时间:2013-05-13 17:22:49

标签: php string http url

首先,如果已经提出要求,我会道歉;我使用了SO搜索&高级搜索甚至是一小时的GoogleFu,都无济于事。

我遇到的问题是,每当我尝试在我的网址中使用查询时,都会导致404.

127.0.0.1/login.php抛出错误,说所需的查询(& asdfasdf =?)不存在,但其他方式正常... http://puu.sh/2SIyc.png

127.0.0.1/login.php&asdfasdf=5导致404 ... http://puu.sh/2SIxF.png

我尝试过的: 通过我的广泛搜索,很多结果显示某些查询名称“不被允许”,如果它们已被相关CMS使用。这不是使用CMS,即使PHP后端有一些时髦的东西声称有一些查询名称,我怀疑他们被称为“asdfasdf”就像我的。

有什么想法吗?

我的代码:

<?php include('header.php') ?>

<!-- Primary Content -->
<div class="row">
  <div class="span12" style="border: 1px solid #000;">

    <div class="row">
      <div class="span12">
        <?php 
        $error = $_GET["asdfasdf"]; 
        if(is_null($error)){
          echo "<h1> THE &asdfasdf=X RESOLVED TO NULL </h1>";
        } else {
          echo "<h1> Your passwords did not match </h1>";
        }
        ?>
      </div>
    </div>

    <div class="row" id="login-container">

      <!-- Left-hand-side; login form-->
      <div class="span6">
        <form class="form-horizontal">
          <div class="control-group">
            <label class="control-label" for="inputEmail">Email</label>
            <div class="controls">
              <input type="text" id="inputEmail" placeholder="Email">
            </div>
          </div>
          <div class="control-group">
            <label class="control-label" for="inputPassword">Password</label>
            <div class="controls">
              <input type="password" id="inputPassword" placeholder="Password">
            </div>
          </div>
          <div class="control-group" id="sign-in">
            <label class="checkbox">
              <input type="checkbox"> Remember Me </input>
            </label>
            <button type="submit" class="btn">Sign in</button>
          </div>
        </form>
      </div>

      <!-- Right-hand-side; register form-->
      <div class="span6" id="register-container">
        <form class="form-horizontal" id="register-container" method="post" action="register_validate.php">
          <div class="control-group">
            <label class="control-label" for="inputEmail">Email Address</label>
            <div class="controls">
              <input type="text" id="email" name="email" placeholder="Email">
            </div>
            <span class="help-block indented-help-block">This will be your username.</span>
          </div>
          <div class="control-group">
            <label class="control-label" for="inputPassword">Password</label>
            <div class="controls">
              <input type="password" id="password" name="password" placeholder="Password">
            </div>
          </div>
          <div class="control-group">
            <label class="control-label" for="inputPasswordConfirmation">Confirm password</label>
            <div class="controls">
              <input type="password" id="passwordConfirmation" name="passwordConfirmation" placeholder="Password">
            </div>
          </div>
          <div class="control-group" id="register">
            <label class="checkbox">
              <input type="checkbox">Log in immediately</input>
            </label>
            <button type="submit" class="btn">Register</button>
          </div>
        </form>
      </div>

    </div>
  </div>
</div>

<?php include('footer.php') ?>

4 个答案:

答案 0 :(得分:4)

尝试使用?代替&作为第一个参数。 127.0.0.1/login.php?asdfasdf=5 代替 127.0.0.1/login.php&asdfasdf=5

答案 1 :(得分:1)

查询字符串应以以下格式开始。

SOME-SITE / SOME-page.php文件参数1 =值1&安培; param2的=值2&安培; ...

当然不需要参数.. 主要的是页面和查询字符串之间的问号。 和参数之间的&符号。

答案 2 :(得分:1)

&替换为?。你需要告诉PHP你有一个查询字符串。问号就是这样做的方法。

答案 3 :(得分:0)

您应该使用isset()检查GET参数,因为is_null()会将var等于NULL