[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не работает
Guest
есть перенаправление

echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>";


как заменить на

header('Location:'. $_SERVER['PHP_SELF']);


у меня не работает



Спустя 20 минут, 44 секунды (7.07.2010 - 20:32) Slays написал(а):
header должен вызываться выше любого текста, вероятно по-этому.

Спустя 20 минут, 14 секунд (7.07.2010 - 20:53) Guest написал(а):
так а куда его вставить нужно?

Спустя 1 минута, 28 секунд (7.07.2010 - 20:54) Ice написал(а):
какой вопрос такой ответ - перед любым выводом в поток.
По посту не определить куда именно вставить - мало там листинга

Спустя 8 минут, 17 секунд (7.07.2010 - 21:02) Guest написал(а):
в этом документе?
<?
include ("blocks/bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь

// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!

session_start();


if (isset($_COOKIE['auto']) and isset($_COOKIE['login']) and isset($_COOKIE['password']))
{//если есть необходимые переменные
if ($_COOKIE['auto'] == 'yes') { // если пользователь желает входить автоматически, то запускаем сессии
$_SESSION['password']=strrev(md5($_COOKIE['password']))."b3p6f"; //в куках пароль был не зашифрованный, а в сессиях обычно храним зашифрованный
$_SESSION['login']=$_COOKIE['login'];//сессия с логином
$_SESSION['id']=$_COOKIE['id'];//идентификатор пользователя
}
}


if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существет логин и пароль в сессиях, то проверяем их и извлекаем аватар
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result = mysql_query("SELECT id,avatar FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db);
$myrow = mysql_fetch_array($result);
//извлекаем нужные данные о пользователе
}
?>

<td
valign="top" class="reklama">

<table
align='center' class='post_l' cellspacing="0" cellpadding="0">
<tr><td
class="tilmen">
<img
src='img/includ/kab13.png'>
</td>
</tr>
<tr>
<td
class='left_13'>
<?

if (!empty($_SESSION['login']) and !empty($_SESSION['password'])) {include ("blocks/nav_1.php");}
else
{
if (!isset($myrow['avatar']) or $myrow['avatar']=='') {
//проверяем, не извлечены ли данные пользователя из базы. Если нет, то он не вошел, либо пароль в сессии неверный. Выводим окно для входа. Но мы не будем его выводить для вошедших, им оно уже не нужно.
print <<<HERE
<form action="testreg.php" method="post">
<!-- testreg.php - это адрес обработчика. То есть, после нажатия на кнопку "Войти", данные из полей отправятся на страничку testreg.php методом "post" -->

<table align="center"><tr><td>
<label><strong>Логин:</strong>  </label><br>
<input class="knopka3" name="login" type="text" size="15" maxlength="15"

HERE;


if (isset($_COOKIE['login'])) //есть ли переменная с логином в COOKIE. Должна быть, если пользователь при предыдущем входе нажал на чекбокс "Запомнить меня"
{
//если да, то вставляем в форму ее значение. При этом пользователю отображается, что его логин уже вписан в нужную графу
echo ' value="'.$_COOKIE['login'].'">';
}


print <<<HERE
</td><tr>
<!-- В текстовое поле (name="login" type="text") пользователь вводит свой логин -->
<tr><td>
<label><strong>Пароль:</strong></label><br>
<input class="knopka3" name="password" type="password" size="15" maxlength="15"

HERE;


if (isset($_COOKIE['password']))//есть ли переменная с паролем в в COOKIE. Должна быть, если пользователь при предыдущем входе нажал на чекбокс "Запомнить меня"
{
//если да, то вставляем в форму ее значение. При этом пользователю отображается, что его пароль уже вписан в нужную графу
echo ' value="'.$_COOKIE['password'].'">';
}

print <<<HERE
<td><tr></table>
<!-- В поле для паролей (name="password" type="password") пользователь вводит свой пароль -->

<input name="save" type="checkbox" value='1'> Запомнить меня <br>

<input name="autovhod" type="checkbox" value='1'> Автоматический вход.

<br><br>
<div align="center">
<input class="knopka" type="submit" name="submit" value="Войти">
<!-- Кнопочка (type="submit") отправляет данные на страничку testreg.php -->
<br><br>
<a class='nav_link5' href="send_pass.php">Забыли пароль?</a><br>
<a class='nav_link5' href="reg.php">Регистрация</a>

<!-- ссылка на регистрацию, ведь как-то же должны гости туда попадать -->

</div></form>


HERE;
}
else
{
//при удачном входе пользователю выдается все, что расположено ниже между звездочками.
//************************************************************************************


print <<<HERE
<table align="center" cellspacing="0" cellpadding="0"><tr><td>
<img align="center" src="img/includ/lrek.png" width="100%" height="25">
</td></tr>
<tr><td>
<a class='nav_link5' href='page.php?id=
$_SESSION[id]'>Мой акаунт</a>  <a class='nav_link5' href='exit.php'>Выход</a><br><br>

<!-- Между оператором "print <<<HERE" выводится html код с нужными переменными из php -->
Вы вошли на сайт, как
$_SESSION[login]<br>
<!-- выше ссылка на выход из аккаунта -->

Ваш аватар:<br>
<img alt='
$_SESSION[login]' src='$myrow[avatar]'>
<!-- Выше отображается аватар. Его адрес содержит переменная
$myrow[avatar] -->

<!-- Именно здесь можно добавлять формы для отправки комментариев и прочего... -->
</td></tr></table>

HERE;
//************************************************************************************
//при удачном входе пользователю выдается все, что расположено ВЫШЕ между звездочками.

}

}

?>

Спустя 1 минута, 5 секунд (7.07.2010 - 21:04) Guest написал(а):
или тут

<?php
session_start();// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!

if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную

if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); //останавливаем выполнение сценариев
}
//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$login = stripslashes($login);
$login = htmlspecialchars($login);

$password = stripslashes($password);
$password = htmlspecialchars($password);

//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);


// дописываем новое********************************************

// подключаемся к базе

include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь

// минипроверка на подбор паролей

$ip=getenv("HTTP_X_FORWARDED_FOR");
if (empty($ip) || $ip=='unknown') { $ip=getenv("REMOTE_ADDR"); }

mysql_query ("DELETE FROM oshibka WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date) > 900");//удаляем ip-адреса ошибавшихся при входе пользователей через 15 минут.

$result = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'",$db);// извлекаем из базы колличество неудачных попыток входа за последние 15 минут у пользователя с данным ip
$myrow = mysql_fetch_array($result);

if ($myrow['col'] > 2) {
exit ("Вы набрали логин или пароль неверно 3 раза. Подождите 15 минут до следующей попытки."); //останавливаем выполнение сценариев


}

$password = md5($password);//шифруем пароль
$password = strrev($password);// для надежности добавим реверс
$password = $password."b3p6f";
//можно добавить несколько своих символов по вкусу, например, вписав "b3p6f". Если этот пароль будут взламывать методом подбора у себя на сервере этой же md5,то явно ничего хорошего не выйдет. Но советую ставить другие символы, можно в начале строки или в середине.

//При этом необходимо увеличить длину поля password в базе. Зашифрованный пароль может получится гораздо большего размера.



$result = mysql_query("SELECT * FROM users WHERE login='$login' AND password='$password' AND activation='1'",$db); //извлекаем из базы все данные о пользователе с введенным логином
//мы дописали «AND activation='1'», то есть пользователь будет искаться только среди активированных. Желательно добавить это условие к другим подобным проверкам данных пользователя

$myrow = mysql_fetch_array($result);
if (empty($myrow['id']))
{
//если пользователя с введенным логином и паролем не существует,то записываем ip пользователя и с датой ошибки

$select = mysql_query ("SELECT ip FROM oshibka WHERE ip='$ip'");
$tmp = mysql_fetch_row ($select);
if ($ip == $tmp[0]) {
//проверяем, есть ли пользователь в таблице "oshibka"
$result52 = mysql_query("SELECT col FROM oshibka WHERE ip='$ip'",$db);
$myrow52 = mysql_fetch_array($result52);

$col = $myrow52[0] + 1;//Если есть,то приплюсовываем количесво
mysql_query ("UPDATE oshibka SET col=$col,date=NOW() WHERE ip='$ip'");
}

else {
//если за последние 15 минут ошибок не было, то вставляем новую запись в таблицу "oshibka"
mysql_query ("INSERT INTO oshibka (ip,date,col) VALUES ('$ip',NOW(),'1')");
}

exit ("Извините, введённый вами логин или пароль неверный."); //останавливаем выполнение сценариев

}
else {

//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION['password']=$myrow['password'];
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];//эти данные очень часто используются, вот их и будет "носить с собой" вошедший пользователь

//Далее мы запоминаем данные в куки, для последующего входа.
//ВНИМАНИЕ!!! ДЕЛАЙТЕ ЭТО НА ВАШЕ УСМОТРЕНИЕ, ТАК КАК ДАННЫЕ ХРАНЯТСЯ В КУКАХ БЕЗ ШИФРОВКИ


if (isset($_POST['save'])){
//Если пользователь хочет, чтобы его данные сохранились для последующего входа, то сохраняем в куках его браузера
setcookie("login", $_POST["login"], time()+9999999);
setcookie("password", $_POST["password"], time()+9999999);
setcookie("id", $myrow['id'], time()+9999999);
}

if (isset($_POST['autovhod'])){
//Если пользователь хочет входить на сайт автоматически
setcookie("auto", "yes", time()+9999999);
setcookie("login", $_POST["login"], time()+9999999);
setcookie("password", $_POST["password"], time()+9999999);
setcookie("id", $myrow['id'], time()+9999999);}
}


echo "<html><head><meta http-equiv='Refresh' content='0; URL=index.php'></head></html>";

//перенаправляем пользователя на главную страничку, там ему и сообщим об удачном входе

?>

Спустя 2 часа, 51 минута, 47 секунд (7.07.2010 - 23:55) inpost написал(а):
Необходимо вставлять перед тегом <html>

Спустя 9 часов, 49 минут, 45 секунд (8.07.2010 - 09:45) Guest написал(а):
я уже везде пробывал, негде не получается.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.