PHP.SU

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

Страниц (81): В начало « ... 25 26 27 28 [29] 30 31 32 33 ... » В конец

> Найдено сообщений: 1209
evgenijj Отправлено: 12 Ноября, 2007 - 19:26:12 • Тема: Загрузка изображений на сайт • Форум: Программирование на PHP

Ответов: 27
Просмотров: 1439
Добавить в раздел HEAD html-документа, содержащего форму
PHP:
скопировать код в буфер обмена
  1.  
  2. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
  3.  
evgenijj Отправлено: 12 Ноября, 2007 - 10:28:04 • Тема: Запрос в БД по подобию LIKE, только для НЕ одного значения • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 188
wmz38 пишет:
evgenijj, но ведь запросы в некоторых случаях обрабатываются и без косых кавычек.

TABLE И COLUMN - ключевые слова, использовать их в качестве имен таблиц и полей нельзя. Но если очень хочется -- то можно, только надо их заключать в кавычки, чтобы MySQL знал, что это имя поля, а не ключевое слово

SELECT `column` FROM `table` WHERE ...
evgenijj Отправлено: 12 Ноября, 2007 - 09:27:32 • Тема: Ошибка serialize • Форум: Программирование на PHP

Ответов: 2
Просмотров: 729
Смотри, элемент массива
Цитата:

s:949:"Пользователи китайского сегмента сети Интернет больше не смогут пользоваться зарубежными поисковыми системами. При попытке доступа к поисковикам Google или Yahoo! пользователей автоматически перенаправляют на страницу китайской поисковой системы Baidu. Помимо Yahoo! и Google китайцы остались и без поисковой системы Live Search от Microsoft. Никаких официальных заявлений ни со стороны китайских властей, ни от администрации Baidu в связи с произошедшим не поступало. Ряд наблюдателей уже успел назвать произошедшее очередным проявлением жесткой цензуры Сети, осуществляемой китайскими властями. Китай периодически блокирует блог-сервисы (и арестовывает блоггеров за излишне фривольные высказывания), а также приостанавливает доступ сограждан к ресурсам наподобие свободной энциклопедии Wikipedia. Ранее сообщалось, что властям Китая стал неугоден даже российский поисковик Yandex, доступ к которому из некоторых городов Китая был невозможен."

по информации функции serialize -- 949 символов. На самом деле длина строки
Цитата:

Пользователи китайского сегмента сети Интернет больше не смогут пользоваться зарубежными поисковыми системами. При попытке доступа к поисковикам Google или Yahoo! пользователей автоматически перенаправляют на страницу китайской поисковой системы Baidu. Помимо Yahoo! и Google китайцы остались и без поисковой системы Live Search от Microsoft. Никаких официальных заявлений ни со стороны китайских властей, ни от администрации Baidu в связи с произошедшим не поступало. Ряд наблюдателей уже успел назвать произошедшее очередным проявлением жесткой цензуры Сети, осуществляемой китайскими властями. Китай периодически блокирует блог-сервисы (и арестовывает блоггеров за излишне фривольные высказывания), а также приостанавливает доступ сограждан к ресурсам наподобие свободной энциклопедии Wikipedia. Ранее сообщалось, что властям Китая стал неугоден даже российский поисковик Yandex, доступ к которому из некоторых городов Китая был невозможен.

равна 943 (можешь проверить сам с помощью функции strlen). Другими словами, произошел сбой при сериализации и теперь строка не может быть корректно распакована в массив.
evgenijj Отправлено: 10 Ноября, 2007 - 16:47:46 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 679
Snic пишет:
так я правильно сделал или надо переделать?

Я вообще не понял, что это за форма. Ладно, еще раз. При добавлении новой страницы сайта мы выдаем первую форму. Пусть этим у нас занимается функция add_page_first_form()
Какие поля содержит эта форма?
PHP:
скопировать код в буфер обмена
  1.  
  2. <input name="title" ... />
  3. <input name="description" ... />
  4. <input name="keywords" ... />
  5.  
  6. <select name="module">
  7. <option value="articles">Статьи</option>
  8. <option value="news">Новости</option>
  9. <option value="forms">Формы</option>
  10. </select>
  11.  
  12. <select name="template">
  13. <option value="first">Первый</option>
  14. <option value="second">Второй</option>
  15. <option value="third">Третий</option>
  16. </select>
  17.  

Обработчик этой формы -- функция add_page_first() добавляет в таблицу БД pages новую запись
INSERT INTO pages ( ... ) VALUES ( ... )
но оставляет поле settings пустым. Далле, поскольку мы уже знаем, какой модуль будет использован на этой странице (пусть, для определенности это будет articles) мы вызываем функцию add_page_second_form( $module ), которая выдаст пользователю вторую форму. Эта функция принимает в качестве параметра имя модуля.
PHP:
скопировать код в буфер обмена
  1.  
  2. function add_page_second_form( $module )
  3. {
  4.   switch( $module )
  5.   {
  6.     case "articles":
  7.       ....................
  8.     break;
  9.     case "news":
  10.       ...................
  11.     break;
  12.     .....................
  13.   }
  14. }
  15.  

Задача этой функции - выдать пользователю форму. Но для каждого модуля форма будет выглядеть по-разному. Например, для модуля articles надо предоставить пользователю возможность выбрать статью, которая будет показываться на этой странице
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<form ....>";
  3. echo "Выберите статью:";
  4. $query = "SELECT id_article, title FROM articles WHERE 1 ORDER BY title";
  5. $res = mysql_query( $query );
  6. echo "<select name='id_article'>";
  7. while( $art = mysql_fetch_array( $res ) )
  8. {
  9.   echo "<option value='".$art['id_article']."'>".$art['id_article']."</option>";
  10. }
  11. echo "</select>";
  12. echo "<form>";
  13.  

Когда пользователь заполнит вторую форму и нажмет кнопку "Отправить" мы уже сможем заполнить поле settings в таблице pages. Эту задачу будет решать функция add_page_second().

Сразу хочу предупредить -- это будет нелегкая задача. И для ее решения потребуется написать немало кода.
evgenijj Отправлено: 10 Ноября, 2007 - 15:37:53 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 679
Snic пишет:
Жека решил проблему с добавлением так:

Можно и так. Одна функция решает две задачи -- сначала выдает пользователю форму, которую надо заполнить, а потом эта же функция добавляет новую статью.

А можно было написать две функции -- одна выдает форму get_add_article_form(), а другая добавляет статью add_article().

Snic пишет:

соотвественно если меняешь модуль то форма может меняться
в зависимости от модуля так? или как?
допустим я выбрал модуль "статьи" то при добавлении информации должны создаваться записи и в articles и в pages так?


Когда ты создаешь страницу (добавляешь запись в таблицу БД pages) ты должен заполнить две формы. Сначала пользователь заполняет следующие поля
title
description
keywords
и выбирает модуль
< select name='module">
< option value="articles">Статьи< /option>
< option value="news">Новости< /option>
< option value="forms">Формы< /option>
< /select>
Потом, мы выдаем ему для заполнения вторую форму. Здесь у него будет возможность выбрать статью для показа, если используется модуль articles или указать количество новостей для показа на одной странице, если используется модуль news и т.п.

Мы не можем решить задачу добавления новой страницы с помощью одной формы. Потому что мы не можем заранее знать, какой модуль выберет пользователь. А именно это определяет, какую вторую форму мы ему выдадим.

Конечно мы могли бы использовать AJAX, но я не уверен, что ты сейчас в этом разберешься.
evgenijj Отправлено: 09 Ноября, 2007 - 18:38:27 • Тема: Запрос в БД по подобию LIKE, только для НЕ одного значения • Форум: SQL и Архитектура БД

Ответов: 8
Просмотров: 188
TABLE И COLUMN - ключевые слова, поэтому MySQL и ругался. А говоришь, в MySQL разбираешься.
evgenijj Отправлено: 09 Ноября, 2007 - 18:32:44 • Тема: Немного не допонял по поводу cookie • Форум: Программирование на PHP

Ответов: 17
Просмотров: 973
Движок форума глючит. Вообще, насколько я могу судить, этот exbb - один большой глюк. Глючит везде - при показе главной страницы, при добавлении постов (по крайней мере в режиме модератора), при показе исходного кода php и т.п. Исправить я это не могу. А ARTY (автор портала PHP.SU), к сожалению, куда-то пропал.
evgenijj Отправлено: 08 Ноября, 2007 - 19:03:25 • Тема: Загрузка изображений на сайт • Форум: Программирование на PHP

Ответов: 27
Просмотров: 1439
Блин, ну и вопросы у тебя. Я сам с этой проблемой не сталкивался, но слышал о ней. Что-то с кодировками. Эта проблема описана здесь
http://phpclub[dot]ru/faq/encodings/encodings4
К сожалению, этот раздел сейчас закрыт на профилактику, но можно посмотреть сохраненную копию на Yandex
Цитата:

Почему после субмита формы все данные приходят в виде &#1048;?
Такое происходит, если поля формы заполненны символами, отсутствующими в текущей кодировке страницы. Например, CHARSET у страницы указывает Windows 1252, а в форму вы вводите русские буквы. Браузер не может передать введенное правильно, потому что в указанной кодировке отсутствуют русские символы. Подобное кодирование помогает сохранить ваши данные в том виде, в каком вы их ввели. Символы зашифрованы в кодировке UNICODE. Про дешифрацию смотрите в одном из разделов данного FAQ.

АБВГ будут представлены &#1040;&#1041;&#1042;&#1043;
Длина этой строки - 28 символов. Поэтому три русские буквы проходят проверку, а четыре - нет.
evgenijj Отправлено: 08 Ноября, 2007 - 13:02:55 • Тема: Трабла с кодировкой!!! • Форум: SQL и Архитектура БД

Ответов: 6
Просмотров: 82
После соединения с сервером БД выполнить запрос
PHP:
скопировать код в буфер обмена
  1.  
  2. $connect = mysql_connect ( $dblocation, $dbuser, $dbpswrd ) or die();
  3. mysql_query( 'SET NAMES cp1251' );
  4. mysql_select_db ( $dbname, $connect ) or die();
  5.  

Если не поможет - выполнить три запроса
PHP:
скопировать код в буфер обмена
  1.  
  2. mysql_query ("set character_set_client='cp1251'");
  3. mysql_query ("set character_set_results='cp1251'");
  4. mysql_query ("set collation_connection='cp1251_general_ci'");
  5.  

Подробности здесь
Перенос базы из mysql ранних версий в mysql-4[dot]1 без проблем с кодировкой
"Вопросики", "кракозяблики" или "как исправить ошибки хостера"
evgenijj Отправлено: 08 Ноября, 2007 - 10:36:47 • Тема: Немного не допонял по поводу cookie • Форум: Программирование на PHP

Ответов: 17
Просмотров: 973
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. echo 'Hello, world!';
  4. setcookie ('TestCookie', 'TestValue', time()+3600);
  5. ?>
  6.  
evgenijj Отправлено: 08 Ноября, 2007 - 07:54:08 • Тема: Отправка письма функ. mail() - немогу импортировать переменные • Форум: Программирование на PHP

Ответов: 38
Просмотров: 2346
http://phpfaq[dot]ru/headers
evgenijj Отправлено: 07 Ноября, 2007 - 20:54:11 • Тема: Помогите нубью... • Форум: Объявления

Ответов: 2
Просмотров: 2613
Установка Web-сервера Apache в связке с PHP 5 и MySQL

Если не разберешься, тогда попробуй Денвер
http://www[dot]denwer[dot]ru/dis/Base_PHP5/ - скачать
http://www[dot]denwer[dot]ru/base[dot]html - как установить
evgenijj Отправлено: 07 Ноября, 2007 - 17:02:02 • Тема: Отправка письма функ. mail() - немогу импортировать переменные • Форум: Программирование на PHP

Ответов: 38
Просмотров: 2346
Примерно так
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  define( 'ADMIN_EMAIL', 'admin@mail.ru' );
  4.  
  5.  if( isset( $_SESSION['sendMail'] ) )
  6.  {
  7.    if ( $_SESSION['sendMail'] )
  8.      echo 'Ваш заказ успешно отправлен<br/>';
  9.    else
  10.      echo 'Произошла ошибка при отправке заказа<br/>';
  11.    unset( $_SESSION['sendMail'] );
  12.    die();
  13.  }
  14.  
  15.  if ( isset( $_POST['sendOrder'] ) )
  16.  {
  17.    // Обрезаем переменные до длины, указанной в параметре maxlength тега input
  18.    $name    = substr( $_POST["name"], 0, 30 );
  19.    $surname = substr( $_POST["surname"], 0, 30 );
  20.    $email   = substr( $_POST["email"], 0, 30 );
  21.    $phone   = substr( $_POST["phone"], 0, 30 );
  22.    $address = substr( $_POST["address"], 0, 250 );
  23.    // Обрезаем лишние пробелы
  24.    $name    = trim( $name );
  25.    $surname = trim( $surname );
  26.    $email   = trim( $email );
  27.    $phone   = trim( $phone );
  28.    $address = trim( $address );  
  29.    // Проверяем, заполнены ли обязательные поля
  30.    $error = '';
  31.    if ( empty( $name ) ) $error = $error.'<li>не заполнено поле "Имя"</li>';
  32.    if ( empty( $surname ) ) $error = $error.'<li>не заполнено поле "Фамилия"</li>';
  33.    if ( empty( $email ) ) $error = $error.'<li>не заполнено поле "E-mail"</li>';
  34.    // Проверяем поля формы на недопустимые символы
  35.    if ( !empty( $name ) and !eregi( '^[а-я]+$', $name ) )
  36.      $error = $error.'<li>поле "Имя" содержит недопустимые символы</li>';
  37.    if ( !empty( $surname ) and !eregi( '^[-а-я]+$', $surname ) )
  38.      $error = $error.'<li>поле "Фамилия" содержит недопустимые символы</li>';
  39.    if ( !empty( $phone ) and !eregi( '^[-)([:blank:]0-9]+$', $phone ) )
  40.      $error = $error.'<li>поле "Телефон" содержит недопустимые символы</li>';
  41.    if ( !empty( $address ) and !preg_match( '#^[-_\\[\\])(".\\/,:;\\s0-9a-zа-я]+$#i', $address ) )
  42.      $error = $error.'<li>поле "Адрес" содержит недопустимые символы</li>';
  43.    // Проверяем корректность e-mail
  44.    if ( !empty( $email ) and !preg_match( '#^[-0-9a-z_.]+@[-0-9a-z.]+.[a-z]{2,6}$#i', $email ) )
  45.      $error = $error.'<li>поле "Адрес e-mail" должно соответствовать формату somebody@somewhere.ru</li>';
  46.    // Если были допущены ошибки при заполнении формы
  47.    //echo $error;
  48.    //die();
  49.    if ( !empty( $error ) )
  50.    {
  51.      $_SESSION['orderForm'] = array();
  52.      $_SESSION['orderForm']['error'] = '<p class="errorMsg">При заполнениии формы были допущены ошибки:</p>'.
  53.          '<ul class="errorMsg">'.$error.'</ul>';
  54.      $_SESSION['orderForm']['name'] = $name;
  55.      $_SESSION['orderForm']['surname'] = $surname;
  56.      $_SESSION['orderForm']['email'] = $email;
  57.      $_SESSION['orderForm']['phone'] = $phone;
  58.      $_SESSION['orderForm']['address'] = $address;       
  59.      header( 'Location: '.$_SERVER['PHP_SELF'] );
  60.      die();
  61.    }
  62.    // ЗДЕСЬ КОД ДЛЯ ПОЛУЧЕНИЯ ИЗ БД ИНФОРМАЦИИ О ЗАКАЗАННОМ ТОВАРЕ
  63.    // ............................................................
  64.    // Все поля заполнены правильно - отправляем e-mail
  65.    $message = "<h3>Заказ в магазине</h3>";
  66.    $message = $message."<table cellspacing='2' cellpadding='2' width='50%'>";
  67.    $message = $message."<tr bgcolor='#F5F5F5'><td>Имя: </td><td>".$name."</td></tr>";
  68.    $message = $message."<tr bgcolor='#F5F5F5'><td>Фамилия: </td><td>".$surname."</td></tr>";
  69.    $message = $message."<tr bgcolor='#F5F5F5'><td>E-mail: </td><td>".$email."</td></tr>";
  70.    $message = $message."<tr bgcolor='#F5F5F5'><td>Телефон: </td><td>".$phone."</td></tr>";
  71.    $message = $message."<tr bgcolor='#F5F5F5'><td>Адрес: </td><td>".$address."</td></tr>";
  72.    $message = $message."</table>";
  73.    $message = $message."<h3>Вы заказали</h3>";
  74.    // ЗДЕСЬ ПИШЕМ ИНФОРМАЦИЮ О ЗАКАЗАННОМ ТОВАРЕ
  75.    // ............................................................
  76.    // посылаем уведомление покупателю
  77.    $headers = "From: ".$_SERVER['SERVER_NAME']." <".ADMIN_EMAIL.">\\n";
  78.    $headers = $headers."Content-type: text/html; charset=\\"windows-1251\\"\\n";
  79.    $headers = $headers."Return-path: <".ADMIN_EMAIL.">\\n";
  80.    if ( mail( $email, "Заказ в магазине ".$_SERVER['SERVER_NAME'], $message, $headers ) ) {
  81.      $_SESSION['sendMail'] = true;
  82.    } else {
  83.      $_SESSION['sendMail'] = false;
  84.    }
  85.    header( 'Location: '.$_SERVER['PHP_SELF'] );  
  86.  }
  87.  else
  88.  {
  89.    // Если при заполнении формы были допущены ошибки
  90.    if ( isset( $_SESSION['orderForm'] ) )
  91.    {
  92.      echo $_SESSION['orderForm']['error'];
  93.      $name    = htmlspecialchars( $_SESSION['orderForm']['name'] );
  94.      $surname = htmlspecialchars( $_SESSION['orderForm']['surname'] );
  95.      $mail    = htmlspecialchars( $_SESSION['orderForm']['email'] );
  96.      $phone   = htmlspecialchars( $_SESSION['orderForm']['phone'] );
  97.      $address = htmlspecialchars( $_SESSION['orderForm']['address'] );
  98.      unset( $_SESSION['orderForm'] );    
  99.    }
  100.    else
  101.    {
  102.      $name    = '';
  103.      $surname = '';
  104.      $mail    = '';
  105.      $phone   = '';
  106.      $address = '';
  107.    }
  108.    
  109.    echo '<form name="orderForm" action="'.$_SERVER['PHP_SELF'].'" method="POST">';
  110.    echo 'Имя: <input type="text" name="name" value="'.$name.'" maxlength="30" /><br/>';
  111.    echo 'Фамилия: <input type="text" name="surname" value="'.$surname.'"  maxlength="30" /><br/>';
  112.    echo 'E-mail: <input type="text" name="email" value="'.$mail.'" maxlength="30" /><br/>';
  113.    echo 'Телефон: <input type="text" name="phone" value="'.$phone.'" maxlength="30" /><br/>';
  114.    echo 'Адрес доставки:<br/>';
  115.    echo '<textarea name="address">'.$address.'</textarea><br/>';
  116.    echo '<input type="submit" name="sendOrder" value="Отправить" />';
  117.    echo '</form>';
  118.  }
  119. ?>
  120.  
evgenijj Отправлено: 07 Ноября, 2007 - 13:53:00 • Тема: Оформление вывода информации из БД v2 • Форум: SQL и Архитектура БД

Ответов: 45
Просмотров: 679
Через БД будет сложно, но интресно. Просто в код засунуть - это будет всего одна форма. И редактировать ручками. Программист разберется, а вот обычный контент-редактор сайта - вряд ли. Решай сам.
evgenijj Отправлено: 07 Ноября, 2007 - 10:13:48 • Тема: Немного не допонял по поводу cookie • Форум: Программирование на PHP

Ответов: 17
Просмотров: 973
Знаешь, словами объяснять у тебя плохо получается. Терминология мягко говоря странная. Например, "...Разные функции, обрабатывающие разные действия пользователя..." Какие действия пользователя? Это PHP, а не JavaScript. Это в JavaScript та можешь реагировать на действия пользователя -- onclick, onchange, onmouseover и т.п.

Уровень твоих знаний пока не слишком высокий. Об этом вполне опреденно говорит конструкция
setcookie ("sendemail","okey") or die "Произошла ошибка";

Поэтому предлагаю сделать так: ты выкладываешь свой код. Только, пожалуйста, не надо сюда вываливать 1000 строк кода. Читать это никто не будет. Вполне достаточно 20-30 строчек кода. Не поленись, и напиши небольшой скриптик иллюстрирующий твою проблему. И мы с удовольствием тебе поможем.

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB