PHP.SU

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

Страниц (81): В начало « ... 21 22 23 24 [25] 26 27 28 29 ... » В конец

> Найдено сообщений: 1209
evgenijj Отправлено: 03 Января, 2008 - 15:58:41 • Тема: Проблема с циклом действий через CURL • Форум: Программирование на PHP

Ответов: 8
Просмотров: 5944
Проверь, когда ты записываешь данные в БД, не используешь ли ты еще раз переменную $result. Я несколько раз делал такую ошибку.
PHP:
скопировать код в буфер обмена
  1.  
  2. $query = "SELECT data FROM `test`";
  3. $result = mysql_query($query, $connect) or die('Не могу подключиться базе данных');
  4.  
  5. while ($row=mysql_fetch_assoc($result))
  6. {
  7.    .....................................
  8.  
  9. }
  10.  


http://phpfaq[dot]ru/debug

Цитата:
дальше остановка с ошибкой mysql_fetch_assoc

А сам текст ошибки? Еще раз повторяю - для особо догадливых: ЗДЕСЬ ТЕЛЕПАТОВ НЕТ!
evgenijj Отправлено: 03 Января, 2008 - 12:00:14 • Тема: Проблема с циклом действий через CURL • Форум: Программирование на PHP

Ответов: 8
Просмотров: 5944
Вот это вот
PHP:
скопировать код в буфер обмена
  1.  
  2. for ($i=0; $i<count($row['data']); $i++)
  3.  

полная фигня. Потому как count($row['data']) ВСЕГДА равно 1 и цикл будет выполнен один раз. Так что смысла в нем никакого нет.

Как я понимаю, ты посылаешь запрос на удаленный сервер в формате xml. Получаешь ответ - тоже в формате xml. Из полученного ответа получаешь с помощью рег. выражений нужные данные и записываешь их в БД.

Так что конкретно не получается? Послать запрос и получить ответ? Тогда curl_errno() и curl_error() тебе в помощь
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $result=curl_exec($ch);
  4. echo "\\n\\ncURL error number:" .curl_errno($ch);  
  5. echo "\\n\\ncURL error:" . curl_error($ch);  
  6. ?>
  7.  

Кстати, а почему ты не завершаешь сессию curl?

Если же проблема в том, что не получается извлечь нужные данные с помощью рег.выражений, то где xml, из которого нужно извлекать данные? Или ты думаешь, тут все ясновидящие и по регулярному выражению способны восстановить xml, из которого извлекаются данные?

И последнее. Извлекать данные из xml с помощью рег.выражений - не самая лучшая идея. В PHP есть много средств для работы с xml:

* расширение DOM XML для PHP4
* встроенные функции DOM XML для PHP5
* Simple XML для PHP5

Вот пример использования SimpleXML:
Обработка XML в PHP
evgenijj Отправлено: 03 Января, 2008 - 11:07:45 • Тема: Как отдать пользователю файл скриптом • Форум: Пользовательские функции

Ответов: 32
Просмотров: 73117
Yuriy пишет:

Понимаете, я такой человек, который хочет понять, а не просто получить готовое решение. Можете парай слов объяснить как это работает, что за механизм используется? Не откажусь от небольшого комментария к каждой строке по ветке 'then' Улыбка Естественно, кроме первой...


http://phpclub[dot]ru/detail/article[dot][dot][dot]t?printVersion=1
http://support[dot]microsoft[dot]com/kb/q260519/
http://spherix[dot]jeka[dot]ru/index.php[dot][dot][dot]e=2&prnt=944
http://www[dot]ietf[dot]org/rfc/rfc1806[dot]txt
evgenijj Отправлено: 03 Января, 2008 - 00:02:49 • Тема: Как отдать пользователю файл скриптом • Форум: Пользовательские функции

Ответов: 32
Просмотров: 73117
Yuriy пишет:

Например, возникла такая задача. Есть файл http://my-site.ru/files/file.rar, юзер набирает в браузере этот адрес, а мне нужно сделать, чтобы загрузка НЕ произошла, а пользователь мог получить данный файл ТОЛЬКО если, скажем, введёт пароль с определённой стрнаицы с формой.

Ссылка для скачивания должна иметь вид
PHP:
скопировать код в буфер обмена
  1.  
  2. <a href="http://mysite.ru/downloads/index.php">Скачать файл</a>
  3.  

Ну а сам файл index.php имеет вид
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( isset( $_SESSION['auth'] ) ) // если пользователь авторизован
  3. {
  4.  $file = "files/archive.rar";
  5.  header ("Content-Type: application/octet-stream");
  6.  header ("Accept-Ranges: bytes");
  7.  header ("Content-Length: ".filesize($file));  
  8.  header ("Content-Disposition: attachment; filename=".$file);  
  9.  readfile($file);
  10. }
  11. else // пользователь не авторизован
  12. {
  13.   echo 'Скачивать файлы могут только зарегистрированные пользователи';
  14. }
  15.  

Чтобы файл archive.rar нельзя было скачать напрямую, надо защитить директорию
/downloads/files/
с помощью .htaccess, поместив в него строку
Deny from all
evgenijj Отправлено: 02 Января, 2008 - 18:24:47 • Тема: Импорт xml в mysql • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 258
Dastar пишет:
Такой вопрос: предположим, у меня есть карта, разделенная на локации. Каждая локация имеет свое название, описание, id и ссылки на другие локации. По этим самым локациям можно гулять.
Что мне лучше использовать для хранения этих самых локаций: xml файл или хранить все это в базе данных?

Вопрос филосовский - где лучше хранить информацию - в БД или файлах. Я предпочитаю БД. Кто-то другой - файлы.
evgenijj Отправлено: 02 Января, 2008 - 17:38:25 • Тема: Импорт xml в mysql • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 258
Dastar пишет:
Угу, примерно над этим я и думал. А есть ли другой способ?

SimpleXML
Обработка XML в PHP

В PHP много средств для работы с XML - выбирай на вкус
* расширение DOM XML для PHP4
* встроенные функции DOM XML для PHP5
* Simple XML для PHP5
evgenijj Отправлено: 01 Января, 2008 - 14:10:14 • Тема: "Версия для печати" • Форум: Программирование на PHP

Ответов: 4
Просмотров: 479
Так, а кто нам мешает разместить на странице с сообщением "Спасибо за покупку" ссылку "Версия для печати"? Переменная сесии, где хранится ID заказа ( $_SESSION['orderID'] ) у нас уже удалена. А она нам понадобиться для того чтобы сформировать счет-фактуру. Может быть, нам понадобятся и еще кое-какая информация о покупателе (имя, телефон, e-mail). Но ведь перед удалением переменной сесии, где хранится ID заказа, мы можем ее сохранить в другой переменной сессии (и всю другую нужную нам информацию). Пусть, для определенности, это будет $_SESSION['orderComplete']
PHP:
скопировать код в буфер обмена
  1.  
  2. $_SESSION['orderComplete']['id'] =  $_SESSION['orderID'];
  3. $_SESSION['orderComplete']['name'] =  $name;
  4. $_SESSION['orderComplete']['phone'] =  $phone;
  5. $_SESSION['orderComplete']['mail'] =  $mail;
  6.  
  7. unset ( $_SESSION['orderID'] );
  8.  

В этом случае мы будем знать, что если переменная сессии $_SESSION['orderID'] не определена, но при этом определена другая переменная $_SESSION['orderComplete'] значит, покупатель оформил заказ, но может возникнуть необходимость предьявить ему "страницу для печать". И если он затребует эту страницу, то там мы и удалим переменную $_SESSION['orderComplete'] потому как нам она больше не нужна.
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( !isset ( $_SESSION['orderID'] ) and isset ( $_SESSION['orderComplete'] ) )
  3.   echo '<a href="...">Версия для печати</a>';
  4.  

Вообще, вариантов тут может быть множество.
evgenijj Отправлено: 01 Января, 2008 - 12:32:09 • Тема: "Версия для печати" • Форум: Программирование на PHP

Ответов: 4
Просмотров: 479
Погоди, для того, чтобы не дать пользователю еще раз сделать заказ (нажав кнопку "Назад" или "Refresh") ты должен делать редирект.
Т.е. пользователь заполнил форму и нажал кнопку "Оформить заказ". Обработчик формы проверяет, правильно ли заполнены поля формы. Если поля заполнены правильно, то мы делаем редирект на страницу, где выводим ему собщение "Спасибо за ваш заказ". Если форма заполнена неправильно, мы должны повторно предъявить ему форму, уже заполненную введенными пользователем данными (не заставлять же его еще раз заполнять форму?) и сообщением об ошибке. Сообщение об ошибке должно содержать описание того, какие обязательные поля не заполнены или заполнены неправильно. При этом все заполненные пользователем поля и сообщение об ошибке мы сохраняем в сессии. После повторного предъявления формы с сообщением об ошибке мы удаляем переменные сессии.
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( поля формы заполнена правильно ) {
  3.   $_SESSION['success']['name'] = $name;
  4.   $_SESSION['success']['email'] = $email;
  5.   .............................................................
  6.   header( 'Location: success.php' );
  7.   die();
  8. } else {
  9.   $_SESSION['formOrder'] = array();
  10.   $_SESSION['formOrder']['error'] = 'При заполнении формы были допущены ошибки:'.$error;
  11.   $_SESSION['formOrder']['name'] = $name;
  12.   $_SESSION['formOrder']['email'] = $email;
  13.   ..............................................................
  14.   header( 'Location: formOrder.php' );
  15.   die();
  16. }
  17.  

Более подробно о том, как правильно обработать форму, можно почитать здесь
Обработка ошибочного заполнения формы
В твоем случае, если форма заполнена правильно, страница success.php удаляет заказ пользователя из сессии или таблицы БД (я не знаю, где храниться корзина) и выдает сообщение "Спасибо за ваш заказ". При этом, если был выбран безналичный рассчет (а об этом ты узнаешь из массива $_SESSION['success']) выдаешь это сообщение на чистой странице (для печати) и ниже - счет-фактуру и пр.

Примерно так.
evgenijj Отправлено: 29 Декабря, 2007 - 17:04:12 • Тема: Чего-то я не понимаю в этой жизни... • Форум: Программирование на PHP

Ответов: 2
Просмотров: 342
http://php[dot]ru/forum/viewtopic.php?t=9526
Был неправ, вспылил, но на php.ru меня быстро привели в чувство...
evgenijj Отправлено: 29 Декабря, 2007 - 13:59:03 • Тема: CSS • Форум: Программирование на PHP

Ответов: 1
Просмотров: 203
По моему, в Firefox этого сделать вообще нельзя. Это "мулька" чисто MS IE. Но утверждать не буду.

P.S. Такой вопрос лучше задать на форуме, где обсуждают вопросы кроссбраузерной верстки - например здесь
http://forum[dot]htmlbook[dot]ru/
evgenijj Отправлено: 29 Декабря, 2007 - 13:48:45 • Тема: Помогите! • Форум: Программирование на PHP

Ответов: 1
Просмотров: 190
Dolphin67 пишет:
Как сделать что бы кнопка была заблокирована для не зарегестрированых?

Вопрос вообще говоря задан некорректно. Слишком мало информации.

Я делаю так - если пользователь зарегистрирован, я устанавливаю переменную сессии:
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( проверка логина и пароля ) {
  3.   $_SESSION['user'] =array();
  4.   $_SESSION['user']['name'] = 'Sasha';
  5.   $_SESSION['user']['password'] = 'qwerty';
  6.   ........................................................
  7. }
  8.  

Ну и в дальнейшем смотрю, установлена ли эта переменная
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( isset( $_SESSION['user'] ) ) {
  3.   // это для пользователя, который авторизован
  4. } else {
  5.   // а это для всех остальных
  6. }
  7.  


По поводу того, как заблокировать кнопку - лучше Влада Мержевича мне не написать
http://htmlbook[dot]ru/html/input[dot]html
Смотри про атрибут disabled

Т.е. в твоем случае это будет выглядеть так
PHP:
скопировать код в буфер обмена
  1.  
  2. if ( isset( $_SESSION['user'] ) ) {
  3.   echo '<input type="submit" value="Отправить" />';
  4. } else {
  5.   echo '<input type="submit" value="Отправить" disabled="disabled" />';
  6. }
  7.  
evgenijj Отправлено: 17 Декабря, 2007 - 11:57:25 • Тема: Чего-то я не понимаю в этой жизни... • Форум: Программирование на PHP

Ответов: 2
Просмотров: 342
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. echo phpversion().'<br/>';
  4. $a = true;
  5. $b = false;
  6. $c = $a or $b;
  7. if ( $c )
  8.   echo 'true<br/>';
  9. else
  10.   echo 'false<br/>';
  11. //////////////////////////
  12. $c = $b or $a;
  13. if ( $c )
  14.   echo 'true<br/>';
  15. else
  16.   echo 'false<br/>';
  17. ?>
  18.  

Результат


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. echo phpversion().'<br/>';
  4. $a = true;
  5. $b = false;
  6. $c = $a || $b;
  7. if ( $c )
  8.   echo 'true<br/>';
  9. else
  10.   echo 'false<br/>';
  11. //////////////////////////
  12. $c = $b || $a;
  13. if ( $c )
  14.   echo 'true<br/>';
  15. else
  16.   echo 'false<br/>';
  17. ?>
  18.  

Результат
evgenijj Отправлено: 15 Декабря, 2007 - 01:50:42 • Тема: Вместо кавычек - " • Форум: Программирование на PHP

Ответов: 12
Просмотров: 938
Волк пишет:

то была какаято функция которая <\"> превращала бы в <">

Не совсем понял, что ты хотел сказать. Обратные слэши появляются если в php.ini выставлено
magic_quotes_gpc = On
С этим можно бороться так
if ( get_magic_quotes_gpc() ) $_POST['name'] = stripslashes( $_POST['name'] );
Подробности здесь
Как отменить магическое действие magic quotes?

Волк пишет:

должна быть какая то другаю функция которая " превратить в <">.

http://php.su/functions/?html-entity-decode
http://ru2.php.net/manual/ru/fun...chars-decode.php
evgenijj Отправлено: 15 Декабря, 2007 - 00:11:03 • Тема: Вместо кавычек - " • Форум: Программирование на PHP

Ответов: 12
Просмотров: 938
Волк пишет:
но вроде есть такая функция которая html переводит в текст. я не помню как она называется но попробуй её отыскать

http://php.su/functions/?html-entity-decode
http://php.su/functions/?strip-tags

Но, вообще, это не лучшая идея -- сперва преобразовать символы в соответствующие HTML сущности, а потом наоборот - преобразовать HTML сущности в соответствующие символы. Надо найти то место в скриптах, где выполняется второе (лишнее) преобразование, и отменить его.
evgenijj Отправлено: 14 Декабря, 2007 - 21:37:11 • Тема: Вместо кавычек - " • Форум: Программирование на PHP

Ответов: 12
Просмотров: 938
repz пишет:
Собсна ,как исправить?

Телепаты в отпуске...

Страниц (81): В начало « ... 21 22 23 24 [25] 26 27 28 29 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB