@andreykasmirnov

Как сделать так, чтобы не создавалось много файлов php после обновления страницы,а только один файл переменной $to после регистрации?

Код:
<?php 
$to = substr(md5(time()), 0, 8) .'.php'; // 8 - количество символов
$word = "<?php echo 123; ?>";
    file_put_contents($to, $word);

$file = 'text.txt';
$text = file_get_contents($file);
    echo file_get_contents( 'text.txt' );
    // Обработчик HTML-формы 

  ///////////////////////////////////////////////// 
  // 1. Блок проверки правильности данных 
  ///////////////////////////////////////////////// 
  // Удаляем лишние пробелы 
  $_POST['name'] = trim($_POST['name']); 
  $_POST['pass'] = trim($_POST['pass']); 
  $_POST['pass_again'] = trim($_POST['pass_again']); 
  // Проверяем не пустой ли суперглобальный массив $_POST 
  if(empty($_POST['name'])) exit(); 
  // Проверяем правильно ли заполнены обязательные поля 
  if(empty($_POST['name'])) exit('Поле "Имя" не заполнено'); 
  if(empty($_POST['pass'])) exit('Одно из полей "Пароль" не заполнено'); 
  if(empty($_POST['pass_again'])) exit('Одно из полей "Пароль" не заполнено'); 
  if($_POST['pass'] != $_POST['pass_again']) exit('Пароли не совпадают'); 
  // Если введён e-mail проверяем его на соответсвие 
  if(!empty($_POST['email'])) 
  { 
    if(!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['email'])) 
    { 
      exit('Поле "E-mail" должно соответствовать формату somebody@somewhere.ru'); 
    } 
  } 

  ///////////////////////////////////////////////// 
  // 2. Блок проверки имени на уникальность 
  ///////////////////////////////////////////////// 
  // Имя файла данных 
  $filename = "text.txt";  
  // Проверяем не было ли переданное имя 
  // зарегистрировано ранее 
  $arr = file($filename); 
  foreach($arr as $line) 
  { 
    // Разбиваем строку по разделителю :: 
    $data = explode("::",$line); 
    // В массив $temp помещаем имена уже зарегистрированных 
    // посетителей 
    $temp[] = $data[0]; 
  } 
  // Проверяем не содержится ли текущее имя 
  // в массиве имён $temp 
  if(in_array($_POST['name'], $temp)) 
  { 
    exit("Данное имя уже зарегистрировано, пожалуйста, выберите другое"); 
  } 

  ///////////////////////////////////////////////// 
  // 3. Блок регистрации пользователя 
  ///////////////////////////////////////////////// 
  // Помещаем данные в текстовый файл 
  $fd = fopen($filename, "a"); 
  if(!$fd) exit("Ошибка при открытии файла данных"); 
  $str = $_POST['name']."::". 
         $_POST['pass']."::". 
         $_POST['email']."::". 
         $to."\r\n"; 
  fwrite($fd,$str); 
  fclose($fd); 
  // Осуществляем перезагрузку страницы, 
  // чтобы сбросить POST-данные 
  echo "<HTML><HEAD> 
<META HTTP-EQUIV='Refresh' CONTENT='0; URL='1.php'>
        </HEAD></HTML>"; 
?>


PHP

<?php
$to = substr(md5(time()), 0, 8) .'.php'; // 8 - количество символов
$word = "<?php echo 123; ?>";
file_put_contents($to, $word);

$file = 'text.txt';
$text = file_get_contents($file);
echo file_get_contents( 'text.txt' );
// Обработчик HTML-формы

/////////////////////////////////////////////////
// 1. Блок проверки правильности данных
/////////////////////////////////////////////////
// Удаляем лишние пробелы
$_POST['name'] = trim($_POST['name']);
$_POST['pass'] = trim($_POST['pass']);
$_POST['pass_again'] = trim($_POST['pass_again']);
// Проверяем не пустой ли суперглобальный массив $_POST
if(empty($_POST['name'])) exit();
// Проверяем правильно ли заполнены обязательные поля
if(empty($_POST['name'])) exit('Поле "Имя" не заполнено');
if(empty($_POST['pass'])) exit('Одно из полей "Пароль" не заполнено');
if(empty($_POST['pass_again'])) exit('Одно из полей "Пароль" не заполнено');
if($_POST['pass'] != $_POST['pass_again']) exit('Пароли не совпадают');
// Если введён e-mail проверяем его на соответсвие
if(!empty($_POST['email']))
{
if(!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i", $_POST['email']))
{
exit('Поле "E-mail" должно соответствовать формату somebody@somewhere.ru');
}
}

/////////////////////////////////////////////////
// 2. Блок проверки имени на уникальность
/////////////////////////////////////////////////
// Имя файла данных
$filename = "text.txt";
// Проверяем не было ли переданное имя
// зарегистрировано ранее
$arr = file($filename);
foreach($arr as $line)
{
// Разбиваем строку по разделителю ::
$data = explode("::",$line);
// В массив $temp помещаем имена уже зарегистрированных
// посетителей
$temp[] = $data[0];
}
// Проверяем не содержится ли текущее имя
// в массиве имён $temp
if(in_array($_POST['name'], $temp))
{
exit("Данное имя уже зарегистрировано, пожалуйста, выберите другое");
}

/////////////////////////////////////////////////
// 3. Блок регистрации пользователя
/////////////////////////////////////////////////
// Помещаем данные в текстовый файл
$fd = fopen($filename, "a");
if(!$fd) exit("Ошибка при открытии файла данных");
$str = $_POST['name']."::".
$_POST['pass']."::".
$_POST['email']."::".
$to."\r\n";
fwrite($fd,$str);
fclose($fd);
// Осуществляем перезагрузку страницы,
// чтобы сбросить POST-данные
echo "
";
?>
Переменная $to должна записываться в file.txt через переменную $str и после регистрации создавать только один php файл. А пока создает много.

Помогите, пожалуйста, исправить код
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 2
@ksnk
Много файлов - это про первые 3 строчки скрипта ? А накой они вообще создаются ? Выкинуть не пробовал ?
Ответ написан
Комментировать
zorba_buddha
@zorba_buddha
IT
начните уже зарегистрированных пользователей в базе хранить.
а вообще у меня от вашего кода глаза текут...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 10:00
10000 руб./за проект
29 мар. 2024, в 09:59
750 руб./в час
29 мар. 2024, в 09:55
50000 руб./за проект