您好controllerLoginUsu.php
:
<?php
require "dao/daoLoginUsu.php";
class LoginUsuario{
public function setDatos($aInput) {
$obj = json_decode($aInput, true);
$Dao = new daoLoginUsuario();
$Dao->setDataDato($obj);
$msj = $Dao->setDataDato($obj);
if($msj === 'si'){
return $msj;
}else{
return $msj;
}
}
}
?>
好吧,在$msj
变量中,我得到了一个&#34; si&#34;或&#34;不&#34; ,这是查询的答案。
如果$msj
是&#34; si&#34;我需要开始一个会话并重定向到http://localhost:8080/formulario_web/formulario/formulario_lazos.html
我只有在开始会话时才需要formulario_lazos.html
:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type ="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type ="text/css" href="css_propio/boostrap.estilo.css">
<link rel="stylesheet" type ="text/css" href="css_propio/boostrap.estilo.datepicker.css">
<link rel="stylesheet" type ="text/css" href="css_propio/bootstrap.old.datepicker.css">
<link rel="stylesheet" type ="text/css" href="css/boostrap.datepicker.css">
<link rel="stylesheet" type ="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type ="text/css" media="all" href="css/bootstrap-select.min.css">
<title>FORMULARIO</title>
</head>
<body>
<div id="main_container_id">
<!--INICIO ENCABEZADO-->
<div class="container-fluid" id="encabezado_container_id"></div>
<!--FIN ENCABEZADO-->
<!--INICIO CONTENEDOR OBLIGATORIO-->
<div id="tarea_container_id"></div>
<!--FIN CONTENEDOR OBLIGATORIO-->
<!--INICIO CONTENEDOR INFORMACION DE REGISTRO-->
<div class="container" id="informacion_de_registro_container_id"></div>
<!--FIN CONTENEDOR INFORMACION DE REGISTRO-->
<!--INICIO MODAL INGRESAR NUEVA TAREA-->
<div id="modal_ingresar_tarea_id" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"></div>
<!--FIN MODAL INGRESAR NUEVA TAREA-->
<!--INICIO MODAL DESCRIPCION TAREA-->
<div id="modal_descripcion_tarea_id" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModal3Label"></div>
<!--FIN MODAL INGRESAR NUEVA TAREA-->
<!--INICIO MODAL HISTORIAL-->
<div id="modal_historial_tarea_id" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModal5Label"></div>
<!--FIN MODAL HISTORIAL-->
<!--INICIO MODAL ELIMINAR TAREA-->
<div id="modal_eliminar_tarea_id" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div>
<!--FIN MODAL ELIMINAR TAREA-->
<!--INICIO MODAL SELECCIONAR UNA TAREA-->
<div id="modal_seleccionar_tarea_id" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModal2Label"></div>
<!--FIN MODAL ELIMINAR TAREA-->
<!--INICIO MODAL ELIMINAR TAREA-->
<div id="modal_descripcion_problema_id" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModal4Label"></div>
<!--FIN MODAL ELIMINAR TAREA-->
</div>
<!--JQUERY-->
<script src="js/jquery-1.11.2.min.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/bootstrap-select.min.js"></script>
<script src="js/datepicker.js"></script>
<script src="js_propio/bootstrap-datepicker.js"></script>
<script src="js_propio/bootstrap-selectpicker.js"></script>
<script type="text/javascript" src="choona.js/choona.js"></script>
<script type="text/javascript" src="js/head.load.js"></script>
<script src="modulos/MainTarea.js"></script>
<script type="text/javascript">
$(document).ready( function() {
choona.startApp({
id : "main_container_id",
module : MainTarea,
config : {
'urlBase' : ''
}
});
});
</script>
<!--FIN JQUERY-->
</body>
</html>
我不知道我是如何正确地做到这一点的。抱歉,我的英文。
编辑:我总是需要返回$ msj。
答案 0 :(得分:1)
首先,您需要将formulario_lazos.html设为.php
文件,以便在其中使用php代码。
在$msg == "si"
您需要使用session_start()
启动会话的if条件中,然后使用header("Location: ...")
重定向到您的网页。您可以将$msg
附加到位置上的链接,稍后使用$_GET
<?php
require "dao/daoLoginUsu.php";
class LoginUsuario{
public function setDatos($aInput) {
$obj = json_decode($aInput, true);
$Dao = new daoLoginUsuario();
$Dao->setDataDato($obj);
$msj = $Dao->setDataDato($obj);
if($msj === 'si'){
session_start();
header('Location: http://localhost:8080/formulario_web
/formulario/formulario_lazos.php?msg='.$msg );
}else{
header('Locarion: another_location.html');
}
}
}
?>
在formulario_lazos.php中,通过在html代码的顶部添加一个php块来检查会话是否已经启动,确保会话状态不是NONE,如果是,则重定向到另一个页面:
<?php
if (session_status() == PHP_SESSION_NONE) {
header('Location: another_page.php');
}
echo $_GET['msg'];
?>
答案 1 :(得分:1)
如何做到这一点的一个例子:
<?php
session_start();
if ($msj === 'si') {
$_SESSION['msj'] = "si";
return $msj;
header("Location: /formulario_lazos.html");
exit; // Exits the script, redirecting the user to the page above
}
在formulario_lazos.html
中,您需要
<?php
session_start();
if ($_SESSION['msj'] == "si") {
?>
<!-- PUT YOUR HTML CODE FROM formulario_lazos.html HERE -->
<?php
} else {
echo "No session was set, you can't read this page!";
}
?>
请记住,当您使用header(Location: ...);
时,header
之前不能有任何输出(空白,HTML或PHP中的回显),否则它将无效 - 并添加PHP警告在error_log
中。如果需要在输出后重定向,则需要另一种重定向用户的方法。同样的事情适用于session_start();
- 它必须在任何输出之前被调用(这很好,没有理由为什么你以后可以把它放在后面 - 只需在打开你的PHP标签后放它)。
此外,如果您需要在此文件中使用PHP,则您的formulario_lazos.html
文件必须是.php文件(不是.html)。
答案 2 :(得分:0)
试试这个: 在 controllerLoginUsu.php
中<?php
require "dao/daoLoginUsu.php";
class LoginUsuario{
public function setDatos($aInput) {
$obj = json_decode($aInput, true);
$Dao = new daoLoginUsuario();
$Dao->setDataDato($obj);
$msj = $Dao->setDataDato($obj);
if($msj === 'si'){
if(empty(session_id())) //if not started we start it
session_start();
header('Location: http://localhost:8080/formulario_web/formulario/formulario_lazos.php' );
}else{
return $msj;
}
}
}
?>
然后将 formulario_lazos 改为 php 而不是 html 文件,因为我们需要检查会话的开头。 只需将此代码放在文件的最开头
即可if(empty(session_id()))
exit('No direct url access');
所以这种方式每当有人试图打开formulario_lazos.php时,我们会检查是否有开放会话,只有在我们有开会时才显示。