RSS
 

Get Adobe Flash player

Кращі ігри

Кращі фільми

 
[ Нові повідомлення · Учасники · Правила форуму · Пошук · RSS ]
  • Сторінка 1 з 1
  • 1
Хранение дополнительных полей
allgamenewsДата: Чт, 11.03.31, 23:06 | Повідомлення # 1
}{OTABUЧ
Группа: Адміністратори
Повідомлень: 577
Статус: відсутній
Заслуги User-A:
За 200 Постів За 400 Постів
В этом примере демонстрируется как с помощью php-скриптов хранить какую-либо дополнительную информацию о пользователе. Скрипт создает на странице форму с дополнительными полями для текушего пользователя, которые он заполняет и нажимает кнопку "Обновить". Переданные данные сохраняются в файле и при повторном посещении страницы выводятся сверху до дополнительных полей. Таким образом, для каждого посетителя сайта хранятся введеные им дополнительные сведения. Данный скрипт можно использовать для хранения какой-либо информации о пользователе, на основании которой в дальнейшем создавать политику доступа данного пользователя к страницам сайта, группировать пользователей по интересам и т.п. Исходный код данного примера приведен ниже.

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

Code
<?IF($USER_ID$)?>
     <div align="center">
         


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


             Вы не зарегистрированны. Пожалуйста, зарегистрируйтесь или войдите своей учетной записью
         </p>
     </div>
<?ENDIF?>

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

Code
<?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('

Ваш автомобиль: ".$_POST['f0']." ".$_POST['f1']."<\p>

Ваш телефон: ".$_POST['f2']." ".$_POST['f3']."<\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'>

Ваш автомобиль: $a $b</p>

Ваш телефон: $c $d</p>

Ваш любимый день недели: $e</p></div><hr>";
             $status_ok=1;
             break;
         }
     }
     if (!$status_ok) echo "<div id='adddata' align='center'>О вас еще нет дополнительных данных. Пожалуйста, введите их</div><hr>";
?>



Дополнительные данные</p>
<form action="/php/example001/example001.php" method="post" onsubmit="_uPostForm(this,{dataType:'script'});return false;" onerror="alert('Error');">


<input type="hidden" name="userid" value="<?echo $_GET['uid']?>"></p>


Марка вашего авто: </p><input type="text" name="f0" />


Модель вашего авто: </p><input type="text" name="f1" />


Производитель вашего мобильного телефона: </p><input type="text" name="f2" />


Модель вашего мобильного телефона: </p><input type="text" name="f3" />


Любимый день недели: </p><input type="text" name="f4" />


<input type="submit" value="Обновить"></p>
</form>

ВАЖНО!

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

1.
C

Code
<?$PHPCODE$("http://phpexample.ucoz.net/php/example001/example001.php?uid=",$USER_ID$)?>

на
Code
<?$PHPCODE$("http://phpexample.ucoz.net/php/example001/example001.php)?>

2.
C
Code
if ($id==$_POST['userid'])

на
Code
if ($id==ucoz_getinfo("SITEUSERID")

3.
C
Code
file_put_contents('additiondata.dat', $_POST['userid']. "\t". $_POST['f0']. "|". $_POST['f1']. "|". $_POST['f2']. "|". $_POST['f3']. "|". $_POST['f4']."\n", FILE_APPEND);

на
Code
file_put_contents('additiondata.dat', ucoz_getinfo("SITEUSERID"). "\t". $_POST['f0']. "|". $_POST['f1']. "|". $_POST['f2']. "|". $_POST['f3']. "|". $_POST['f4']."\n", FILE_APPEND);

4.
C
Code
if ($id==$_GET['uid'])

на
Code
if ($id==ucoz_getinfo("SITEUSERID")) 5. Удалить

<input type="hidden" name="userid" value="<?echo $_GET['uid']?>"></p>


 
  • Сторінка 1 з 1
  • 1
Пошук:
Нова відповідь
Имя:
Текст повідомлення:
Опції повідомлення:
Read forums rules!!!
 
F-RL.COM не містить ніякої нелегальної інформації, тільки хеш-суми файлів вільно доступних в мережі. Власники сайту не можуть нести відповідальності за дії користувачів. Цей ресурс повністю анонімний - IP адреси і дії користувачів не зберігаються. Сайт не надає електронні версії творів, а займається індексуванням файлів, що знаходяться у файлообмінних мережах, Всі права на файли належать правовласникам. Якщо ви є правовласником файлу, проіндексованого нашою пошуковою машиною і не бажаєте щоб посилання на нього знаходилось в нашому каталозі, ознайомтесь з правилами нашого ресурсу. Для скарг пишіть сюди: holder@f-rl.com