Метаобновление с целевым кадром

У меня очень простой макет фрейма: index.html

<frameset rows="80,*" frameborder="1" border="5" framespacing="0">
    <frame name="topNav" src="top_nav.html">
    <frameset cols="220,*" frameborder="1" border="5" framespacing="0">
    <frame name="menu" src="menu_1.php" marginheight="0" marginwidth="0" scrolling="auto" noresize>
    <frame name="content" src="content.php" marginheight="0" marginwidth="0" scrolling="auto" noresize> 
</frameset>
</frameset>

введите здесь описание изображения

И простой скрипт входа в систему, который проверяет, совпадают ли имя пользователя и пароль с базой данных и так далее.

Теперь то, что я хочу сделать, это если информация верна, это автоматическое перенаправление строки меню, но все, что я могу сделать, это перенаправить раздел содержимого

// check to see if they match!
  if ($username==$dbusername&&$password==$dbpassoword)
  {
      $_SESSION['username']=$username;
      echo '<meta http-equiv="REFRESH" content="2 ; url=servers.php" target="menu">';
  }
  else 
      echo "<center>Incorrect Information!</center>" ;

Теперь я могу легко это сделать, если заставлю пользователя щелкнуть тег <a href>.

E.G. <a href="servers.php" target="menu">click me</a>

Поэтому я подумал, что могу просто поместить target="menu" в свои теги meta, но все, что он делает, это перенаправляет страницу с контентом.

Итак, мой вопрос: я делаю что-то не так или есть более простой способ сделать это?


person connor.p    schedule 01.03.2013    source источник
comment
Прошла целая вечность с тех пор, как я когда-либо видел набор фреймов, используемый на веб-сайте ... или мета-обновления, если на то пошло. Если вы уже используете PHP, почему бы просто не включить эти разделы в свой дисплей вместо создания фреймов... Тогда вы можете просто сделать заголовок («Местоположение: что-то») после успешного входа в систему. Если вы хотите придерживаться фреймов, я бы предложил использовать JavaScript для принудительной перезагрузки через метатег. document.getElementById('menu').location = что-то, возможно?   -  person Applehat    schedule 02.03.2013
comment
привет, яблочная шляпа, если честно, я не большой поклонник фреймов, но я давно хотел отдать их назад, поэтому я сделал небольшой проект для себя и многому научился на этом пути. . Но в будущем я сделаю это с помощью CSS, так как это кажется более надежным. и спасибо за ваш ответ, это также сработало :)   -  person connor.p    schedule 02.03.2013
comment
Без проблем! Ага. Наборы фреймов и мета-обновления — действительно старые технологии в веб-мире. Единственными приемлемыми фреймами больше являются iFrames... и даже их следует использовать с осторожностью. JavaScript теперь позволяет делать все намного чище =)   -  person Applehat    schedule 02.03.2013


Ответы (2)


Я считаю, что вы не можете сделать это с заголовками. Вы можете выводить обычный javascript вместе с вашим контентом. Что-то вроде этого:

<script>
    parent.menu.location.href = "/some-url";
</script>
person Łukasz Wojciechowski    schedule 01.03.2013

Дайте фрейму (меню) идентификатор: Затем измените код следующим образом:

Сдача

echo '<meta http-equiv="REFRESH" content="2 ; url=servers.php" target="menu">';

To

echo '<script>var iframe = document.getElementById("youriframe");iframe.src="servers.php";</script>';
person MIIB    schedule 01.03.2013