找不到用户存在时请求的URL

时间:2016-02-04 22:48:42

标签: javascript php jquery database .htaccess

我有一个“添加到收藏夹”按钮,一旦点击,就应该存储发送收藏夹请求的人员以及发送给谁的详细信息(在数据库中)。

但是,使用所有功能代码(我希望它可以工作),当我点击“添加到收藏夹”按钮时,我收到消息:

Not Found
The requested URL /www/profile.php was not found on this server.

profile.php效果很好,但单击按钮时会出现错误。此外,单击该按钮时,网址会显示http://localhost/Freddy(Freddy是用户登录的用户名)。这让我相信$user_u_var的实现(见下面的代码) - 但我无法理解它。

按钮

 <form action="<?php echo $username; ?>" method="post"> 
     <input type="submit" class="send_message" name="sendmsg" value="Send Message"/>
     <input type="submit" class="add_to_fav" name="addfriend" value="Add to Favourites"/>
 /form>

按钮点击时执行的代码:

<?php
// code to process a favourite request
if (isset($_POST['addfriend'])){ // vars
    $fav_request = $_POST['addfriend'];
    $request_sent_to = $user_u_var; 
    $request_sent_from = $username;

    if ($request_sent_to == $user_u_var){
        echo "cannot send request to self";
    }

} else {
  //do nothing                  
    }
?>

$ user_u_var的来源

if (isset($_GET['u'])) {
    $user_u_var = mysqli_real_escape_string($connect,$_GET['u']);
    if (ctype_alnum($user_u_var)) { //check if the user exists
    $check = mysqli_query($connect, "SELECT username, first_name FROM users WHERE username='$user_u_var'");
    if (mysqli_num_rows($check)===1) {
        $get = mysqli_fetch_assoc($check);
        $user_u_var = $get['username'];
        $fname = $get['first_name'];    
    } else { // refresh page 
        // if the user doesnt exist i.e. ?u=fakeUser - it will redirect them to the index page.
        echo "<meta http-equiv=\"refresh\" content=\"0; url=http://localhost/index.php\">"; 
        exit();
        }
    }
}

&GT;

当然,当我尝试向自己发送一个最喜欢的请求时,它应该回显cannot send request to self但它只是呈现错误。

$ username(会话变量)的来源:

<?php 
session_start();
if (!isset ($_SESSION["user_login"])){      
    header("Location:index.php");
} else {
    $username = $_SESSION["user_login"];
}
?>

我还添加了一个.HTACCESS文件,以使网页看起来更好,我可能会对此错误做出贡献。

.HTACCESS

RewriteBase /www/
RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?u=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?u=$1

即。假设我在索引页面上:localhost/index.php。我想直接转到Alice的个人资料页面,所以不用写localhost/index.php?u=Alice,而是使用RewriteRule,我可以简单地写localhost/index.php/Alice

问题: 单击“添加到收藏夹”按钮后,为什么会被重定向到“未找到”页面?

0 个答案:

没有答案