标题位置问题



我有一个注册表单。其中包含字段(如名、姓、电子邮件、密码、重新键入密码等)和注册按钮。在注册页面,用户可以把url从login。php改成home。php然后用错误的方式访问主页。为此,我使用了一个小的PHP逻辑来防止这种情况。下面是PHP代码:

if(isset($_POST['sub'])) {
header("location:home.php");
} else {
header("location:login.php");
}

我把这段PHP代码保存在home。PHP页面上,因为用户错误地访问了那个页面。" sub "只是注册按钮的名称。下面是该按钮的HTML代码:

<input type="button" type="submit" value="Create An Account" name="sub" class="but" id="press" style="margin-top:-1px; font-family:'Rajdhani'; border: none; border-radius:25px; outline: none" onclick="checkEmail()"></input>

有了PHP代码,它就能工作了。比如,我不能在注册页面将URL更改为home。php。如果我尝试这样做,它只会把我送回注册页面,相同的页面,所以我不能访问主页,除非我正确提交注册表单。这就是问题所在。如果我正确提交了注册表单,并且所有内容都正确验证了,那么当我单击注册按钮时,它应该重定向到主页,因为我正确地访问了它,它之前没有使用PHP代码。但是现在,使用这段PHP代码,当我正确填写注册表单的所有字段并单击注册按钮时,它只会将我发送回相同的页面(注册。PHP),而不会将我发送到主页(home.php)。下面是对我的表单(所有字段和提交按钮都在这里)的操作:

<form method="post" action="javascript:void(0)" id="mainForm">  

它是javascript:void(0),因为在另一个文件上,我有一些AJAX运行错误消息,所以它不是home.php,但我认为这是它不工作的原因,因为动作不是home.php,但如果我把它保持为home.php, AJAX将不起作用,所以我需要把它保持为javascript:void(0)的AJAX工作。所以,我需要保持动作javascript:void(0),但在同一时间,确保PHP url的东西是工作的,以及

所以,总而言之,不能更改URL的逻辑是有效的。如果他们试图将URL更改为home.php,它只会重定向到相同的页面login.php,这很好。现在,以前没有PHP代码,当您注册时,您将被带到主页(存储数据的地方),数据将使用会话表示。只有当每个字段都被正确填充和验证时,才会发生这种情况,您才会被重定向。即使是现在,使用这段PHP代码,它也只在每个字段都经过验证时才会发生,但是当正确时,它只是重定向到同一个页面,而不是主页。所以,我需要解决这个特殊的问题。

有什么帮助吗?请。谢谢你。

就像在评论中讨论的那样,试试这个代码片段,看看它是否适合你。

home。

<?php
session_start();

if (!isset($_SESSION['user_session'])) {
header("location:login.php"); //Not logged in redirect to login
}

and onLogin.php

<?php
session_start();
if (isset($_SESSION['user_session'])) {
header("location:home.php"); //yes logged in redirect to homepage
}

希望这对你有帮助。欢迎查询

感谢我忘了添加。在成功注册/登录时设置会话。例如:

$_SESSION['user_session'] = $row['user_id'];

更新02login。

<?php
session_start();
if (isset($_SESSION['user_session'])) {
header("location:home.php"); //yes logged in redirect to homepage
}

if(isset($_POST['sub'])) {
// username and password sent from form 
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'rootpassword');
define('DB_DATABASE', 'database');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);


$myusername = mysqli_real_escape_string($db,$_POST['username']);
$mypassword = mysqli_real_escape_string($db,$_POST['password']); 

$sql = "SELECT id FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$active = $row['user_id'];

$count = mysqli_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

if($count == 1) {
$_SESSION['user_session'] = $row['user_id'];

header("location: home.php");
}else {
$error = "Your Login Name or Password is invalid";
}
}

最新更新