PHP.SU

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

Страниц (7): « 1 2 3 [4] 5 6 7 »

> Найдено сообщений: 103
SkaN Отправлено: 26 Сентября, 2011 - 15:18:53 • Тема: Bad gateway образовывается на preg_match_all • Форум: Если скрипт не работает

Ответов: 6
Просмотров: 1861
http://skanrs[dot]co[dot]cc/?id=article&article=1
По ссылке видно, что происходит. Опытным путем было выяснено, что такое происходит на строчке
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\{(case|array|var)=`(.*?)`\}(((?:(?!\{\/?\1=`\2`).)*)\{\/\1=`\2`\})?/s', $this->content, $matches);

на localhost этот код исправно работает. На хостинге такая вот проблема, причем остальные ошибки в коде просто останавливают скрипт.
SkaN Отправлено: 26 Сентября, 2011 - 10:30:08 • Тема: Форма не передает POST • Форум: Если скрипт не работает

Ответов: 2
Просмотров: 1187
благодарю) не знал, что все так сложно
SkaN Отправлено: 26 Сентября, 2011 - 10:17:32 • Тема: Форма не передает POST • Форум: Если скрипт не работает

Ответов: 2
Просмотров: 1187
CODE (html):
скопировать код в буфер обмена
  1. <form method="post" id="auth_form">
  2. <table>
  3. <tr><td>Логин:</td><td><input type="text" id="login"></td></tr>
  4. <tr><td>Пароль:</td><td><input type="password" id="password"></td></tr>
  5. <tr><td colspan="2"><input type="submit" value="Авторизоваться"></td></tr>
  6. </table>
  7. </form>

Все просто и, на первый взгляд, правильно. Но var_dump($_POST) в обработчике выводит array(0) { } . Никак не могу понять, что за дела
SkaN Отправлено: 09 Сентября, 2011 - 09:39:43 • Тема: Включение .htaccess файлов • Форум: Apache и другие веб-серверы

Ответов: 4
Просмотров: 351
странно, когда открывается страница, которая не использует правила .htaccess , в ней нормально отображаются стили, а когда страница, которая использует правила замены - стили не грузятся. и жаваскрипты из папки тоже
SkaN Отправлено: 08 Сентября, 2011 - 17:00:47 • Тема: Включение .htaccess файлов • Форум: Apache и другие веб-серверы

Ответов: 4
Просмотров: 351
http://localhost/skanblog/article/lorem_ipsum
(Добавление)
localhost == /var/www
(Добавление)
DirectoryIndex skanblog/
Сделал так и теперь у меня просто показывает список файлов, если добавить index.php, то все открывает, но все равно строку адреса не заменяет. Вобщем теперь хоть .htaccess работает
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine On
  2. RewriteRule ^.htaccess$ - [F]
  3. DirectoryIndex /skanblog/index.php
  4. RewriteBase /
  5. RewriteRule ^([a-z]*)/([a-z0-9]*)$ ?id=$1&article=$2

это содержимое .htaccess сейчас.
(Добавление)
Все, докопался. Сделал .htaccess таким:
RewriteEngine On
RewriteRule ^.htaccess$ - [F]
DirectoryIndex /skanblog/index.php
RewriteBase /skanblog/
RewriteRule ^([a-z]*)/([a-z0-9_-]*) ?id=$1&article=$2

заработало, но с мелкими проблемами, с которыми я сейчас буду разбираться
(Добавление)
еще вопрос Радость понял сейчас, что при попытке шаблона сослаться на файл стилей, его кидает не в папку, а на обработку УРЛа (надеюсь понятно...)
что прописать, чтобы был доступ к какой-то папке. То есть чтобы, если первая подмаска равна styles, то пускать в папку, а не на обработку.
SkaN Отправлено: 08 Сентября, 2011 - 16:47:25 • Тема: Включение .htaccess файлов • Форум: Apache и другие веб-серверы

Ответов: 4
Просмотров: 351
Полно тем на этот счет, но я не могу найти нужной мне инфы. Конкретно:
после установки апача в убунту /etc/apache2/httpd.conf у меня выглядел так:

я его привел к такому виду:
CODE (htmlphp):
скопировать код в буфер обмена
  1. LoadModule rewrite_module modules/mod_rewrite.so
  2. <Directory "/var/www/">
  3.         Options Indexes FollowSymLinks Includes MultiViews
  4.         AllowOverride All
  5.         Order allow,deny
  6.         Allow from all
  7. </Directory>

соответственно .htaccess выглядит так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine On
  2. RewriteRule ^.htaccess$ - [F]
  3. DirectoryIndex /
  4. RewriteRule ^([a-z]*)/([a-z0-9]*)$ index.php?id=$1&param=$2

но при попытке воспользоваться правилом апач ругается на 404. Вопрос, собственно, понятен: почему не работает? Сколько манов облазил, нигде наводок не нашел
SkaN Отправлено: 05 Сентября, 2011 - 17:13:21 • Тема: Нужна помощь в составлении выражения • Форум: Регулярные выражения

Ответов: 3
Просмотров: 210
спасибо, заработало исправно)
SkaN Отправлено: 05 Сентября, 2011 - 14:33:45 • Тема: Нужна помощь в составлении выражения • Форум: Регулярные выражения

Ответов: 3
Просмотров: 210
Нужно выражение, которое ищет в переменной код {array=`$somename$`}*{/array=`$somename$`} (взамен звездочки люобй символ, в том числе и никакой). Но искать он должен с условием, что только до первой закрывающей конструкции, дальше игнорировать. Вот я составил такое выражение:
PHP:
скопировать код в буфер обмена
  1. '/\{array=`([0-9A-Za-z_]+)`\}([^(\{array=`\1`\})]*)\{\/array=`\1`\}/s'

поидее этот код должен искать такие конструкции, но следить, чтобы во второй подмаске не было {array=`$somename$`}, но в итоге под этот шаблон не попадает ничего. К тому же, у меня неправильно сделана вторая подмаска. В связи с этим есть вопрос: как обозначить определенный порядок внутри символьного класса? Зараннее спасибо
(Добавление)
вот, небольшое пояснение:
у меня есть код:
CODE (html):
скопировать код в буфер обмена
  1. <meta name="keywords" content="{array=`all_tags_array`},{name}{/array=`all_tags_array`}">
  2. </head>
  3. <body>
  4. {array=`all_tags_array`}<span style="font-size: {font_size}"><a href="?id=tag&tag={id}">{name}</a>({num_articles})</span><br>{/array=`all_tags_array`}

все ненужное вырезано.
Под шаблон '/{case=`([0-9A-Za-z_]+)(==|!=|<=|>=|<|>|\|isset\|)([0-9A-Za-z_]+)`}(.*){\/case=`\1\2\3`}/s' попадает
CODE (html):
скопировать код в буфер обмена
  1. {array=`all_tags_array`},{name}{/array=`all_tags_array`}">
  2. </head>
  3. <body>
  4. {array=`all_tags_array`}<span style="font-size: {font_size}"><a href="?id=tag&tag={id}">{name}</a>({num_articles})</span><br>{/array=`all_tags_array`}

, но не {array=`all_tags_array`},{name}{/array=`all_tags_array`} и не {array=`all_tags_array`}<span style="font-size: {font_size}"><a href="?id=tag&tag={id}">{name}</a>({num_articles})</span><br>{/array=`all_tags_array`} , а хотелось бы, чтобы было наоборот... Если убрать первое вхождение, кстати, то все нормально интерпретируется
SkaN Отправлено: 02 Сентября, 2011 - 15:57:20 • Тема: Не могу понять в чем проблема (извините за неинформативность) • Форум: Если скрипт не работает

Ответов: 1
Просмотров: 1128
PHP:
скопировать код в буфер обмена
  1. $code = '<span style="font-size: {FONT_SIZE}"><a href="?id=tag&tag={ID}">{NAME}</a>({NUM_ARTICLES})</span><br>';
  2. $params = array (
  3.         0 => array ('id' => 'amet', 'name' => 'amet', 'font_size' => '10', 'num_articles' => 1),
  4.         1 => array ('id' => 'dolor', 'name' => 'dolor', 'font_size' => '10', 'num_articles' => 1),
  5.         2 => array ('id' => 'ipsum', 'name' => 'ipsum', 'font_size' => '10', 'num_articles' => 1),
  6.         3 => array ('id' => 'lorem', 'name' => 'lorem', 'font_size' => '10', 'num_articles' => 1),
  7.         4 => array ('id' => 'sit', 'name' => 'sit', 'font_size' => '10', 'num_articles' => 1)
  8. );
  9. for ($i=0; $i<count($params); $i++) {
  10.         foreach ($params[$i] as $key=>$value) {
  11.                 $temp = str_ireplace('{'.$key.'}', $value, $code);
  12.         }
  13.         $this->code .= $temp;
  14. }
  15. echo $this->code;

Это, разумеется, пример. Я обобщил место, где выявляется ошибка. Вот, собственно, в чем сама ошибка:
CODE (html):
скопировать код в буфер обмена
  1. <span style="font-size: {FONT_SIZE}"><a href="?id=tag&tag={ID}">{NAME}</a>(1)</span><br>
  2. <span style="font-size: {FONT_SIZE}"><a href="?id=tag&tag={ID}">{NAME}</a>(1)</span><br>
  3. <span style="font-size: {FONT_SIZE}"><a href="?id=tag&tag={ID}">{NAME}</a>(1)</span><br>
  4. <span style="font-size: {FONT_SIZE}"><a href="?id=tag&tag={ID}">{NAME}</a>(1)</span><br>
  5. <span style="font-size: {FONT_SIZE}"><a href="?id=tag&tag={ID}">{NAME}</a>(1)</span><br>

Заменяется только {NUM_ARTICLES}. Я совсем не могу понять, от чего такое. Помогите плз...
(Добавление)
А, кстати, до этогоя недосмторел и с перового раза у меня заменялась переменная $code, вот так:
PHP:
скопировать код в буфер обмена
  1. for ($i=0; $i<count($params); $i++) {
  2.         foreach ($params[$i] as $key=>$value) {
  3.                 $code = str_ireplace('{'.$key.'}', $value, $code);
  4.         }
  5.         $this->code .= $code;
  6. }
  7.  

Но echo выводил так:
CODE (html):
скопировать код в буфер обмена
  1. <span style="font-size: 10"><a href="?id=tag&tag=amet">amet</a>(1)</span><br>
  2. <span style="font-size: 10"><a href="?id=tag&tag=amet">amet</a>(1)</span><br>
  3. <span style="font-size: 10"><a href="?id=tag&tag=amet">amet</a>(1)</span><br>
  4. <span style="font-size: 10"><a href="?id=tag&tag=amet">amet</a>(1)</span><br>
  5. <span style="font-size: 10"><a href="?id=tag&tag=amet">amet</a>(1)</span><br>

(Добавление)
Все, понял. Если до этого я перезаписывал code, то теперь я перезаписываю temp. Нигде мне не обойтись без моего идиотизма)
SkaN Отправлено: 02 Сентября, 2011 - 14:23:47 • Тема: Помогите довести до ума идею шаблонизатора • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 41
Стадию "быдлокодер" я уже прошел (вроде), нависла необходимость написать шаблонизатор. У меня уже было много идей, но все они немного кривы и нету возможности внедрять эти идеи с максимальной простотой. Но в то же время от шаблонизатора требуется много возможностей: циклы и, желательно, вложенные условия. Хотя условиями можно обойтись обычными. Вот последняя идея, на мой взгляд лучшая:
пример кода в tmpl файле:
CODE (html):
скопировать код в буфер обмена
  1. <! BEGIN ARTICLES !>
  2.         <span style="font-size: 30px; font-weight: 400;"><a href="?id=cat&cat={CAT}" style="color: black; opacity: 0.3;">{CAT_NAME}</a></span><br><h1><a href="?id=article&article={ID}">{NAME}</a></h1>
  3.         <div style="font-size: 10px;">Оставлено {DATE}</div>
  4.         <div class="article-text">{PROMO}</div>
  5. <! END ARTICLES !>

Скрипт PHP, который должен все это парсить:
PHP:
скопировать код в буфер обмена
  1. $page = file_get_contents('test.tmpl');
  2. $offset = 0;
  3. while ($pos = strpos($page, '<! BEGIN ', $offset) != FALSE) {
  4.         $begin = strpos($page, '!>', $pos+6);
  5.         $len = ($begin + 4) - ($pos + 2);
  6.         $begin = substr($page, $pos+2, $len);
  7.         list($what) = sscanf($begin, ' BEGIN %s ');
  8.         $end_pos = strpos($page, '<! END '.$what.' !>', $pos+$len);
  9.         $code_len = $end_pos - ($pos+1 + $len);
  10.         $code = substr($page, $pos+$len, $code_len);
  11. }

Этот код сначала высчитывает позицию строчки <! BEGIN , выясняет, к чему этот BEGIN , ищет END, который относится к этому же элементу, потом вычисляет расстояние между началом и концом, извлекает из этого промежутка код. Дальше части кода нужно заменить и вернуть уже полноценную страницу.
Вот я не могу придумать дальше извлекалки кода. Хотелось бы реализовать это с помощью ООП (чтобы по понятиям). При этом нужно, чтобы код было максимально легко внедрить в любой другой проект.
(Добавление)
Главное забыл описать: зачем такая фигня. Так как пишу я блог, нужны цикличные части страницы. То есть берется кусок кода, к нему подставляются нужные переменные, берется еще раз этот же кусок кода, к нему подставляются аналогично переменные. Потом это все склеивается. Плюс у движка блога есть такие возможности, как отключение комментирования статьи. Они требуют отдельной части шаблонизатора, при ненужности удаляемой.
P.S.: мне не столько нужен код, которым это все реализовать, сколько сама идея...
(Добавление)
Все, я наконец-то родил идею. Можно закрывать тему
SkaN Отправлено: 02 Сентября, 2011 - 13:20:08 • Тема: Работаю с файлом, не получается открыть. В чем проблема - даже не догадываюсь • Форум: Если скрипт не работает

Ответов: 0
Просмотров: 923
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $file = fopen('test.tmpl', 'r');
  3. $size = filesize('test.tmpl');
  4. $page = fgets($file, $size);
  5. $offset = 0;
  6. $pos = strpos($page, '<!BEGIN ', $offset);
  7. $begin = strpos($page, '!>', $pos+6);
  8. $len = $begin - ($pos + 6);
  9. $begin = substr($page, $pos+2, $len);
  10. list($what) = sscanf($begin, 'BEGIN %s');
  11. $end_pos = strpos($page, "<!END $what!>", $pos+$len);
  12. $code_len = $end_pos - ($pos + $len);
  13. $code = substr($page, $pos+$len, $code_len);
  14. ?>

такой прототип шаблонизатора (пишу, чтобы проверить идею). Вроде бы все правильно, но выходит так:
Warning: strpos(): Offset not contained in string
а вот как определяются переменные:
PHP:
скопировать код в буфер обмена
  1. Variables in local scope (#3): $begin = FALSE $code = *uninitialized* $code_len = *uninitialized* $end_pos = *uninitialized* $file = resource(14) of type (stream) $len = -6 $offset = 0 $page = '\n' $pos = FALSE $size = 2838 $what = NULL

В файле test.tmpl точно находится html-код с нужными тегами.
(Добавление)
Все, заменил
PHP:
скопировать код в буфер обмена
  1. $file = fopen('test.tmpl', 'r');
  2. $size = filesize('test.tmpl');
  3. $page = fgets($file, $size);

на
SkaN Отправлено: 28 Августа, 2011 - 19:10:59 • Тема: jQuery.ajax, return false не помогает, страница перезагружается. • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 5627
CODE (javascript):
скопировать код в буфер обмена
  1. function vote(voicer, articler) {
  2.         $.ajax({
  3.                 url: "index.php?id=ajax&action=vote",
  4.                 type: "GET",
  5.                 data: {voice: voicer, article: articler},
  6.                 success: function(html) {
  7.                         $.("#voting").html(html);
  8.                 }
  9.         });
  10.         return false;
  11. };

CODE (html):
скопировать код в буфер обмена
  1. <a href="#" onClick="return vote('good', '<?=$article ?>');">

Опять ничего н происходит, консоль ничего не пишет. onClick="vote('good', '<?=$article ?>'); return false;" тоже ничего не дает
(Добавление)
во, хоть что-то понял в консоли, нашел выполнение скрипта. Вобщем ввел там vote('good', 'lorem_ipsum'); и мне выдало ReferenceError: Undefined variable: vote

попробовал ввести весь запрос аякса, то есть
CODE (javascript):
скопировать код в буфер обмена
  1. $.ajax({
  2.         url: "index.php?id=ajax&action=vote",
  3.         type: "GET",
  4.         data: {voice: "good", article: "lorem_ipsum"},
  5.         success: function(html) {
  6.                 $.("#voting").html(html);
  7.         }
  8. });

но мне выдало SyntaxError: at index 177: expected identifier, got '('
SkaN Отправлено: 28 Августа, 2011 - 09:52:24 • Тема: jQuery.ajax, return false не помогает, страница перезагружается. • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 5627
ничего не происходит
SkaN Отправлено: 27 Августа, 2011 - 23:09:50 • Тема: jQuery.ajax, return false не помогает, страница перезагружается. • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 5627
Что-то как-то скудновато. Может быть я плохо описал проблему. Вот, нашел в себе силы описать лучше:
Цитата:
Первый код: функция, которая отсылает запрос, в котором указывает статью, за которую проголосовали и какой голос (плохой или хороший). В коде HTML я указал, как обращается к функции. Поидее должно быть так: если у клиента работает JS, значит выполняется функция onclick="vote('good')" (например), которая не дает перезагружать страницу (return false). А если JS выключен, то переходит по ссылке и таким образом голосует. Такой порядок менять нельзя, такая задумка. Соответственно, код PHP дает запрос к методу, отдает ему название статьи и голос, и уже по ответу метода формирует сообщение ответа.
А вот, что происходит в реальности: я нажимаю на ссылку, страница перезагружается. Еще было бы что-то понятно, если бы начислялось два голоса, значит просто return false не работает. Но начисляется один голос, значит не работает вся функция, или только ajax();.
На самом деле в JS я немного "нубоват", иногда путаю синтаксис.
SkaN Отправлено: 27 Августа, 2011 - 13:23:41 • Тема: jQuery.ajax, return false не помогает, страница перезагружается. • Форум: JavaScript & VBScript

Ответов: 7
Просмотров: 5627
CODE (javascript):
скопировать код в буфер обмена
  1. function vote(voicer) {
  2.         $.ajax({
  3.                 url: "index.php?id=ajax&action=vote",
  4.                 type: "GET",
  5.                 data: {voice: voicer, article: <?=$article ?>},
  6.                 success: function(html) {
  7.                         $.("#voting").html(html);
  8.                 }
  9.         });
  10.         return false;
  11. };

CODE (html):
скопировать код в буфер обмена
  1. <a href="?id=article&article=<?=$article ?>&rate=good#voting" onClick="vote('good')">

PHP:
скопировать код в буфер обмена
  1. $voice = $_GET['voice'];
  2. $article = $_GET['article'];
  3. $vote_stat = $rating_class->vote($article, $voice);
  4. if ($vote_stat == 'ok') {
  5.         ?>
  6.         <span style="padding: 20px; background-color: #99FF99; border: 1px solid green;">Спасибо, ваш голос принят!</span>
  7.         <?PHP
  8. }
  9. else {
  10.         ?>
  11.         <span style="padding: 20px; background-color: #FF8C69; border: 1px solid red;">Ошибка отправки голоса. Обратитесь к администратору.</span>
  12.         <?PHP
  13. }

то что в PHP коде есть $rating_class, это норм, он точно рабочий. А вот функция vote работать отказывается. Адрес правильный. Но я не уверен в том, что правильно передаю данные. Да и return false; почему-то не работает, страница все равно перезагружается.

Страниц (7): « 1 2 3 [4] 5 6 7 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB