页面如何给出404但返回内容

时间:2016-09-01 07:42:54

标签: php wordpress http-status-code-404

以下是我的带有wordpress的php文件

<?php
require('../wp-blog-header.php');

$name = $_POST['username'];
$pass = $_POST['userpass'];

$results = $wpdb->get_row($wpdb->prepare( 
    "
        SELECT *
        FROM wp_users 
        WHERE user_login = %s
    ",
    $name
),ARRAY_N,0);

$checked = wp_check_password($pass, $results[2]);

if ($checked) {
    echo 'y';
} else {
    echo 'n';
}
?>

此页面的主要用途是验证用户名和密码。当用户名/密码正确时,它可以正常工作,显示&#39; y&#39;,否则显示&#39; n&#39;。

奇怪的是,无论我是通过html格式还是其他方式发送post方法,虽然它返回y或n,但状态代码始终为404.

为什么它会返回404的内容。我没有操纵这个php中的任何状态代码。

我知道我应该创建自己的模板。我的问题不是那个问题,但是为什么http响应将是404和回复的内容。

1 个答案:

答案 0 :(得分:1)

首先你要在wordpress中使用你的自定义代码然后你必须创建自定义模板,用你的模板名称保存你的php文件在你的主题文件夹中 例如

<?php
/* Template Name: login */
?>
<?php get_header();?>
<?php
$name = $_POST['username'];
$pass = $_POST['userpass'];

$results = $wpdb->get_row($wpdb->prepare( 
"
    SELECT *
    FROM wp_users 
    WHERE user_login = %s
",
$name
),ARRAY_N,0);

$checked = wp_check_password($pass, $results[2]);

if ($checked) {
echo 'y';
} else {
echo 'n';
}
<?php get_footer();?>

现在转到您的wordpress仪表板并在右侧创建页面从下拉列表中选择您创建的模板名称登录并保存页面。 在您使用wordpress仪表板创建的运行页面之后