首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP中的标头('Location:')未重定向

PHP中的标头('Location:')未重定向
EN

Stack Overflow用户
提问于 2018-06-17 12:49:11
回答 5查看 6.3K关注 0票数 -1

login.php

代码语言:javascript
复制
<form class="form-signin" action="#" method="POST">
            <span id="reauth-email" class="reauth-email"></span>
            <input type="text" name="usern" class="form-control" placeholder="Username">
            <input type="password" name="passw" class="form-control" placeholder="Password">
            <div id="remember" class="checkbox">
                <label>
                    <input type="checkbox" value="remember-me"> Remember me
                </label>
            </div>
            <input onClick="myFunction()" class="btn btn-lg btn-primary btn-block btn-signin" type="submit" name="sub" value="Login">
        </form>

PHP脚本

代码语言:javascript
复制
<?php 
if(isset($_POST['sub']))
{
include('user.php');
$us = mysqli_real_escape_string($conn,$_POST['usern']);
$pw = mysqli_real_escape_string($conn,$_POST['passw']);

if(!empty($_POST['usern']) || !empty($_POST['passw']))
{
        $query = "SELECT ID FROM myuser WHERE username = '$us' AND
        password = SHA('$pw')";
            $result = @mysqli_query($conn, $query);
            $row = mysqli_fetch_array($result);

        if($row)
        { 
                header('Location: homepage.php');
                exit;
        }
            else  
            {
                echo '<script language="javascript">';
                echo 'alert("Invalid Username/Password")';
                echo '</script>';   
            }
}
        else
        {
            echo '<script language="javascript">';
            echo 'alert("Please enter Username/Password")';
            echo '</script>';
            mysqli_close($conn);
        }
} 
?>

我不能使标题位置工作!我不知道为什么,我已经搜索了一些修复和线程,但都没有结果。如何修改我的代码,任何人都能发现错误吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-06-19 03:54:49

我终于解决了,伙计们!我所做的是抛弃mysqli,使用PDO。这是我的新代码:

代码语言:javascript
复制
<?php
session_start();
$h = "localhost";
$u = "root"; 
$p = "";
$db = "user";
$msg = "";

try
{
    $con = new PDO("mysql:host=$h; dbname=$db", $u, $p);
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

        if(isset($_POST["sub"]))
        {
            if(empty($_POST["usern"]) || empty($_POST["passw"]))
            {
                $msg = "<label>Please enter username/password!</label>";
            }
            else
            {
                $sqlquery = "SELECT * FROM myuser WHERE username = :username AND password = :password";
                $stat = $con->prepare($sqlquery);
                $stat->execute(
                        array(
                            ':username' => $_POST["usern"],
                            ':password' => $_POST["passw"]
                        )
                );
                $countrow = $stat->rowCount();
                if($countrow > 0)
                {
                    $_SESSION["username"] = $_POST["usern"];
                    header("Location: homepage.php");
                }
                else
                {
                    $msg = "<label>Invalid username/password</label>";
                }
            }
        }
}

catch(PDOException $er)
{
    $msg = $er->getMessage();
}   
?>
票数 0
EN

Stack Overflow用户

发布于 2018-06-17 19:55:57

尝试添加"http('s‘如果需要)://your_domain/homepage.php

票数 0
EN

Stack Overflow用户

发布于 2018-06-18 00:07:10

试着改变:

代码语言:javascript
复制
if($row) {

至:

代码语言:javascript
复制
if(!empty($row)) {

希望这能起作用。

如果解决方案#1不起作用,请尝试更改:

代码语言:javascript
复制
$row = mysqli_fetch_array($result);

至:

代码语言:javascript
复制
$row = mysqli_num_rows($result);

和:

代码语言:javascript
复制
if($row) {

至:

代码语言:javascript
复制
if($row > 0) {

;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50893794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档