Просмотр полной версии : Открытие html страницы посредством php ...
http://xmages.net/out.php/i372306_index.png
Проблема состоит в том как открыть обычную html страницу через PHP , т.е. - чтобы после ввода логина пароля php не директил просто на страницу а открывал ее в себе ... И чтобы при входе на эту html страницу у нас редирект на php Логин/пароль .
Для пример :
у нас есть :
index.php
yes.html
no.html
при входе на index.php мы вводим правильные логин/пароль(логин парольпусть будут вшиты в сам код...) - открывается html страница yes.html / ну если же введенные данные не верны тогда редирект на no.html . Но в этом случае , если я просто иду на site.ru/yes.html , происходит редирект на site.ru/index.php
вродь понятно объяснил , помогите плз .
Pernat1y
31.07.2009, 17:47
просто проверяй, залогинен-ли пользователь, и в зависимости от результата суй в ифрэйм свою страницу
Pashkela
31.07.2009, 17:54
Зачем iframe? Есть if и есть <<<HTML.... HTML; или просто
echo '<td>
<td><td><td><td><td><td>
<td><td><td><td><td>
<td>';
if ($user_login==true)
{ include('yes.html'); }
else include('no.html');
если чего не так поправьте могу ошибаться
Ребят , скиньте готовый код - т.к - не получается ...
каждому +10
<form method="POST" action="">
<input type="text" name="user">
<input type="password" name="pass">
<input type="submit" value="Eneter">
<? if((isset($_POST['pass'])) and (isset($_POST['user'])))
{
if (($_POST['pass']=='password') and ($_POST['user']=='user'))
{ include('./yes.html');}
else include('./no.html'); }
так?
FireFenix
31.07.2009, 18:25
<?php
$file['no'] = 'no.html';
$file['yes'] = 'no.html';
if ($_GET['login'] == $login && $_GET['pass'] == $pass)
{
$content = file_get_contents($file['yes']);
} else {
$content = file_get_contents($file['no']);
}
echo ($content);
?>
Pashkela
31.07.2009, 18:37
))) аааа, не успел!!!! Но всё равно выложу, т.к. у меня больше условиям задачи соотвествует:
index.php:
<?php
@ini_set("display_errors","0");
$submit = $_POST['submit'];
$login = $_POST['login'];
$pass = $_POST['pass'];
if(isset($submit) && !empty($login) && !empty($pass)) {
if ($login!= 'admin' && $pass!='123') {
header ('location:no.php') or die('error');
} else {
echo '<center><b>
Вы ввели правильный пароль, добро пожаловать в админку!
<b>
</center>
редактировать разделы:';// тут типо код yes.html
}
} else {
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text; charset=windows-1251">
<title>Логин</title>
</head>
<bоdу>
<form method="post">
<table>
<tr><td><span>Логин:</span></td><td><input type="text" name="login" /></td></tr>
<tr><td><span>Пароль:</span></td><td><input type="password" name="pass" /></td></tr>
</table>
<input type="submit" name="submit" value="Войти:" />
</form>
</bоdу>
</html>
<?}?>
просто не no.html, а no.php, чтобы определять рефа, код no.php:
<?php
if (getenv("HTTP_REFERER")!='http://site.ru/index.php') exit;
else echo 'Неверный логин или пароль!!!'; exit;
?>
Pashkela
if (getenv("HTTP_REFERER")!='http://site.ru/index.php') exit;
Потделать реферер непроблема, сам знаеш:
CURLOPT_REFERER
index.php
<?php
session_start();
$login = 'admin';
$pass = '123';
function Form()
{
echo '<table border="1" align="center">
<form method="post" enctype="application/x-www-form-urlencoded" action='.$_SERVER['PHP_SELF'].'>
<tr>
<td colspan="2">Авторизация</td>
</tr>
<tr>
<td>Логин</td>
<td><input type="text" size="20" maxlength="20" name="login"></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" size="20" maxlength="20" name="pass"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="login"></td>
</tr>
</form>
</table>
';
}
if(empty($_POST['login']) || empty($_POST['pass']))
{
Form();
exit;
}
if($_POST['login'] === $login && $_POST['pass'] === $pass)
{
$_SESSION['login'] = 'yes';
header('Location: yes.php');
echo 'Вы авторизованы, перейдите по ссылке: <a href="yes.php">ССЫЛКО</a>';
exit;
} else {
echo '<center><font color="red">Пароль неверный</font></center>';
Form();
$_SESSION['login'] = 'no';
exit;
}
?>
yes.php
<?php
session_start();
if(!isset($_SESSION['login']) || $_SESSION['login'] == 'no')
{
header('Location: index.php');
exit;
}
?>
а тут всякая хрень которую видно только если авторизация успешна
Писал быстро поетому мог гдето что-то упустить, но вроде не упустил. Обязательное условие register_globals=off;
При правильной авторизации перенаправление на yes.php, при неправильно снова покажет форму.
echo 'Вы авторизованы, перейдите по ссылке: <a href="yes.php">ССЫЛКО</a>';
header('Location: yes.php');
Местами поменять надо
Без разницы, если браузер поддерживает редиректы, то в любом случае ты неуспееш увидеть ЕХО, будет редирект. Если же не подддреживает то тоже без разницы будет ЕХО, потом несработает редирект либо несработает редирект и будет ЕХО.
Ну да, если варнинг и раскрытие путей не волнует, то без разницы
Будь добр покажи варнинг и раскрытие путей.
Pashkela
31.07.2009, 21:58
Потделать реферер непроблема, сам знаеш:
CURLOPT_REFERER
я пошутил в честь дня сисадмина - кстати, всех с праздником - на самом деле всё это бред, нахрена 3 страницы аж и переадресации туда-сюда, если можно вообще всё в одну запихать
Вот тебе пример того что выдается при удачной авторизации:
Вы авторизованы, перейдите по ссылке: ССЫЛКО
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\fepo.ru\www\gg\index.php:40) in Z:\home\fepo.ru\www\gg\index.php on line 41
Тогда мне несовсем понятно почему поменяв местами ехо и редирект такого варнинга не возникнет.
Потому что заголовок должен идти до выдачи содержимого страницы, а не после
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot