Теперь все скрипты доступны в обновленном формате в нашем магазине USCRIPT.PRO

Перейти в магазин

Добавил: jon
Хранение дополнительных полей
     В этом примере демонстрируется как с помощью php-скриптов хранить какую-либо дополнительную информацию о пользователе. Скрипт создает на странице форму с дополнительными полями для текушего пользователя, которые он заполняет и нажимает кнопку "Обновить". Переданные данные сохраняются в файле и при повторном посещении страницы выводятся сверху до дополнительных полей. Таким образом, для каждого посетителя сайта хранятся введеные им дополнительные сведения. Данный скрипт можно использовать для хранения какой-либо информации о пользователе, на основании которой в дальнейшем создавать политику доступа данного пользователя к страницам сайта, группировать пользователей по интересам и т.п. Исходный код данного примера приведен ниже.

В шаблоне страницы:

<?IF($USER_ID$)?>
    <div align="center">
        <p>
            <b>Данный пример демонстрирует использование скрипта для хранения дополнительных полей текущего пользователя</b>
        </p>
    </div>
    <hr>
    <?$PHPCODE$("http://phpexample.ucoz.net/php/example001/example001.php?uid=",$USER_ID$)?>
<?ELSE?>
    <div id="phpdiv">
        <p>
            Вы не зарегистрированны. Пожалуйста, зарегистрируйтесь или войдите своей учетной записью
        </p>
    </div>
<?ENDIF?>


PHP скрипт примера:

<?php
    if(count($_POST)>0)
    {
        $___notjson=1;
        $lines = file('additiondata.dat');
        if ($_POST['f0'] && $_POST['f1'] && $_POST['f2'] && $_POST['f3'] && $_POST['f4'])
        {
            foreach ($lines as $line_num => $line) {
                trim($line);
                list ($id, $data) = split("\t",$line,2);
                if ($id==$_POST['userid'])
                {
                    unset($lines[$line_num]);
                    file_put_contents('additiondata.dat', $lines);
                    break;
                }
            }
            file_put_contents('additiondata.dat', $_POST['userid']. "\t". $_POST['f0']. "|". $_POST['f1']. "|". $_POST['f2']. "|". $_POST['f3']. "|". $_POST['f4']."\n", FILE_APPEND);
            echo "$('#adddata').html('<p>Ваш автомобиль: ".$_POST['f0']." ".$_POST['f1']."<\p><p>Ваш телефон: ".$_POST['f2']." ".$_POST['f3']."<\p><p>Ваш любимый день недели: ".$_POST['f4']."<\p>')";
        }
        else echo "$('#adddata').html('Неверно введены данные')";
        exit;
    }
    $lines = file('additiondata.dat');
    $status_ok=0;
    foreach ($lines as $line_num => $line) {
        trim($line);
        list ($id, $data) = split("\t",$line,2);
        if ($id==$_GET['uid'])
        {
            list ($a,$b,$c,$d,$e) = split("\|",$data,5);
            echo "<div id='adddata' align='center'><p>Ваш автомобиль: $a $b</p><p>Ваш телефон: $c $d</p><p>Ваш любимый день недели: $e</p></div><hr>";
            $status_ok=1;
            break;
        }
    }
    if (!$status_ok) echo "<div id='adddata' align='center'>О вас еще нет дополнительных данных. Пожалуйста, введите их</div><hr>";
?>

<p>Дополнительные данные</p>
<form action="/php/example001/example001.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');">
<p><input type="hidden" name="userid" value="<?echo $_GET['uid']?>"></p>
<p>Марка вашего авто: </p><input type="text" name="f0" />
<p>Модель вашего авто: </p><input type="text" name="f1" />
<p>Производитель вашего мобильного телефона: </p><input type="text" name="f2" />
<p>Модель вашего мобильного телефона: </p><input type="text" name="f3" />
<p>Любимый день недели: </p><input type="text" name="f4" />
<p><input type="submit" value="Обновить"></p>
</form>

ВАЖНО!

     Использование отправленного скрипту идентификатора пользователя $USER_ID$ методом GET (со страницы сайта) или POST(из формы на странице) не является надежным и безопасным, т.к. он может быть подделан. Для безопасного получения реального идентификатора пользователя, который просматривает страницу с исполняемым скриптом, используйте в php скрипте функцию ucoz_getinfo("SITEUSERID"). В данном примере для этого необходимо изменить следующие строки:

1. C <?$PHPCODE$("http://phpexample.ucoz.net/php/example001/example001.php?uid=",$USER_ID$)?> на <?$PHPCODE$("http://phpexample.ucoz.net/php/example001/example001.php)?> 2. C if ($id==$_POST['userid']) на if ($id==ucoz_getinfo("SITEUSERID")) 3. C file_put_contents('additiondata.dat', $_POST['userid']. "\t". $_POST['f0']. "|". $_POST['f1']. "|". $_POST['f2']. "|". $_POST['f3']. "|". $_POST['f4']."\n", FILE_APPEND); на file_put_contents('additiondata.dat', ucoz_getinfo("SITEUSERID"). "\t". $_POST['f0']. "|". $_POST['f1']. "|". $_POST['f2']. "|". $_POST['f3']. "|". $_POST['f4']."\n", FILE_APPEND); 4. C if ($id==$_GET['uid']) на if ($id==ucoz_getinfo("SITEUSERID")) 5. Удалить <p><input type="hidden" name="userid" value="<?echo $_GET['uid']?>"></p>

Добавлен 07.12.2010
комментарии:
1 2 »
Jacky Спам [Материал] 10.10.2013 00:57
Jacky Огромное спасибо за статью. Ах весь день искал!
Quemist Спам [Материал] 12.05.2013 08:29
Quemist Что-то я его установил, а он не пашет, жму обновить и не обновляется, в чем проблема?
Quemist Спам [Материал] 12.05.2013 08:19
Quemist А можно ли переделать информацию на картинки как тут 
http://chernobyl-soul.com/index/8-77295
??? Просто я нуб в php, только учусь)
ultraswet Спам [Материал] 19.10.2011 00:14
ultraswet Менял скрипт для себя чтобы сохранять не несколько слов в поле, а целый большой текст. Заменил input'ы на textarea, подчистил код от других ненужных полей, но с объёмным текстом так ничего и не получилось. Так и сохранялась только первая введённая строчка. Может кто подскажет что изменить?
Reslear Спам [Материал] 05.10.2011 21:16
Reslear Да судя по комментариям, php не для новичков.
Ладно вот нормальный скрипт хоть даже мой первый скрипт для ucoz но отлично проработан http://upost.su/load/skripty/user/1/1-1-0-36 .

Спасибо за предоставленный исходник!
Inkvizitor Спам [Материал] 14.10.2011 11:51
Inkvizitor И что там особенного? Ничего абсолютно.
Inkvizitor Спам [Материал] 02.10.2011 14:33
Inkvizitor Я так понимаю не во всех шаблонах есть возможность использовать?
Вывести данные в сообщениях на форуме, нельзя?
SOFTOLAB Спам [Материал] 31.08.2011 22:26
jon, а можно ли как то получать user_id для стороннего php?
Имею ввиду защищенный вариант.
GLADMAN Спам [Материал] 20.07.2011 05:53
GLADMAN Народ, получается, что с этим скриптом можно допол. поля в любом разделе увеличить (например, новости).
Кто может подправить php код?
jon   [Разработчик] Спам [Материал] 30.07.2011 11:22
jon Да, можно
Администрация Спам [Материал] 02.07.2011 06:24
Администрация пожалуйста кому не лень скажите как сделать php чтоб могли видеть все и изменения сохронялись...
у меня ничего не получается sad
Алкксандр Спам [Материал] 25.06.2011 23:59
создайте пожалуйста статью где есть описание как создавать поправлять php коды!
Olsiva Спам [Материал] 27.06.2011 16:53
Olsiva В сети полно информации об этом. Введите в поисковике "Мануал PHP" и изучайте на здоровье smile
1-10 11-19
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]