Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
1 / 1 / 3
Регистрация: 02.02.2013
Сообщений: 28

Создание файла TXT с заданным именем файла

24.06.2013, 21:42. Показов 5466. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Нужна Ваша помощь.
Есть сайт, который находится на хостинге без MySQl.
Единственное решение для регистрации пользователей - создание TXT файла с их данными.

Помогите с кодом, который будет при регистрации создавать TXT файл с именем который будет логин (т.е. если логин при регистрации demo, то файл должен называться demo.txt) и чтобы в этом файле было значение 0 (нужен для сложения рейтинга пользователя +1).

HTML5
1
<input type="text" id="login" value="Введите логин"/>
P.S. И еще если кто может помогите с кодом который будет уведомлять при регистрации о том, что логин (файл TXT) уже занят.

Буду очень признателен за код или ссылку, где можно прочесть как это реализовать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.06.2013, 21:42
Ответы с готовыми решениями:

Запрет на создание файла с заданным именем
Как в папке запретить создания файла name? не всех файлов, а конкретный..

Создание текстового файла с заданным в ячейки именем
Добрый день. Прошу знающих людей помочь в создании макроса. Только учусь и просмотр и штудирование похожих тем результата не дали. ...

Vba создание .txt файла с пользовательским именем
Есть форма с textbox в который пользователи вводят имя будущего .txt файла. Введенное имя храню в переменной. Нужно создать файл с...

9
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
24.06.2013, 22:24
Если годится без перезагрузки jQuery-ajax-PHP
Тогда создайте в корне сайта папку users
И файлы
index.php
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Регистрация в файл</title>
<!-- Библиотека jquery -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
/*очищаем поле логина*/    
 $('input[name=login]').focus(function(){
    $(this).val("");
});
/*отправляем  логин кратким ajax - $.post*/   
 $('#regForm').submit (function(ev){
    ev.preventDefault();
      var login = $('#login').val();
  $.post(
       'saveuser.php',
        {login:login},
        function (data){
            $('#info').text(data)}
       );
});
});/*end  ready*/
</script>
 
 
</head>
 
<body>
<form  id="regForm"  >
    <input type="text" id="login" value="Введите логин" name="login"/>
    <input type="submit" name="submit" value="Submit">
</form>
<div id="info"></div>
 
</body>
</html>
saveuser.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php 
if (isset($_POST["login"])){
    $login=stripslashes(trim(htmlspecialchars($_POST['login'],ENT_QUOTES)));
    
    if (file_exists("users/$login.txt")){
    echo "Логин занят";
    }
else {
   $file1 = fopen("users/$login.txt","a+t"); 
 
 fwrite($file1,"0");
 fclose($file1);
 
  echo "Сохранено";
    }  
}
?>
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.06.2013, 22:30
а зачем для каждого пользователя создавать свой файл? Так много информации о каждом пользователе..? Это практически аналогично созданию отдельной таблицы для каждого нового пользователя - что, за редким исключением, лишнее..
0
1 / 1 / 3
Регистрация: 02.02.2013
Сообщений: 28
24.06.2013, 23:42  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
а зачем для каждого пользователя создавать свой файл? Так много информации о каждом пользователе..? Это практически аналогично созданию отдельной таблицы для каждого нового пользователя - что, за редким исключением, лишнее..
Большое спасибо за помощь!!! Вы мне который раз уже помогаете!!!

Вы спрашивали зачем это нужно? Ну как я сказал что на хостинге нет MySQL, то приходится так изощраться =)

Да и информации не так много о пользователе мне надо, всего его логин. При этом не нужен пароль (насчет входа я еще подумаю, думаю так же как и логин сохранять пароль в файл, хоть это и понятно что опасно для пользователя, ну надо еще подумать, может с Cookie поработать).

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

Просто я делаю типа обучающего приложения где пользователь с прохождением будет зарабатывать рейтинг (вот для чего мне нужен файл со значением 0).

А в конце обучения можно будет опубликовать результаты в общей таблицы.

Вот такой "геморой" с сайтом. Да и я еще плохо разбираюсь в MySQL чтобы на него переходить, мне проще работать с файлами, все таки Linux он и в Африке Linux.

Добавлено через 15 минут
Единственное что осталось это вывести после регистрации значение этого файла.
Я пытался сразу в echo написать массив $file1. Но выдает ошибку.
Помогите сделать чтобы после регистрации выводило "У вас $file1 баллов".
0
24.06.2013, 23:42

Не по теме:

Цитата Сообщение от studio56 Посмотреть сообщение
Большое спасибо за помощь
так я ж только спросил.. :swoon:

0
1 / 1 / 3
Регистрация: 02.02.2013
Сообщений: 28
24.06.2013, 23:43  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение

Не по теме:


так я ж только спросил.. :swoon:

Простите не тому ответил

....

Единственное что осталось это вывести после регистрации значение этого файла.
Я пытался сразу в echo написать массив $file1. Но выдает ошибку.
Помогите сделать чтобы после регистрации выводило "$login У вас $file1 баллов".
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.06.2013, 00:11
Цитата Сообщение от studio56 Посмотреть сообщение
Ну как я сказал что на хостинге нет MySQL, то приходится так изощраться =)
обычно данные в таком случае (когда их не так много, как у вас) хранятся в одном файле через разделитель. К примеру, у вас вполне можно все записывать в один файл, код наподобие такого
PHP
1
2
3
4
5
6
7
8
9
10
11
file_exists('bd.txt') || file_put_contents('bd.txt', NULL); //если файла не существует - создаем
 
$file = file( 'bd.txt', FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES ); //открываем файл
 
for ($i = 0, $cnt = count($bd); $i++) //пробегаемся в цикле
{
    if($bd[$i] == $login) //$login - переменная, полученная в результате обработки переданных данных POST
    {
        //нашли пользователя
    }
}
каждая новая строчка в файле bd.txt - новый пользователь (в строчке указывается его логин)

Добавлено через 21 минуту
вот полный пример регистрации
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Регистрация в файл</title>
<!-- Библиотека jquery -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
/*очищаем поле логина*/ 
 $('input[name=login]').focus(function(){
    $(this).val("");
});
/*отправляем  логин кратким ajax - $.post*/ 
 $('#regForm').submit (function(ev){
    ev.preventDefault();
      var login = $('#login').val();
  $.post(
       'saveuser.php',
        {login:login},
        function (data){
            $('#info').text(data)}
       );
});
});/*end  ready*/
</script>
 
 
</head>
 
<body>
<form  id="regForm"  >
    <input type="text" id="login" value="Введите логин" name="login"/>
    <input type="submit" value="Submit">
</form>
<div id="info"></div>
 
</body>
</html>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
 
if(isset($_POST['login']))
{
    $login = is_scalar($_POST['login']) ? trim($_POST['login']) : NULL;
    if(empty($login))
        echo 'Enter login...';
    else
    {
        $bdFile = './bd.txt';
        file_exists($bdFile) || file_put_contents($bdFile, NULL); //если файла не существует - создаем
 
        $bd = file( $bdFile, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES ); //открываем файл
        $status = true;
        for ($i = 0, $cnt = count($bd); $i++) //пробегаемся в цикле
        {
            $userInfo = explode('~|||~', $bd);
            if( isset($userInfo[0]) && $userInfo[0] == $login) //$login - переменная, полученная в результате обработки переданных данных POST
            {
                //нашли пользователя
                $status = false;
                break;
            }
        }
 
        if($status)
            file_put_contents( $bdFile, $login . '~|||~' . 0 . PHP_EOL, FILE_APPEND );
        else
            echo 'Sorry, login is buzy..';
    }
}
а вот вывод баллов по нику (если найдется такой)..
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<form method="post">
<input type="text" name="showUserInfo">
<input type="submit" value="Посмотреть количество баллов пользователя">
</form>
<?php 
if(isset($_POST['showUserInfo']))
{
    $login = is_scalar($_POST['showUserInfo']) ? trim($_POST['showUserInfo']) : NULL;
    if(empty($login))
        echo 'Enter login...';
    else
    {
        $bdFile = './bd.txt';
        file_exists($bdFile) || file_put_contents($bdFile, NULL); //если файла не существует - создаем
 
        $bd = file( $bdFile, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES ); //открываем файл
        $status = false;
        for ($i = 0, $cnt = count($bd); $i++) //пробегаемся в цикле
        {
            $userInfo = explode('~|||~', $bd);
            if( isset($userInfo[0]) && $userInfo[0] == $login) //$login - переменная, полученная в результате обработки переданных данных POST
            {
                //нашли пользователя
                $status = true;
                break;
            }
        }
 
        if($status)
            echo 'User "', htmlspecialchars($login), '" has an ', (int) $userInfo[1], ' points of rate';
        else
            echo 'Sorry, user with this login not found..';
    }
}
0
1 / 1 / 3
Регистрация: 02.02.2013
Сообщений: 28
25.06.2013, 00:18  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
обычно данные в таком случае (когда их не так много, как у вас) хранятся в одном файле через разделитель. К примеру, у вас вполне можно все записывать в один файл, код наподобие такого
...
каждая новая строчка в файле bd.txt - новый пользователь (в строчке указывается его логин)

Добавлено через 21 минуту
вот полный пример регистрации
...
а вот вывод баллов по нику (если найдется такой)..
...
очень даже кстати, но вот что то данный код дает ошибку Parse error: syntax error, unexpected ')', expecting ';' in /home/u221823698/public_html/showUserInfo.php on line 14
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.06.2013, 00:22
Цитата Сообщение от studio56 Посмотреть сообщение
PHP
1
for ($i = 0, $cnt = count($bd); $i++) //пробегаемся в цикле
заменить на
PHP
1
for ($i = 0, $cnt = count($bd); $i < $cnt; $i++) //пробегаемся в цикле
в обоих файлах..
0
1 / 1 / 3
Регистрация: 02.02.2013
Сообщений: 28
25.06.2013, 00:27  [ТС]
Цитата Сообщение от KOPOJI Посмотреть сообщение
заменить на
PHP
1
for ($i = 0, $cnt = count($bd); $i < $cnt; $i++) //пробегаемся в цикле
в обоих файлах..
Второй код заработал, а первый не подает никаких признаков жизни, тобеж форма ничего не отправляет. я поставил в форме action="". но все равно...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.06.2013, 00:27
Помогаю со студенческими работами здесь

Создание файла .txt с именем текущей даты
Доброго времени суток, столкнулся с тем что необходимо создать файл .txt с текущей датой, и в этот файл записывать данные. clear all ...

Создание текстового файла с заданным именем и содержащем строку текста из Memo
Помогите пожалуйста разработать приложение Delphi, в котором происходит создание текстового файла с заданным именем и содержащем строку...

Создание txt файла с данными из другого txt файла
Всем привет. Создаю файл: if (!FileExists(&quot;logfile.txt&quot;)) { TStringList * LogFile = new TStringList; ...

На диске находится файл result.txt. написать программу, создающую копию этого файла с именем copy_resylt.txt
На диске находится файл result.txt. Написать программу, создающую копию этого файла с именем copy_resylt.txt. В файле текст

Поиск в каталоге нужного файла и создание при его наличии нового файла с тем же именем, но с другим раширением
Нужно сделелать проверку на наличие файла &quot;Пример.т01&quot; в катологе D:\Temp\ и при условии что они есть создать файл (пустой, в томже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru