PHP ?!?
5 отговора
406 прегледа
PHP ?!?
Здравейте, прегледах темата за "Предаване на данни чрез POST или GET използвайки единствено PHP код".
Писах вече за един мой проблем, все още нерешен, получих идеи, но на практика не успях да ги реализирам.
За да ви стане ясно какво точно искам, ще опиша по подробно това което правя.
Имам множество директории с файлове в тях.
В основната директория имам индексен файл, който е началната форма на страницата която правя.
ИСКАМ, ДА ЗАЩИТЯ ОСТАНАЛИ ФАЙЛОВЕ, ДА НЕ МОГАТ ДА БЪДАТ ЗАРЕЖДАНИ БЕЗ ПОТРЕБИТЕЛЯТ ДА Е МИНАЛ ПРЕЗ ИНДЕКСНИЯ ФАЙЛ КОЙТО Е В ОСНОВАТА.
Намерих няколко решения, но ми се струват непрофесионални.
Дадоха ми съвет да ползвам "header:location...." в началото на всеки един файл, който да ме препраща автоматично към индексния, ако дадено условие на отговаря на истината.
Така и не успях да го направя, дава ми грешки като ползвам "header".
Дайте ми съвет моля, как е най-удобно да направя това което искам
Смятате ли, че да пиша код в началото на всеки един файл, за да правя проверки е добър начин ?, защото аз за друг не се сещам.
Благодаря Ви.
Писах вече за един мой проблем, все още нерешен, получих идеи, но на практика не успях да ги реализирам.
За да ви стане ясно какво точно искам, ще опиша по подробно това което правя.
Имам множество директории с файлове в тях.
В основната директория имам индексен файл, който е началната форма на страницата която правя.
ИСКАМ, ДА ЗАЩИТЯ ОСТАНАЛИ ФАЙЛОВЕ, ДА НЕ МОГАТ ДА БЪДАТ ЗАРЕЖДАНИ БЕЗ ПОТРЕБИТЕЛЯТ ДА Е МИНАЛ ПРЕЗ ИНДЕКСНИЯ ФАЙЛ КОЙТО Е В ОСНОВАТА.
Намерих няколко решения, но ми се струват непрофесионални.
Дадоха ми съвет да ползвам "header:location...." в началото на всеки един файл, който да ме препраща автоматично към индексния, ако дадено условие на отговаря на истината.
Така и не успях да го направя, дава ми грешки като ползвам "header".
Дайте ми съвет моля, как е най-удобно да направя това което искам
Смятате ли, че да пиша код в началото на всеки един файл, за да правя проверки е добър начин ?, защото аз за друг не се сещам.
Благодаря Ви.
Re: PHP ?!?
В началото на индексния файл регистрираш сесийна променлива:
session_start();
$_SESSION['logged'] = true;
Пишеш следното нещо във файл и го кръщаваш примерно: login.inc.php
В началото на всеки файл, който искаш да бъде защитен, пишеш следното:
require "login.inc.php";
Но да бъде в самото начало...да няма никакъв код преди това!
"If a man hasn't discovered something that he will die for, he isn't fit to live."
session_start();
$_SESSION['logged'] = true;
Пишеш следното нещо във файл и го кръщаваш примерно: login.inc.php
<?
session_start();
if (!$_SESSION['logged']) {
header("Location: index.php");
exit;
}
?>
В началото на всеки файл, който искаш да бъде защитен, пишеш следното:
require "login.inc.php";
Но да бъде в самото начало...да няма никакъв код преди това!
"If a man hasn't discovered something that he will die for, he isn't fit to live."
Re: Но да бъде в самото начало...да няма никакъв к
> Но да бъде в самото начало...да няма никакъв код преди това!
zashto da niama kod predi tova??
tova e drug variant, dosta chesto polzvan v praktikata:
[login.php]
<?
// ...
session_start();
$username = $_POST["userid"];
$password = md5(md5($_POST["secret"]));
session_register('username');
session_register('password');
// ...
?>
[user.php]
<?
// ...
session_start();
$UserID = $_SESSION['username'];
$Password = $_SESSION['password'];
if ("$UserID" == "" || "$Password" == "") {
session_unset();
header("location: index.php");die();
} else {
// ...
?>
tova e drug variant, dosta chesto polzvan v praktikata:
[login.php]
<?
// ...
session_start();
$username = $_POST["userid"];
$password = md5(md5($_POST["secret"]));
session_register('username');
session_register('password');
// ...
?>
[user.php]
<?
// ...
session_start();
$UserID = $_SESSION['username'];
$Password = $_SESSION['password'];
if ("$UserID" == "" || "$Password" == "") {
session_unset();
header("location: index.php");die();
} else {
// ...
?>
Re: PHP ?!?
header() ти дава грешки, защото бровсера не може да приеме хеадери след като вече е почнал оутпута. Ако редирецтването те устроива, ето какво използвам аз:
function redirect($where)
{
echo "<script language=javascript type=text/javascript>
self.location.href='".$where."';
</script>";
}
и я извикваш като
redircect('index.php');
--
1000 кредита за всеки участник подарък
function redirect($where)
{
echo "<script language=javascript type=text/javascript>
self.location.href='".$where."';
</script>";
}
и я извикваш като
redircect('index.php');
--
1000 кредита за всеки участник подарък
дааа
Не видях изобщо човекът да иска username и password...така че това, което си написал е излишно. А и по този начин във всеки файл трябва да пише един и същи код...ако има 200 файла какво става?!
Трябва да бъде в началото, за да сработи header()-а.
"If a man hasn't discovered something that he will die for, he isn't fit to live."
Трябва да бъде в началото, за да сработи header()-а.
"If a man hasn't discovered something that he will die for, he isn't fit to live."
а ако не искаш да редиректваш...
<?
session_start();
if (!$_SESSION['logged']) {
// е тука може да предизвикаш грешка 404
// така юзера ще остане с впечатление
// че такъв файл няма....
// или
// може да си отпечаташ вежливо съобщение, че някой е сбъркал
// и трябва да ходи едикъде си
exit;
}
?>
[линк]
session_start();
if (!$_SESSION['logged']) {
// е тука може да предизвикаш грешка 404
// така юзера ще остане с впечатление
// че такъв файл няма....
// или
// може да си отпечаташ вежливо съобщение, че някой е сбъркал
// и трябва да ходи едикъде си
exit;
}
?>
[линк]