Jump to content

wwt

Expert
  • Posts

    2,571
  • Joined

  • Last visited

  • Days Won

    119

Everything posted by wwt

  1. Я имел ввиду что если заранее известно что $str это строка. Если может еще отличатся и тип переменной, то начинаются грабли даже после приведения типа, к примеру: $str = false;//или null, или $undef if ((string) $str !== "") { echo "значит не пусто"; } $str и "" будут считаться идентичными, и проверять нужно еще и на тип, но тогда приведение типов уже ненужно: $str = false; if(!is_string($str)) { die('$str не строка'); } if ($str != "") { echo "значит не пусто"; }
  2. wwt

    высота option

    Может быть отпрыгивать от чего-то такого: http://jsfiddle.net/Tx2qw/ То есть сделать option блочными и менять их размеры, уже как у блочных элементов. Другой вопрос как себя поведут селекты в различных браузерах и в частности в мобильных.
  3. Кстати сказать это не всегда верно ) $string = " "; if (!strlen(trim($string))) echo 'пустая строка';//вернет 'пустая строка' хотя она не пустая она состоит из нескольких пробельных символов что тоже может быть важно. if (empty($string)) echo 'пустая строка'; и со вторым вариантом есть проблема: $string = "0"; if (!strlen(trim($string))) echo 'пустая строка'; if (empty($string)) echo 'пустая строка';//вернет 'пустая строка' ибо "0" это false
  4. if($str != ""){ //код здесь выполнится только если значение переменной отлично от "" }
  5. не знаю что ты имел ввиду, но думаю что автор говорил про это: к стати, никогда не пользовался этой фичей, и даже понятия не имею какую она может принести пользу, кроме как поглумиться? P.S. не понимаю, за что автору минусанули? человека удивило то, как он отстал от жизни, ну эмоции переполняют, за что тут минусить то? Ну так ТС и говорил про фаерфокс ) Я и ответил что нигде кроме него 3d представления больше нет ))А инспекторы есть во всех браузерах но без 3d.
  6. Для того чтобы убрать из кода или нейтрализовать html код, можно использовать встроенные php функции: strip_tags() htmlentities() htmlspecialchars() Либо Сделать тоже самое с помощью регулярного выражения самостоятельно. BBcode обычно тоже реализуют с помощью регулярных выражений.
  7. wwt

    цвета в HTML

    Щас залез в описание w3c действительно. В CSS 2.1 в стандарте было только 17 цветов (aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver, teal, white, and yellow), и все другие выдавали бы ошибку при валидации. А вот CSS3 поддерживает уже весь список. Так что уже всё проще.
  8. 3d представления насколько помню нет больше ни у одного браузера. А вот Инспекторы есть во всех. В опере-фаерфоксе-хроме открывается комбинацией ctrl+shift+i. В IE клавишей F12.
  9. wwt

    цвета в HTML

    Названия и hex цветов Но указывать лучше используя HEX или RGB(A) код цвета.
  10. javascript использует локальное время на компьютере пользователя, а оно может быть отличным от действительного. Я бы посоветовал использовать серверное время и соответственно делать это с помощью php.
  11. Напишите свою функцию поиска элементов по классу. Есть нативный метод getElementsByClassName , но он не кроссбраузерный. Но и написать свой не трудно.
  12. wwt

    дубли страниц

    Незачто. )
  13. wwt

    дубли страниц

    Так ($ - переменные из Rule, % - переменные из Cond): RewriteCond %{QUERY_STRING} ^PAGEN_1=(.*)$ RewriteRule ^catalog/brend/marhatter/index.php$ /catalog/brend/marhatter/?PAGEN_1=%1 [L,R=301] Или юзаем флаг QSA: RewriteCond %{QUERY_STRING} ^PAGEN_1=.*$ RewriteRule ^catalog/brend/marhatter/index.php$ /catalog/brend/marhatter/ [QSA,L,R=301]
  14. Кстати да что-то я не подумал. Ну значит вариант с ajax ваше все =)) Отправляйте все данный с его помощью и переадресовывайте потом пользователя с помощью location.replace(), тогда к форме ему придется возвращатся с помощью вашей ссылки. вот вам тестовый пример на jQuery: index.php <!DOCTYPE html> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> <title></title> <script src="http://code.jquery.com/jquery-1.8.2.js" type="text/javascript"></script> <script type="text/javascript"> $(window).load(function(){ //событие на нажатие кнопки go $("#go").click(function(){ //объект данных получаемых из полей var data_req = { name: $("#name").val(), phone: $("#phone").val() } //ajax запрос методом post $.post( "/page.php", data_req, //обработчик ответа function(data) { //проверяем что вернул сервер, если вернул ok значит хорошо if(data.status == "ok"){ alert("Данные отправлены! Адрес для перехода: " + data.url); //переадресовываем на другую страницу, адрес получили по результатам запроса.На текущую страницу нельзя будет вернутся кнопкой назад window.location.replace(data.url); } }, //ответ ждем в формате json так удобнее "json" ); }); }); </script> </head> <body> <form id="test"> <input id="name" name="name">Имя <input id="phone" name="phone">телефон <input id="go" type="button" value="go"> </form> </body> </html> page.php <?php //проверяем есть ли переменные в массиве POST if(isset($_POST["name"]) && isset($_POST["phone"])){ //если есть записываем их в файл file_put_contents("test.txt","Имя: ".$_POST["name"]." Телефон: ".$_POST["phone"]); //выводм ответ в формате json статус запроса и url echo '{"status":"ok","url":"/page.php"}'; }else{ //если переменных нет в массиве POST выводим то что записывали в файл echo file_get_contents("test.txt"); }
  15. обнулить историю не получится. В целях безопасности это не дозволено js. Вы можете все данные формы отсылать с помощью ajax , ответом получать к примеру url страницы на которую нужно перейти пользователю. и переходить на этот урл с помощью другого метода location.replace(url) когда переход на страницу делается с помощью него текущая страница не попадает в историю, и при нажатии назад человек не вернется назад. Второй вариант вы можете проверять форму после загрузки и если там значения отличные от дефолтных менять их на дефолтные, что-то вроди: window.onload = function(){ if(document.getElementById("name").value != ""){ document.getElementById("name").value = ""; } if(document.getElementById("phone").value != ""){ document.getElementById("phone").value = ""; } //и так каждое поле } Еще есть метод reset() у форм. Но блок где выводятся превьюшки загруженных фоток вам придется тоже очистить, что-то типо: <html> <head> <script> window.onload = function(){ document.getElementById("myForm").reset(); document.getElementById("myPreviews").innerHTML = ""; } </script> </head> <body> <form id="myForm"> <input type="text" name="name"><br> <input type="text" name="phone"><br> </form> <div id="myPreviews"></div> </body> </html>
  16. Я же написал когда это можно использовать )) К примеру вы отсылаете запрос с помощью ajax и получаете ответ и тогда можете обновить страницу этим методом если ответ пришел тот что вам нужен. Если же после отправки формы происходит переход на другую страницу лучше этот метод не использовать.
  17. вместо bool должно быть булево значение: true - брать с сервера false или не указано - может брать из кеша тоесть: window.location.reload(true);
  18. wwt

    дубли страниц

    Подозреваю после вот этого правила: RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] дальше уже строка имеет вид /bitrix/urlrewrite.php. ЧПУ в битрикс разбираются средствами php, а все запросы просто пересылаются этому файлу который уже отдает данные в зависимости от адреса. Свои правила нужно добовлять до правила выше, пока входной адрес еще актуален: <IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^site\.ru$ [NC] RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L] RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}] RewriteCond %{QUERY_STRING} ^PAGEN_1=3$ RewriteRule ^catalog/brend/bla/index.php$ /catalog/brend/bla/?PAGEN_1=3 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$ RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] </IfModule> Теоретически вот так должно заработать.
  19. window.location.reload(bool); перезагружает текущую страницу, если bool true то документ берется с сервера, если false или не указано то браузер может брать из кеша, в этом обычно и заключается почему запоминаются значения полей ибо берутся из кеша. Если сохранение данных происходит с помощью ajax, то можно таким образом обновлять страницу после отправки данных и получения положительного ответа. Мне кажется проще всего будет очищать поля форм своим каким то скриптом при загрузке страницы.
  20. wwt

    дубли страниц

    Возможно проблема в последовательности правил. на каждое последующее RewriteRule поступает результат работы предыдущего RewriteRule тоесть нужно смотреть что поступает именно в это правило. Это нужно видеть все правила чтоб понять где что происходит и как меняется строка в каждом правиле.Если есть возможность выложи всю последовательность правил посмотрим, где там что меняется и найдем проблему.
  21. Выделенный участок наверное если убрать переводы строк )). Оптимизировать наверное толком не выдет ибо переменные используются не по одному разу и пересекаются.
  22. wwt

    дубли страниц

    На вход RewriteRule приходит полный путь начиная с директории где располагается файл .htaccess с правилом. То есть если адрес http://www.site.ru/catalog/brend/bla/index.php?PAGEN_1=3 и файл .htaccess находится в корневой директории сайта, то на вход попадет "catalog/brend/bla/index.php" Отсюда делаю вывод что правило должно быть примерно такое: RewriteEngine On RewriteCond %{QUERY_STRING} ^PAGEN_1=3$ RewriteRule ^catalog/brend/bla/index.php$ /catalog/brend/bla/?PAGEN_1=3 [L,R=301] Хотя все зависит от того где находится .htaccess и что указано в RewriteBase. А вообще хорошая статья на хабре есть про то как работает RewriteRule: http://habrahabr.ru/company/sprinthost/blog/129560/
  23. Можно не создавать кучу нодов, а использовать innerHTML : var div = document.createElement('div'); div.innerHTML = "<div>тут куча html кода</div>"; document.body.appendChild(div);
  24. Самое простое это обновлять страницу каждую минуту с помощью setInterval. А в идеале лучше всего вот это (только подозреваю имелось ввиду setInterval + ajax):
  25. Тож думал о таком варианте. Но плавающие блоки могут наплывать друг на друга при ресайзе таблицы. А вообще жизнеспособный вариант. Всякие кодмирроры тоже разбивают строки на части для форматирования.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy