276

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Следуя Вашему совету, я добавил в конце конфигурационного файла config.inc.php (для phpMyAdmin) строку $cfg['AllowAnywhereRecoding'] = true; .
После этого в phpMyAdmin на странице "Экспорт" действительно появилась поле "Кодировка файла", дающее возможность выбора и задания кодировки файла, в которой нужно сохранить дамп таблицы БД.
В этом поле я выбрал кодировку windows-1251 и получил файл дампа таблицы БД в нужной мне кодировке cp-1251.
Огромное спасибо Вам за помощь и ценный совет, который может быть полезен многим пользователям!
Может быть, имеет смысл добавить этот совет о добавлении возможности выбора кодировки файла дампа таблиц БД в статью ""Инструментарий веб-разработчика" в раздел, описывающий настройки phpMyAdmin.

277

Re: Обсуждение статьи "Инструментарий веб-разработчика"

belhoplov сказал:

Может быть, имеет смысл добавить этот совет о добавлении возможности выбора кодировки файла дампа таблиц БД в статью ""Инструментарий веб-разработчика" в раздел, описывающий настройки phpMyAdmin.

Нет, этого делать не стоит, так как единственно правильным является сохранение дампа в utf8. Сохранение дампа в национальных кодировках дано только как опция и не рекомендуется.

Например, есть две таблицы, одна в cp1251, другая в latin1. Если сохранить дамп в cp1251, то таблица в latin1 окажется с битыми данными; если сохранить дамп в latin1, то таблица в cp1251 будет с битыми данными. Зато если сохранить дамп в utf8, то обе таблицы в национальных кодировках будут сохранены верно и их можно будет успешно восстановить.

278 (изменено: makros, 2010-02-03 01:10:02)

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Настраивал всё как написано у вас в статье.
Но у меня почему-то не работает ajax. Хотел написать как здесь (http://ajaxphp.packtpub.com/ajax/quickstart/ это из книжки "ajax и php разработка динамических приложений"), но ничего не происходит при вводе символов в поле. Там ведь ничего нет кроме php и javaScript, а php у меня отлично работает...
Вызвано ли это настройкой php или apache?

279

Re: Обсуждение статьи "Инструментарий веб-разработчика"

makros
Не думаю, что здесь виноваты настройки. Покажите код - разберемся.

280 (изменено: makros, 2010-02-03 11:09:16)

Re: Обсуждение статьи "Инструментарий веб-разработчика"

--index.html--
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmls="http://www.w3.org/1999/xhtml">
    <head>
        <title>AJAX  PHP: Quickstart</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <script type="text/javascript" src="quickstart.js"></script>
    </head>
    <body onload="process()">
        Сервер желает узнать ваше имя:
        <input type="text" id="myName" onkeyup="process()" onmouseup="process()" />
        <div id="divMessage" />
    </body>
</html>

--quickstart.js--

// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();

// retrieves the XMLHttpRequest object
function createXmlHttpRequestObject()
{   
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // if running Internet Explorer
  if(window.ActiveXObject)
  {
    try
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e)
    {
      xmlHttp = false;
    }
  }
  // if running Mozilla or other browsers
  else
  {
    try
    {
      xmlHttp = new XMLHttpRequest();
    }
    catch (e)
    {
      xmlHttp = false;
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)

    alert("Error creating the XMLHttpRequest object.");
  else
    return xmlHttp;
}

// make asynchronous HTTP request using the XMLHttpRequest object
function process()
{
  // proceed only if the xmlHttp object isn't busy
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    // retrieve the name typed by the user on the form
    name = encodeURIComponent(document.getElementById("myName").value);
    // execute the quickstart.php page from the server
//    if(name.length > 0) { Эту проверку делать нельзя, иначе дальнейшие функции слетают, так как xmlHttp.open получается не выполена.
    xmlHttp.open("GET", "quickstart.php?name=" + name, true); 
//    }
    // define the method to handle server responses
    xmlHttp.onreadystatechange = handleServerResponse;
    // make the server request
    xmlHttp.send(null);
  }
}

// executed automatically when a message is received from the server
function handleServerResponse()
{
  // move forward only if the transaction has completed
  if (xmlHttp.readyState == 4)
  {
    // status of 200 indicates the transaction completed successfully
    if (xmlHttp.status == 200)
    {
      // extract the XML retrieved from the server
      xmlResponse = xmlHttp.responseXML;
      // obtain the document element (the root element) of the XML structure
      xmlDocumentElement = xmlResponse.documentElement;
      // get the text message, which is in the first child of
      // the the document element
      helloMessage = xmlDocumentElement.firstChild.data;
      // update the client display using the data received from the server
      document.getElementById("divMessage").innerHTML =
                                            '<i>' + helloMessage + '</i>';
      // restart sequence
    }
    // a HTTP status different than 200 signals an error
    else
    {
      alert("There was a problem accessing the server: " + xmlHttp.statusText);
    }
  }
}

--quickstart.php--
<?
// результаты будут отправлять в формате xml
header('Content-Type: text/xml');
// сгенирировать заголовок xml
print "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
// создаём элемент <response>
print "<response>";
// получаем имя пользователя
$name = $_GET['name'];
// сгенирировать текст сообщения в зависимости
// от имени пользователя принятого от клиента
$userName = array('Владислав', 'Слава');
if (in_array(strtoupper($name), $userName)) { // Таким образом нельзя сделать регистронезависимое сравнение. При его необходимости можете попробовать сами разобраться.
    print "Здравствуйте мастер " . htmlspecialchars($name). "!"; // Нельзя здесь все переводить в сущности функцией htmlentities, слетает XML. Кодировать надо функцией htmlspecialchars.
}
else {
    if (trim($name) == '') {
        print "Скажи мне, как зовут тебя незнакомец!";
    }
    else {
        print htmlspecialchars($name). ", вы мне не знакомы!";
    }
}
// закрыть элемент <response>
print "</response>";
?>

281

Re: Обсуждение статьи "Инструментарий веб-разработчика"

makros
Важно! Все скрипты должны быть в кодировке UTF-8. Не в ANSI!

Пример содержит ошибки и я бы не рекомендовал на нем учиться. Вот пример значительно более качественный: https://developer.mozilla.org/ru/AJAX

Еде один совет: передавать скрипту данные лучше через POST метод, так как он значительно меньше ограничен по объему данных, чем GET.

282

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Добрый день.пПодскажите пожалуйста в чем проблема после изминения httpd.conf и httpd-vhosts.conf и рестарта  Apache  вообще не запускается пишет(The requested operation has failed)

283

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Спасибо, видимо проблема была именно в кодировке скриптов.

284

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Domovoi
Смотрите ошибки в error.log и проверьте синтаксис конфигурационных файлов.

285

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Starting the Apache2.2 service
The Apache2.2 service is running.
rmine the server's fully qualified domain name, using 192.168.1.2 for ServerName
[Wed Feb 03 12:13:26 2010] [notice] Apache/2.2.14 (Win32) configured -- resuming normal operations
[Wed Feb 03 12:13:26 2010] [notice] Server built: Sep 28 2009 22:41:08
[Wed Feb 03 12:13:26 2010] [notice] Parent: Created child process 2936
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
[Wed Feb 03 12:13:26 2010] [notice] Child 2936: Child process is running
[Wed Feb 03 12:13:26 2010] [notice] Child 2936: Acquired the start mutex.
[Wed Feb 03 12:13:26 2010] [notice] Child 2936: Starting 64 worker threads.
[Wed Feb 03 12:13:26 2010] [notice] Child 2936: Starting thread to listen on port 80.
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
[Wed Feb 03 12:31:49 2010] [warn] pid file C:/Program Files/Apache Software Foundation/Apache2.2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Wed Feb 03 12:31:49 2010] [notice] Apache/2.2.14 (Win32) configured -- resuming normal operations
[Wed Feb 03 12:31:49 2010] [notice] Server built: Sep 28 2009 22:41:08
[Wed Feb 03 12:31:49 2010] [notice] Parent: Created child process 1904
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
[Wed Feb 03 12:31:49 2010] [notice] Child 1904: Child process is running
[Wed Feb 03 12:31:49 2010] [notice] Child 1904: Acquired the start mutex.
[Wed Feb 03 12:31:49 2010] [notice] Child 1904: Starting 64 worker threads.
[Wed Feb 03 12:31:49 2010] [notice] Child 1904: Starting thread to listen on port 80.
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
[Wed Feb 03 13:18:43 2010] [warn] pid file C:/Program Files/Apache Software Foundation/Apache2.2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Wed Feb 03 13:18:43 2010] [notice] Apache/2.2.14 (Win32) configured -- resuming normal operations
[Wed Feb 03 13:18:43 2010] [notice] Server built: Sep 28 2009 22:41:08
[Wed Feb 03 13:18:43 2010] [notice] Parent: Created child process 2340
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.1.2 for ServerName
[Wed Feb 03 13:18:44 2010] [notice] Child 2340: Child process is running
[Wed Feb 03 13:18:44 2010] [notice] Child 2340: Acquired the start mutex.
[Wed Feb 03 13:18:44 2010] [notice] Child 2340: Starting 64 worker threads.
[Wed Feb 03 13:18:44 2010] [notice] Child 2340: Starting thread to listen on port 80.
[Wed Feb 03 13:43:22 2010] [notice] Parent: Received restart signal -- Restarting the server.
[Wed Feb 03 13:43:22 2010] [notice] Child 2340: Exit event signaled. Child process is ending.
httpd.exe: Syntax error on line 231 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf: </Directory> without matching <Directory> section
[Wed Feb 03 13:43:23 2010] [warn] (OS 995)Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения.  : winnt_accept: Asynchronous AcceptEx failed.
[Wed Feb 03 13:43:23 2010] [notice] Child 2340: Released the start mutex
[Wed Feb 03 13:43:24 2010] [notice] Child 2340: All worker threads have exited.
[Wed Feb 03 13:43:24 2010] [notice] Child 2340: Child process is exiting

286

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Здесь ошибка. Смотрите почему оказался некорректным блок директивы Directory.
Syntax error on line 231 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf: </Directory> without matching <Directory> section

287

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Вроде нашел при добавлении
Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
LoadModule php5_module "C:/php/php5apache2_2.dll"
Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
PHPIniDir "C:/php"
при втавки лбой строчки  (The requested operation has failed) помоги я юзер

288

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Domovoi
Вышлите ваш httpd.conf на hanut@php-myadmin.ru

289

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Здравствуйте, Hanut!
большое спасибо за вашу статью, очень все грамотно и доступно написано!

на http://localhost/localstart.asp заходит но сразу же возникает всплывающее окно с ошибкой Directory Listing Denied по адресу http://localhost/iishelp/ и еще возникает ошибка - я не могу получить доступ к документации (мануалам) на http://localhost/manual/.
подскажите пожалуйста решение этих проблем.

290

Re: Обсуждение статьи "Инструментарий веб-разработчика"

JohnyMotorhead
Что это? http://localhost/localstart.asp

Если вы ставили Apache, то asp скрипты выглядят очень странно. Если вы ставили IIS, то даже не знаю чем помочь, так как не знаком с этим веб сервером.

291

Re: Обсуждение статьи "Инструментарий веб-разработчика"

http://localhost/localstart.asp - это адрес в строке браузера, когда я захожу по адресу http://localhost
я думал так и должно быть, но что то работает не так. на этой же странице значок Windows, а также написано

Служба Web теперь работает.
Для пользователей не определена страница по умолчанию. Пользователи, пытающиеся подключиться к вашему веб-узлу с других компьютеров, попадают на страницу В процессе разработки . Веб-сервер допускает использование в качестве веб-страниц по умолчанию следующих файлов: default.htm,default.asp,index.htm,iisstart.asp,default.aspx. В настоящее время существует только файл iisstart.asp.

Чтобы добавить документы на веб-узел по умолчанию, сохраните файлы в каталоге c:\inetpub\wwwroot\.

я поставил и проделал все шаги как было описано в статье. у меня установлен Apache 2.2.14, MySQL 5.1.43 и PHP 5.2.11

когда я просматриваю через IE то это ошибка 403 HTTP Forbidden.

292

Re: Обсуждение статьи "Инструментарий веб-разработчика"

JohnyMotorhead
Похоже у вас стоит IIS и так как вместе с Apache они занимают 80 порт, то происходит такая странность. Удалите IIS в Windows.

293

Re: Обсуждение статьи "Инструментарий веб-разработчика"

тут есть один момент smile я апач на порт 8080 поставид, так как 80 порт у меня занят процессом tcp.
но IIS я не ставил определенно. и в установленных программах его нет. я так понимаю IIS - это тоже веб сервер? или это какая то другая программа?

294

Re: Обсуждение статьи "Инструментарий веб-разработчика"

через поиск нашел папку Inetpub, в которой должно быть и установлен IIS.
в ней содержаться какие то скрипты, и как раз этот local.asp.
но все дело в том что я ее не устанавливал, это совершенно точно. в установке и удалении программ IIS тоже нет.
мне что же просто папку удалить и все?

295

Re: Обсуждение статьи "Инструментарий веб-разработчика"

все дело было действительно в IIS. он идет по умолчанию с Windows. пришлось просто ее отключить, а в настройках апача настроить порт 80. в принципе все работает.
только единственный вопрос когда заходишь на localhost, то на странице должно отображаться примерно следующее?

Index of /

    Name    Last modified    Size    Description
Apache/2.2.14 (Win32) PHP/5.2.11 Server at localhost Port 80

в мануалы теперь тоже заходит. единственное меня смущает тот факт что знакомый программист говорит на главной странице должно быть написано it works!

296

Re: Обсуждение статьи "Инструментарий веб-разработчика"

JohnyMotorhead
Все нормально. Никаких it works быть не должно. Вы видите обычную страницу веб-сервера.

297

Re: Обсуждение статьи "Инструментарий веб-разработчика"

благодарю вас от всей души. следовала инструкциям и все получилось. большое вам спасибо smilebig_smile

298

Re: Обсуждение статьи "Инструментарий веб-разработчика"

Всё работает!У меня получилось!Спасибо Всем кто участвовал в создании такой замечательной статьи!!!Радости полные штаны)

299

Re: Обсуждение статьи "Инструментарий веб-разработчика"

не понимаю... сделал всё в точности как на инструкции.. захожу на ПхпМайАдмин и получаю вот такое:

phpMyAdmin - Ошибка

Невозможно загрузить расширение mysqli! Проверьте настройки PHP. - Документация


подскажите что делать... а то паника ))

300

Re: Обсуждение статьи "Инструментарий веб-разработчика"

с этим я разобрался... теперь другая проблема )) у меня рутер... на localhost и 192.168.0.100 захожу нормально и вижу сайт... а как мне сделать, чтоб я через и-нет видел его?? домен есть