Регистрация    Войти
Авторизация

Скрипт Хранение дополнительных полей для ucoz

Скрипт Хранение дополнительных полей для ucoz

В этом примере демонстрируется как с помощью 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>

Есть вопросы по шаблону или скрипту? так задай их и мы ответим!

Автор: zomatsa  5-04-2011, 09:27   Просмотров: 3470   
дополнительных, полей, Хранение, Скрипт
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.