Ваш код разбит на две полностью отдельные части, серверную сторону и клиентскую сторону .
|
---------->
HTTP request
|
+--------------+ | +--------------+
| | | | |
| browser | | | web server |
| (JavaScript) | | | (PHP etc.) |
| | | | |
+--------------+ | +--------------+
|
client side | server side
|
<----------
HTML, CSS, JavaScript
|
Обе стороны общаются через HTTP-запросы и ответы. PHP выполняется на сервере и выводит код HTML и, возможно, JavaScript, который отправляется как ответ клиенту, где интерпретируется HTML, и выполняется JavaScript. Когда PHP завершит вывод ответа, сценарий закончится, и на сервере ничего не произойдет, пока не появится новый HTTP-запрос.
Пример кода выполняется следующим образом:
Шаг 1, PHP выполняет весь код между тегами . В результате получилось следующее:
Вызов file_put_contents
не привел ни к чему, он просто написал «+ foo +» в файл. Вызов привел к выводу «42», который теперь находится в том месте, где этот код использовался.
Этот итоговый код HTML / JavaScript теперь отправляется клиенту, где он получает оценку , Вызов alert
работает, а переменная foo
нигде не используется.
Весь PHP-код выполняется на сервере до того, как клиент даже начнет выполнение какого-либо JavaScript. В ответе JavaScript, с которым может взаимодействовать JavaScript, нет кода PHP.
Чтобы вызвать некоторый код PHP, клиент должен будет отправить новый HTTP-запрос на сервер. Это может произойти с использованием одного из трех возможных способов:
Вот более подробный изложение этого метода
Вы также можете использовать JavaScript, чтобы браузер открыл новую страницу с помощью window.location
или отправить форму, подражая возможностям 1 и 2.
Я не думаю, что можно вывести учетные данные пользователя из браузера в базу данных (и это имеет смысл? Я думаю, что нет)
Но если вы хотите использовать учетные данные пользователя, запускающего Tomcat для подключения к SQL Server, вы можете использовать драйвер JDBC от Microsoft. Просто создайте URL-адрес JDBC следующим образом:
jdbc:sqlserver://localhost;integratedSecurity=true;
И скопируйте соответствующую DLL в каталог bin Tomcat (sqljdbc_auth.dll с драйвером)
MSDN> Подключение к SQL Server с драйвером JDBC> Создание URL-адреса подключения
У меня возникла проблема с подключением к MS SQL 2005 с использованием проверки подлинности Windows. Я смог решить проблему с помощью этого и других форумов. Вот что я сделал:
Мое окружение: клиентская станция Windows XP, на которой размещается Apache Tomcat 6 с бэкэндом MS SQL 2005 в Windows 2003
Это действительно работает для меня:
В README.SSO, который поставляется с дистрибутивом jtdsd:
Для того, чтобы Single Sign On работал, jTDS должен иметь возможность загружать встроенная библиотека SPPI ntlmauth.dll
. Поместите эту DLL в любом месте системного пути (определяется системной переменной PATH
), и вы все настроены.
Я поместил ее в папку jre / bin
, настроенную мной порт, посвященный экземпляру sql-сервера (2302), чтобы облегчить необходимость имени экземпляра - просто что-то я делаю. lportal - это имя моей базы данных.
jdbc.default.url=jdbc:jtds:sqlserver://192.168.0.147:2302/lportal;useNTLMv2=true;domain=mydomain.local
Если у вас нет какой-то по-настоящему убедительной причины, я предлагаю отключить драйвер MS JDBC.
Вместо этого используйте драйвер jtds jdbc . Прочтите файл README.SSO в дистрибутиве jtds о том, как настроить для однократной регистрации (собственная проверка подлинности) и где разместить собственную DLL для обеспечения ее загрузки JVM.