php中不能显示frameset
login_process.php:<?phpheader("content-type:text/html;charset=utf-8");session_start()...
login_process.php:
<?php
header("content-type: text/html;charset=utf-8");
session_start();
require './class/config.php';
$email=trim($_POST['login_author']);
$password=$_POST['login_password'];
$code1=$_POST['code1'];
if(!($_SESSION['code']==$code1)){
header("location: login.php?err=2");
exit();
}
$res=$bw->selectOnly('password,nickname,fg_status','mb_acc','email ='."'".$email."'");
if($res){
if($res['password'] == $password){
if($res['fg_status']==1){//验证好的
$_SESSION['name']=$res['nickname'];
header("location: ./admin/default.php");
exit();
}else if($res['fg_status'] ==0){//没有验证
$_SESSION['email_name']=$email;
header("location: active_email.php");
exit();
}else if($res['fg_status']==2){
echo "你的账号已经被禁用:";
exit();
}
}else{
header("location: login.php?err=1");
exit();
}
}
?>
default.php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>后台管理系统</title>
<?php
session_start();
if(!empty($_SESSION['name'])){
exit();
}
?>
</head>
<frameset rows="70,*" cols="*" frameborder="no" framespacing="0">
<frame frameborder="no" src="top.php" name="top" />
<frameset rows="*" cols="180,*" frameborder="no" framespacing="0">
<frame frameborder="no" scrolling="yes" src="left.html" name="left" />
<frame frameborder="no" src="main.html" name="main" />
</frameset>
</frameset>
</html>
问题1.不能显示frameset:已经是同编码utf-8 嵌入的top.html,man.html,left.html 没有问题,只有切换成.html才能显示,但这样又不能嵌入php 代码,
问题2:我这两个文件有什么需要改进有更好的 安全和严谨 方面的改进?
问题1,2都有建议让我吸纳,加最高分 展开
<?php
header("content-type: text/html;charset=utf-8");
session_start();
require './class/config.php';
$email=trim($_POST['login_author']);
$password=$_POST['login_password'];
$code1=$_POST['code1'];
if(!($_SESSION['code']==$code1)){
header("location: login.php?err=2");
exit();
}
$res=$bw->selectOnly('password,nickname,fg_status','mb_acc','email ='."'".$email."'");
if($res){
if($res['password'] == $password){
if($res['fg_status']==1){//验证好的
$_SESSION['name']=$res['nickname'];
header("location: ./admin/default.php");
exit();
}else if($res['fg_status'] ==0){//没有验证
$_SESSION['email_name']=$email;
header("location: active_email.php");
exit();
}else if($res['fg_status']==2){
echo "你的账号已经被禁用:";
exit();
}
}else{
header("location: login.php?err=1");
exit();
}
}
?>
default.php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>后台管理系统</title>
<?php
session_start();
if(!empty($_SESSION['name'])){
exit();
}
?>
</head>
<frameset rows="70,*" cols="*" frameborder="no" framespacing="0">
<frame frameborder="no" src="top.php" name="top" />
<frameset rows="*" cols="180,*" frameborder="no" framespacing="0">
<frame frameborder="no" scrolling="yes" src="left.html" name="left" />
<frame frameborder="no" src="main.html" name="main" />
</frameset>
</frameset>
</html>
问题1.不能显示frameset:已经是同编码utf-8 嵌入的top.html,man.html,left.html 没有问题,只有切换成.html才能显示,但这样又不能嵌入php 代码,
问题2:我这两个文件有什么需要改进有更好的 安全和严谨 方面的改进?
问题1,2都有建议让我吸纳,加最高分 展开
展开全部
这位朋友,你的问题可以如下方法决:
1、在frameset框架下,你忘记了一个标签的作用,即target,在此应该是将每个子页面的target属性设置成“target="main",即显示在你后台主框架右边最大的地方,这样就行了。另外,你既然是php的动态程序,建议统一为.php的文件名,方便操作。
2、你的代码问题,这样写不太好,代码不够健壮,以下做个示范。分开写:
(1)sessionCheck.php (验证是否用户已经登录,在需要的地方引用。)
<?php
session_start();
if(!empty($_SESSION['name'])){
header("location: login.php?err=2");//err2信息可以定义为未登录
exit();
}
?>
(2)err.php
<?php
echo "错误的访问,请好好检查!"
?>
(3)loginProcess.php
<?php
header("content-type: text/html;charset=utf-8");
session_start();
require './inc/sessionCheck.php';
require './class/config.php';
$email=trim($_POST['login_author']);
$password=$_POST['login_password'];
$code1=$_POST['code1'];
if(isset($_POST) && $_POST['submit']='登陆'){//判断是否有提交且为登录验证
$email=@trim($_POST['login_author']);
$password=@$_POST['login_password'];
$code1=@$_POST['code1'];
if(!empty($email) || !empty($password) || !empty($code1)){ //判断提交值是否为空
if(!($_SESSION['code']==$code1)){
header("location: login.php?err=2");
exit();
}//这一步是防止已经登录情况下重复登录的情况
//满足上述所有条件后进行数据库查询,并进行用户名及密码验证
$sql="SELECT 'password,nickname,fg_status,mb_acc' FROM '".$table."' WHERE 'email'='".$email."' ";//假设数据表为$table,email是用户名,这一步是关键!!!
$res=mysql_query($sql,$conn);
//$res=$bw->selectOnly('password,nickname,fg_status','mb_acc','email ='."'".$email."'");
if($res){
if($res['password'] == $password){
if($res['fg_status']==1){//验证好的
$_SESSION['name']=$res['nickname'];
header("location: ./admin/default.php");
exit();
}else if($res['fg_status'] ==0){//没有验证
$_SESSION['email_name']=$email;
header("location: active_email.php");
exit();
}else if($res['fg_status']==2){
echo "你的账号已经被禁用:";
exit();
}
}else{
header("location: login.php?err=1");
exit();
}
}
}
}
else{//凡是不符合上述条件的都跳转到错误页面 err.php(这个可以自己定义)
header("location: err.php");
die();
}
?>
(4)default.php
<html>
<?phph require './inc/sessionCheck.php';?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>后台管理系统</title>
</head>
<frameset rows="70,*" cols="*" frameborder="no" framespacing="0">
<frame frameborder="no" src="top.html" name="top" />
<frameset rows="*" cols="180,*" frameborder="no" framespacing="0">
<frame frameborder="no" scrolling="yes" src="left.html" name="left" />
<frame frameborder="no" src="main.html" name="main" />
</frameset>
</frameset>
</html>
###########下面以1个框架下显示菜单项示例##########
假设有个admin_index.php (这个就是你登录成功后显示在main主框架下的页面),左边菜单只是个控制器作用。
左边菜单第1个按键是“后台首页”,那么对应链接应该是:
<a href="/admin_index.php" target="main">后台首页</a> [能否显示在框架,关键就在target属性],其它页面也是如此设置。
以上望采纳,谢谢!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询