sameralkhalili Ответов: 1

Вставить в таблицу базы данных SQL с помощью javascript ?


привет как я могу вставить в таблицу базы данных sql с моей страницы asp с помощью кода javascript

я нашел код в select from table , что мне нужно изменить

я пытаюсь вставить lat и lng и имя из текстового поля читать из подсказки google api

Что я уже пробовал:

google.maps.event.addListener(map, "rightclick", function(event) {
                var lat = event.latLng.lat();
                var lng = event.latLng.lng();
                //window.prompt("Lat=" + lat + "; Lng=" + lng,"defaultText");
                var text =  prompt("Lat=" + lat + "; Lng=" + lng, "");
                var objConnection = new ActiveXObject("adodb.connection");
                var strConn = "driver={sql server};server=.;database=MAPDB;uid=sa;password=123456";
                objConnection.Open(strConn);
                var rs = new ActiveXObject("ADODB.Recordset");
                var strQuery = "insert into tbl_hotarea (HeadTitle , lat , lng) values ('"+text+"' , '"+lat+"' , '"+lng+"')";
                rs.Open(strQuery, objConnection);
            });

Richard Deeming

Помимо того, что вы ориентируетесь на SQL Server на клиентском компьютере, и того факта, что ваш код будет выполняться только в Internet Explorer на Windows, и только в том случае, если пользователь включил ваш сайт для инициализация и использование элементов ActiveX, не помеченных как безопасные для использования...

.. ваш код также уязвим для SQL-инъекция[^].

Теперь в этом случае пользователь будет только в конечном итоге взламывать свою собственную локальную копию вашей базы данных - вы же предоставили Инструкции о том, как установить SQL Server и получить копию вашей базы данных, не так ли? - но это все равно вызовет проблемы. Например, что происходит, когда пользователь вводит Bob's Burgers в вашу подсказку?

Добавьте к этому тот факт, что вы подключаетесь как sa - неограниченный пользователь с неограниченными разрешениями, который может быть использован для уничтожения всего, к чему он прикасается - и это определенно НЕ глядя, как кто-нибудь поверит в использовании небезопасных элементов ActiveX!

1 Ответов

Рейтинг:
2

Christian Graus

Вам нужно узнать, как работают веб-пакеты. Если это вообще работает, он будет использовать ActiveX для вставки в базу данных на клиентской машине, которая, как вы предполагаете, существует.

Надеюсь, вы не используете аспирин. Даже ASP.NET это устарело.

Вам нужно сделать AJAX вызов или обратный вызов и вставить в базу данных в фоновом коде


sameralkhalili

мой друг , я думаю, что это будет легко больше, что оператор select работает нормально , но вставка не работает

Christian Graus

Ваш друг тоже не понимает интернета. Кажется, что он работает во время разработки, но он будет работать только в производственном режиме, если люди, загружающие сайт, установили SQL Server с тем же именем пользователя и паролем и той же базой данных для работы.

sameralkhalili

спасибо