PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 4
tyomniy Отправлено: 18 Января, 2013 - 16:29:31 • Тема: Загрузка изображения в классе • Форум: Объектно-ориентированное программирование

Ответов: 6
Просмотров: 1789
Выкладываю примеры моего кода (может и не совсем грамотного и правильного), но раз уж тема есть то прошу критиковать корректно, без унижений и оскорблений!

Файл регистрации принимающий параметры:

PHP:
скопировать код в буфер обмена
  1. <?
  2. if($reg_act==1){
  3.  
  4. // если уже авторизирован
  5. if($insert==1){
  6.         header("Location: /");
  7. }else{
  8.  
  9. // если не авторизирован регистрируем
  10. if($task=="reg"){
  11.         $errors = $users->reg_users();
  12. if($errors==""){
  13.  
  14. $sender = $users->last_obj('users', 'id');
  15.  
  16. // перенаправить внутрь
  17. echo "<script>
  18. setTimeout('reload()',100);
  19.                 function reload(){
  20.                         window.parent.document.location.href=(\"/users/id{$sender}\");
  21.                 }      
  22. </script>";
  23.  
  24. }else{
  25. // показать ошибку
  26. $kaptcha_img_url = '/caps/?' . str_replace(array(' ', '.'), '', microtime());
  27. echo "<script>
  28. window.parent.alert('$errors');
  29. window.parent.document.getElementById(\"captcha_img\").innerHTML = \"<img src='{$kaptcha_img_url}' alt='{$site_name}' />\";
  30. </script>";
  31. }
  32. }else{
  33.  
  34. // каптча для защиты от спама
  35. $kaptcha_img_url = '/caps/?' . str_replace(array(' ', '.'), '', microtime());
  36. $smarty->assign('kaptcha_img_url', $kaptcha_img_url);
  37.  
  38. } // end if task reg
  39. }
  40.  
  41. }
  42. $smarty->assign('reg_act', $reg_act);
  43. ?>



А это часть кода из класса с функциями регистрации:

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4. // установить Cookie пользователю для чего угодно
  5. function set_cookie($name_cookie, $value_cookie){
  6. global $time_cookie;
  7.         @setcookie($name_cookie, $value_cookie, $time_cookie, "/");
  8. }
  9. // удалить Cookie пользователя для чего угодно
  10. function unset_cookie($name_cookie){
  11.         if(!$this->check_cookie($name_cookie)){
  12.                 return false;
  13.         }else{
  14.                 @setcookie($name_cookie);
  15.         }
  16. }
  17. // проверить cookie пользователя для чего угодно
  18. function check_cookie($name_cookie = false){
  19.         if(isset($_COOKIE[$name_cookie])){
  20.                 return true;
  21.         }else{
  22.                 return false;
  23.         }
  24. }
  25.  
  26.  
  27.  
  28. // установить Cookie пользователю для авторизации
  29. function set_user_cookie($login_domain){
  30. global $time_cookie;
  31.         @setcookie("user_login_domain", $login_domain, $time_cookie, "/");
  32. }
  33.  
  34. // проверить cookie пользователя
  35. function check_user_cookie(){
  36. global $query, $assoc;
  37.         if(isset($_COOKIE["user_login_domain"])){
  38.          // проверить наличие в базе данных
  39.                 $sql = "SELECT id FROM users WHERE login_domain = '".$_COOKIE["user_login_domain"]."'";
  40.                 $sender_query = $query($sql);
  41.                
  42.                 if($sender_query){
  43.                         while($row = $assoc($sender_query)){
  44.                                 $sender = $row['id'];
  45.                         }
  46.                 }
  47.                
  48.                 if($sender!=false){
  49.                         return $_COOKIE["user_login_domain"];
  50.                 }else{
  51.                         return false;
  52.                 }
  53.         }else{
  54.                 return false;
  55.         }
  56. }
  57.  
  58. // удалить Cookie пользователя
  59. function unset_user_cookie(){
  60.         if(!$this->check_user_cookie()){
  61.                 return false;
  62.         }else{
  63.                 @setcookie("user_login_domain");
  64.         }
  65. }
  66.  
  67.  
  68. // регистрация нового пользователя
  69. function reg_users(){
  70. global $query, $invite_rate, $senders, $uri_site, $site_name, $regsumm;
  71.  
  72. // ПРИНИМАЕМ ВВЕДЕННЫЕ ДАННЫЕ
  73. $email = $this->str_decode($_POST['email']);
  74.  
  75. $user_pass = $this->str_decode($_POST['you_pass']);
  76. $repass = $this->str_decode($_POST['you_repass']);
  77. $pass = md5 ($user_pass);
  78. $login_domain = md5 ($email.$pass);
  79.  
  80. $reg_name = $this->str_decode($_POST['reg_name']);
  81. $reg_family = $this->str_decode($_POST['reg_family']);
  82.  
  83. $age = $this->str_decode($_POST['age']);
  84. $floor = $this->str_decode($_POST['floor']);
  85.  
  86.  
  87. // ПРОВЕРКА ОШИБОК
  88. $is_name = $this->isNf($reg_name);
  89. $is_family = $this->isNf($reg_family);
  90. $is_Pass = $this->isText($user_pass);
  91. $is_email = $this->isEmail($email);
  92.  
  93. $howreg = $this->howreg($is_email, $user_pass, $repass,  $is_name, $is_family, $is_Pass);
  94.  
  95.  
  96. // ПОКАЗАТЬ СООБЩЕНИЕ ОБ ОШИБКАХ
  97. switch($howreg) {
  98.                         case "1":
  99.                         $ermess = "Имя содержит запрещенные символы!";
  100.                         break;
  101.                         case "2":
  102.                         $ermess = "Фамилия содержит запрещенные символы!";
  103.                         break;
  104.                         case "3":
  105.                         $ermess = "Неверный E-mail!";
  106.                         break;
  107.                         case "4":
  108.                         $ermess = "Введенный Email уже занят!";
  109.                         break;
  110.                         case "5":
  111.                         $ermess = "Не указан пароль!";
  112.                         break;
  113.                         case "6":
  114.                         $ermess = "Пароль содержит запрещенные символы!";
  115.                         break;
  116.                         case "7":
  117.                         $ermess = "Введенные пароли не совпадают!";
  118.                         break;
  119.                         case "8":
  120.                         $ermess = "Неверный код с картинки!";
  121.                         break;
  122. }
  123.  
  124. // ЕСЛИ НЕ ВОЗНИКЛО ОШИБОК РЕГИСТРИРУЕМ
  125. if(!$ermess){
  126.  
  127.  
  128. // ЕСЛИ ПРИШЕЛ ПО ИНВАЙТУ НАЧИСЛИТЬ БОНУС
  129. if($_COOKIE["user_invite"]){
  130.         $user_invite = $_COOKIE["user_invite"];
  131.        
  132.         // проверить есть ли фото на голосовании
  133.         $check_photo = $this->check_info('main_photo_id', 'users', 'id', $user_invite);
  134.         if($check_photo){
  135.         // начислить рейтинг фотографии и пользователю
  136.                 $query("UPDATE users_album_photos SET photo_rate = (photo_rate + '$invite_rate') WHERE photo_id = '$check_photo' LIMIT 1");
  137.                 $query("UPDATE users SET rate = (rate + '$invite_rate') WHERE id = '$user_invite' LIMIT 1");
  138.         }      
  139. }
  140.  
  141. // добавляем пользователя в базу
  142. $sql = "INSERT INTO users (id, email, pass, name, family, age, floor, login_domain, users_date, user_invite, users_update1, rate)
  143.                 VALUE ('', '$email', '$pass', '$reg_name', '$reg_family', '$age', '$floor', '$login_domain', NOW(), '$user_invite', NOW(), '$regsumm')";
  144. $query($sql);
  145.  
  146. // авторизируем
  147. $this->set_user_cookie($login_domain);
  148.  
  149. // Данные пользователя
  150. $sender = $this->last_obj('users', 'id');
  151.                                
  152. // отправляем уведомления
  153. include "addon_pages/reg_mess.php";
  154. }
  155.  
  156. return $ermess;
  157. }
  158.  
  159.  
  160. // ПЕРЕКЛЮЧАТЕЛЬ ДЛЯ ВЫВОДА ОШИБОК И ПРЕДУПРЕЖДЕНИЙ
  161. function howreg($is_email, $user_pass, $repass,  $is_name, $is_family, $is_Pass){
  162. global $query, $num_rows;
  163.  
  164. if(!$is_name){
  165. $error = 1; // в имени запрещенные символы!
  166. }
  167. if(!$is_family){
  168. $error = 2; // в фамилии запрещенные символы!
  169. }
  170. if(!$is_email){
  171. $error = 3; // неверный емайл адрес!
  172. }
  173. $email_query = $query("SELECT email FROM users WHERE email='$is_email'");
  174. if($num_rows($email_query)!=0){
  175. $error = 4; // email уже занят!
  176. }
  177. if($user_pass==""){
  178. $error = 5; // не указан пароль
  179. }
  180. if(!$is_Pass){
  181. $error = 6; // в пароле запрещенные символы!
  182. }
  183. if($user_pass != $repass){
  184. $error = 7; // пароли не совпадают
  185. }
  186. if($_SESSION['captcha_keystring'] != $_POST['captcha_string']){
  187. $error = 8; // неверный код с картинки!
  188. }
  189.  
  190. return $error;
  191. }// end howreg
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200. /////// START этот блок надо заменить на новую функцию preg_match() ///////////
  201.  
  202. // ПРОВЕРКА ДОПУСТИМЫХ СИМВОЛОВ
  203. function isText($text){
  204.         if (preg_match("/([_a-z0-9-])/i", $text)) {
  205.                 return true;
  206.         }
  207. }// end isText
  208.  
  209.  
  210. // ПРОВЕРКА ПРАВИЛЬНОСТИ ВВЕДЕННОГО ЕМАЙЛ АДРЕСА
  211. function isEmail($email){
  212. if (!preg_match('|([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is', $email)){
  213.         return false;
  214. }else{
  215.         return true;
  216. }
  217. }// end isEmail
  218.  
  219.  
  220. // ПРОВЕРКА ПРАВИЛЬНОСТИ ВВЕДЕННЫХ ИМЕНИ И ФАМИЛИИ
  221. function isNf($nf){
  222. //return eregi('[0-9_a-zA-Zа-яА-я]', $nf);
  223.         if (preg_match("/([_a-zа-я-])/i", $nf)) {
  224.                 return true;
  225.         }
  226. }// end isNf
  227.  
  228.  
  229. // ПРОВЕРКА ПРАВИЛЬНОСТИ ССЫЛКИ
  230. function isLink($link){
  231.         if (preg_match("/([a-z]+:\/\/+[_a-z0-9-]+\.+[a-z])/i", $link)) {
  232.                 return $link;
  233.         }
  234. }// end isLink
  235.  
  236.  
tyomniy Отправлено: 13 Января, 2013 - 19:52:49 • Тема: Как из PHP передать в JS или обратно • Форум: JavaScript & VBScript

Ответов: 19
Просмотров: 27532
PATCH пишет:
кто подскажет в чем собствено проблемака?


Вызов любой функции из PHP делвется обязательно через:

window.parent.document.YOUfunction();
tyomniy Отправлено: 13 Января, 2013 - 19:47:40 • Тема: Select+вывод из бд • Форум: JavaScript & VBScript

Ответов: 23
Просмотров: 5477
ridvik пишет:
armancho7777777 пишет:
GOOGLE > AJAX


не помогает, вы не первый направляете меня на "путь истинный"...



CODE (html):
скопировать код в буфер обмена
  1. <select name='' id='' onchange='ajax_obj("this.value")'>
  2.       <option value='1'>1 класс
  3.       <option value='2'>2 класс
  4.       <option value='3'>3 класс
  5. </select>
  6.  
  7. <div id="obj_div"></div>
  8.  



CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.  function load_obj() {
  3.         if ( objDoc.readyState != 4 ) return ;
  4.                 document.getElementById("obj_div").innerHTML = objDoc.responseText ;  
  5.         }
  6.  
  7.      var objDoc = null ;
  8.      function ajax_obj(obj)
  9.      {
  10.          
  11.         if (typeof window.ActiveXObject != 'undefined' ) {
  12.           objDoc = new ActiveXObject("Microsoft.XMLHTTP");
  13.           objDoc.onreadystatechange = load_obj ;
  14.         }
  15.         else {
  16.           objDoc = new XMLHttpRequest();
  17.           objDoc.onload = load_obj ;
  18.         }
  19.                 url = "ajax.php?obj="+obj;
  20.                 objDoc.open( "GET", url, true );
  21.                 objDoc.send( null );
  22.         }
  23. </script>



PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $obj = $_GET['obj'];
  3. $sql = "SELECT * FROM table WHERE id = '$obj'";
  4. // далее все что угодно
  5. ?>

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB