Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有会话_start()的全局变量;_Php_Mysql_Mysqli - Fatal编程技术网

Php 具有会话_start()的全局变量;

Php 具有会话_start()的全局变量;,php,mysql,mysqli,Php,Mysql,Mysqli,我用php和mysql创建了一个登录表单 这是登录后应显示的页面: <?php session_start(); require_once 'helper.php'; if( ! isset ($_SESSION['user_id'] )){ header('location: index.php'); } ?> <?php include 'header.php'; ?> 但我不明白为什么,会议开始了;是在乞讨的一页 这是登录页面: <

我用php和mysql创建了一个登录表单

这是登录后应显示的页面:

<?php
session_start();
   require_once 'helper.php';

if( ! isset ($_SESSION['user_id'] )){

    header('location: index.php');
}
  ?>

 <?php
include 'header.php';
?>
但我不明白为什么,会议开始了;是在乞讨的一页

这是登录页面:

<?php
session_start();
require_once 'helper.php';

$error = '';

if (isset($_POST['submit'])) {
    $email = !empty($_POST['email']) ?
            trim($_POST['email']) : '';
    $password = !empty($_POST['password']) ?
            trim($_POST['password']) : '';

    if (!$email) {
        $error = '*הכנס אימייל';
    } elseif (!$password) {

        $error = '*הכנס סיסמה';
    } else {

        $sql = "SELECT * FROM users WHERE email = '$email' AND 
          password = '$password' ";
        $link = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD, MYSQL_DB);
        $result = mysqli_query($link, $sql);

        if ($result && mysqli_num_rows($result) > 0) {
            $user = mysqli_fetch_assoc($result);
            $_SESSION['user_id'] = $user['íd'];

            $_SESSION['user_name'] = $user['name'];

            header('location: posts.php');
        } else {
            $error = 'אימייל או סיסמה לא נכונים';
        }
    }
}
?>
<?php
include("header.php");
?>
<div id="space-signup"></div>
<div class="container">
    <section id="signup">
        <form action="" method="post" style="width:300px; margin:0 auto; ">

            <input type="email" name="email" placeholder="אימייל"  value="<?= old('email'); ?>" class="form-control">

            <input type="password" name="password" id="password"  
                   placeholder="סיסמה" class="form-control">

            <button type="submit" class="btn" name="submit" value="sign in"  
                    style="width:300px" >התחבר</button>
            <span class="sign-in-error"> <?= $error ?></span>
        </form>
    </section>
</div>

我认为你应该用$user['id']或者你的列名来代替$user['id']。 请参阅下面修改的代码

<?php
session_start();
require_once 'helper.php';

$error = '';

if (isset($_POST['submit'])) {
    $email = !empty($_POST['email']) ?
            trim($_POST['email']) : '';
    $password = !empty($_POST['password']) ?
            trim($_POST['password']) : '';

    if (!$email) {
        $error = '*הכנס אימייל';
    } elseif (!$password) {

        $error = '*הכנס סיסמה';
    } else {

        $sql = "SELECT * FROM users WHERE email = '$email' AND 
          password = '$password' ";
        $link = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD, MYSQL_DB);
        $result = mysqli_query($link, $sql);

        if ($result && mysqli_num_rows($result) > 0) {
            $user = mysqli_fetch_assoc($result);
            $_SESSION['user_id'] = $user['id'];

            $_SESSION['user_name'] = $user['name'];

            header('location: posts.php');
        } else {
            $error = 'אימייל או סיסמה לא נכונים';
        }
    }
}
?>
<?php
include("header.php");
?>
<div id="space-signup"></div>
<div class="container">
    <section id="signup">
        <form action="" method="post" style="width:300px; margin:0 auto; ">

            <input type="email" name="email" placeholder="אימייל"  value="<?= old('email'); ?>" class="form-control">

            <input type="password" name="password" id="password"  
                   placeholder="סיסמה" class="form-control">

            <button type="submit" class="btn" name="submit" value="sign in"  
                    style="width:300px" >התחבר</button>
            <span class="sign-in-error"> <?= $error ?></span>
        </form>
    </section>
</div>
在开始会话之前尝试调用ob_start,因为
如果默认情况下您的输出缓冲是关闭的,并且您不幸地将一个字节的数据发送回客户端,那么您的HTTP头已经被发送了。这有效地防止会话启动将cookie头传递回客户端。通过调用ob_start,您可以启用缓冲,从而延迟发送http头。

注释不用于扩展讨论;这段对话已经结束。
<?php
session_start();
require_once 'helper.php';

$error = '';

if (isset($_POST['submit'])) {
    $email = !empty($_POST['email']) ?
            trim($_POST['email']) : '';
    $password = !empty($_POST['password']) ?
            trim($_POST['password']) : '';

    if (!$email) {
        $error = '*הכנס אימייל';
    } elseif (!$password) {

        $error = '*הכנס סיסמה';
    } else {

        $sql = "SELECT * FROM users WHERE email = '$email' AND 
          password = '$password' ";
        $link = mysqli_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PWD, MYSQL_DB);
        $result = mysqli_query($link, $sql);

        if ($result && mysqli_num_rows($result) > 0) {
            $user = mysqli_fetch_assoc($result);
            $_SESSION['user_id'] = $user['id'];

            $_SESSION['user_name'] = $user['name'];

            header('location: posts.php');
        } else {
            $error = 'אימייל או סיסמה לא נכונים';
        }
    }
}
?>
<?php
include("header.php");
?>
<div id="space-signup"></div>
<div class="container">
    <section id="signup">
        <form action="" method="post" style="width:300px; margin:0 auto; ">

            <input type="email" name="email" placeholder="אימייל"  value="<?= old('email'); ?>" class="form-control">

            <input type="password" name="password" id="password"  
                   placeholder="סיסמה" class="form-control">

            <button type="submit" class="btn" name="submit" value="sign in"  
                    style="width:300px" >התחבר</button>
            <span class="sign-in-error"> <?= $error ?></span>
        </form>
    </section>
</div>