Web ページにセキュリティを追加しようとしています。
私のウェブページ「page.html」には、多くの JavaScript スクリプトと HTML コードが含まれています。拡張子をphpに変更できます。私はそれで問題ありません。
session_start の仕組みを理解するために、インターネットで見つけたサンプル コードを使用しています。html 拡張子があれば問題なく動作しますが、ユーザーとパスを追加しなくても Web ページにアクセスできます。PHP拡張機能を使用すると、Webページからログインプロンプトが再び表示されます。php 拡張機能を使用すると、ブラウザで書いたときに Web ページにアクセスできません。
これは、アクセスをチェックするための私のコードです: checkAccess.php
<?php
session_start();
//check the autenticated value
if ($_SESSION["autenticado"] != "si") {
//if doesn't exits, goes to login webpage
header("Location: login.php");
exit();
}
?>
そして、html と php の Web ページに次の行を追加しました。
<?php include "checkAccess.php";?>
私は自分のページにhtmlでアクセスできるので、それが機能することを知っています。しかし、拡張子をphpに変更するとうまくいきません。
php.ini などで値を設定する必要はありますか?
セッションをチェックするために、他の php ファイルを追加します。
autenticacion.php:
<?
session_start();
if ($_POST["usuario"]=="user" && $_POST["contrasena"]=="123456"){
$_SESSION["autenticado"]= "SI";
header ("Location: mypage.php");
}else {
header("Location: login.php?errorusuario=si");
}
?>
login.php:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Autenticación PHP</title>
</head>
<body>
<h1>Formulario de autenticación</h1>
<?php if(isset($_GET['errorusuario'])){if ($_GET['errorusuario']=="si"){?>
<font color="red"><b>Datos incorrectos</b></font>
<?php }}else{?>
Introduce tu nombre de usuario y contraseña
<?}?>
<form action="autenticacion.php" method="POST">
<table border="0">
<tr><td>Nombre de usuario:</td><td><input name="usuario" size="25" value=""/></td></tr>
<tr><td>Contraseña:</td><td><input name="contrasena" size="25" type="password"/> </td></tr>
<tr><td/><td><input type="submit" value="Inicio de sesión"/></td></tr>
</table>
</form>
Para ingresar, débes ingresar <b>pablo</b> en el 1er campo y <b>123456</b> en el 2do.
</body>
</html>
ページのテストに xampp を使用しています。