この問題は本当に私に苦労しています。セッション開始が '開始'でない
<?php
$servername = "localhost";
$username = "dbroot";
$password = "dbpassword";
$dbname = "dbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>
フォーム:私は4つのファイル、DBの設定のための1、ログインページの他、ログイン処理とログイン成功後のリダイレクトのためのLSAT 1第3回)を持っている これは私のDB-connect.phpです
<form action="includes/login-process.php" id="login" class="formoid-metro-black" style="background-color:transparent;font-size:14px;font-family:'Open Sans','Helvetica Neue','Helvetica',Arial,Verdana,sans-serif;color:#FFFFFF;max-width:400px;min-width:150px; float:right;" method="post" enctype="multipart/form-data"><div class="title"><h2>Log In</h2></div>
<div class="element-input"><label class="title">Username<span class="required">*</span></label><input class="large" type="text" name="username" required="required"/></div>
<div class="element-password"><label class="title">Password<span class="required">*</span></label><input class="large" type="password" name="password" value="" required="required"/></div>
<div class="submit"><input type="submit" name="submit" value="Log In"/></div></form><script type="text/javascript" src="forms/sign-up-form_files/formoid1/formoid-metro-black.js"></script>
ログイン-process.php:私のユーザー-login.phpで
<?php include ("db-connect.php");
if(isset($_POST['submit'])){
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$encrypt = md5($password);
$userquery = "SELECT * FROM user WHERE `user-username`='$username' AND `user-password`='$password'";
$run = mysqli_query($conn,$userquery);
if(mysqli_num_rows($run)>0){
$_SESSION['username']=$username;
?>
<script>alert('Login successful.')</script>
<script>window.open('../user-profile.php','_self')</script>
<?php
}
else {
?>
<script>alert('Username or Password Incorrect.','_self')</script>
<script>window.open('../user-login.php','_self')</script>
<?php
}
}
?>
そして、私のログインページでは、私は正常にログインした後、スクリプトアラートが成功していることで証明し、しかし、 、としてuser-profile.phpが開きます(ここではsession_start()を上に置いています)。ifステートメント内の条件を直接実行し、すでにログインしているという事実は無視します。 これは私のuser-profile.phpです:
<!DOCTYPE html>
<?php
session_start();
if(!isset($_SESSION['username'])){
?>
<script> alert('Please Log-in first.','_self')</script>
<?php include_once('user-login.php');
}
else {
$first_name= $_SESSION['fname'];
$first_name= ucfirst($first_name);
?>
//rest of my code
上記のコードは、else文の中で実行する必要がありますが、代わりに最初にログインするよう警告を受けています。 ($ firstnameコードを無視して、私は下の出力のためにそれを取得したい)。これについてあなたが知っている人はいますか?もしそうなら、私を助けてください。ありがとうございました!
'$ _SESSION ['username']'の値を設定しましたか? –
はい私のlogin-process.phpコードを参照 – IlanaWexler
本当のデータベースのユーザー名とパスワードを公開してもよろしいですか? – Shadow