Классический ASP: значения сеанса не передаются во всплывающее окно

session #asp-classic

#сеанс #asp-classic

Вопрос:

Я пытаюсь передать значения через сеанс с одной страницы во всплывающее окно. Но ему не удается передать значение. Я проверил ISS, где состояние сеанса включено true. Я опубликую код, над которым я работаю, пожалуйста, дайте мне знать, чего мне не хватает в нем, или любую другую проблему с настройками переменных, такую как php.ini

 <script language="javascript" type="text/javascript">
function veh(url) {
        popupWindow = window.open(url, 'popUpWindow', 'height=300,width=300,left=50,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes');
    }
</script>

<%
' Define to hold temporary super session  
 Dim strManu  // Manufacture type
 strManu = Session("Manu")
 Dim objRS
 Dim strSQL  
 Dim strVeh
  
  Set objRS=Server.CreateObject ("ADODB.Recordset")
  strSQL="SELECT vl.* FROM veh_tbl vl where vl.manuID= " amp; strManu  
  objRS.Open strSQL,objconn
  if not objRS.eof then 
     strVeh=objRS("veh")
     Session("Veh")=strVeh
  end if
  objRS.Close
  Set objRS=Nothing  

 <a href='http://www.example.com/popup.asp' target='_self' 
 onclick='veh(this.href);return false'><img border='0'src='images/info.jpg'></a> 

 

Всплывающее окно

 
<% 
 Dim strVal
 strVal = Session("Veh")
%>
<FORM name=MyForm>
 <%     Response.Write "<label class = 'col-sm-4 col-form-label'>" amp; strVal amp; "</label>"     %>
</FORM>     
%>                                
 

Я получаю значение из базы данных и могу распечатать строку (strVeh) на той же странице. Я не могу передать то же самое во всплывающем окне. Он не показывает никаких ошибок. Кто-нибудь, пожалуйста, помогите мне решить проблему.

Комментарии:

1. ISS? Международная космическая станция или, может быть, вы имеете в виду IIS (информационный интернет-сервер)?

2. Что такое переменная strManu ? В целом этот код кажется ненадежным, например, возможно, вы слишком сильно сократили его. Можете ли вы просмотреть его и подтвердить, что это справедливое представление о том, что вы делаете, пожалуйста.

3. @user692942 извините .. ошибка опечатки .. его IIS.

4. @VanquishedWombat Я обновил вопрос на основе вашего предложения .. переменная strManu содержит тип veh manufacture .. значение было передано с предыдущей страницы через сеанс.

5. Можем ли мы также проверить, что href для всплывающего окна был изменен в примере кода? Это кажется маловероятным, но на всякий случай, если вы на самом деле используете ‘ example.com/popup.asp » тогда это не сработает — вам нужно, чтобы это был веб-адрес на том же сервере, что и первая страница. Так что, если ваша первая страница www.myserver.com/page1.asp тогда всплывающее окно также должно быть страницей по адресу www.myserver.com .

Ответ №1:

Вещи, которые я бы проверил:

  1. Во-первых, точно href='http://www.example.com/popup.asp' ли домен и поддомен соответствуют исходной странице? Например, добавление или удаление «www» может иметь значение.
  2. Вы уверены if not objRS.eof then , что разрешение true? Например, попробуйте просто поместить session("test") = "test" где-нибудь на странице за пределами условного оператора и посмотреть, доступна ли эта переменная во всплывающем окне.

Ответ №2:

Недавно возникла эта проблема, если я ввел ‘https://www.myweb.com/checksession.asp ‘он не загружал / не мог видеть переменные сеанса.

Введите ‘https://myweb.com/checksession.asp ‘ (т.е. удалите www.), и он работает нормально.

Итак, что следует иметь в виду, если ссылаться на другую страницу / ajax / сценарии загрузки и т. Д.

Комментарии:

1. Похоже, что первый ответ также говорит то же самое!