PDA

Просмотр полной версии : Открытие html страницы посредством php ...


Lionis
31.07.2009, 17:40
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>';

xa-xa89
31.07.2009, 17:56
if ($user_login==true)
{ include('yes.html'); }
else include('no.html');
если чего не так поправьте могу ошибаться

Lionis
31.07.2009, 18:10
Ребят , скиньте готовый код - т.к - не получается ...
каждому +10

xa-xa89
31.07.2009, 18:23
<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;
?>

b3
31.07.2009, 20:44
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, при неправильно снова покажет форму.

Kaimi
31.07.2009, 21:23
echo 'Вы авторизованы, перейдите по ссылке: <a href="yes.php">ССЫЛКО</a>';
header('Location: yes.php');

Местами поменять надо

b3
31.07.2009, 21:29
Без разницы, если браузер поддерживает редиректы, то в любом случае ты неуспееш увидеть ЕХО, будет редирект. Если же не подддреживает то тоже без разницы будет ЕХО, потом несработает редирект либо несработает редирект и будет ЕХО.

Kaimi
31.07.2009, 21:38
Ну да, если варнинг и раскрытие путей не волнует, то без разницы

b3
31.07.2009, 21:57
Будь добр покажи варнинг и раскрытие путей.

Pashkela
31.07.2009, 21:58
Потделать реферер непроблема, сам знаеш:
CURLOPT_REFERER


я пошутил в честь дня сисадмина - кстати, всех с праздником - на самом деле всё это бред, нахрена 3 страницы аж и переадресации туда-сюда, если можно вообще всё в одну запихать

Kaimi
31.07.2009, 22:13
Вот тебе пример того что выдается при удачной авторизации:

Вы авторизованы, перейдите по ссылке: ССЫЛКО
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

b3
01.08.2009, 11:14
Тогда мне несовсем понятно почему поменяв местами ехо и редирект такого варнинга не возникнет.

Kaimi
01.08.2009, 12:03
Потому что заголовок должен идти до выдачи содержимого страницы, а не после