Michael W.: reload bei if abfrage

Hallo,

wie könnte ich das realisieren ?
if(wenn das und das zutrifft)
{
reload eines bestimmten frames
}
(ohne else)

es geht mir nur um den reload
ich hab es schon mit javascript probiert:

<script type="text/javascript">
<!--
alert("Wir haben gerade geöffnet !");
parent.menu.location.href = 'menu.php';
//-->
</script>

das geht aber nur wenn man die seite neu lädt. also muss ich in jedem fall eine lösung finden wie man einen reload in php realisieren kann !

Danke

  1. Hi,

    wie könnte ich das realisieren ?

    mit etwas clientseitigem. Oder anders gesagt: _Nicht_ mit etwas serverseitigem.

    das geht aber nur wenn man die seite neu lädt.

    Willkommen in der wunderbaren Welt der Client-Server-Architektur.

    also muss ich in jedem fall eine lösung finden wie man einen reload in php realisieren kann !

    Es steht Dir frei, das Universum neu zu konzipieren. Die Implementierung dürfte sich jedoch als schwierig erweisen.

    Cheatah

    1. Hi,

      wie könnte ich das realisieren ?

      mit etwas clientseitigem. Oder anders gesagt: _Nicht_ mit etwas serverseitigem.

      Die Implementierung dürfte sich jedoch als schwierig erweisen.

      ich meine aber schon gesehen zu haben, wie man mit php eine location angibt. ich meine so wärs mir auch recht:

      if(bedingung korrekt)
      {
      springe zu seite2.php
      }

      da kann ich ja dann javascript ausführen.

      geht das wenigstens ?

      1. Hi,

        ich meine aber schon gesehen zu haben, wie man mit php eine location angibt.

        ja. Du hast jedoch garantiert nicht gesehen, wie man ein Target angibt - das ist mit etwas serverseitigem nämlich nicht möglich.

        da kann ich ja dann javascript ausführen.
        geht das wenigstens ?

        Heidewitzka. Was hälst Du denn davon, einfach das target-Attribut einzusetzen?

        Cheatah

        1. Hi,

          ich meine aber schon gesehen zu haben, wie man mit php eine location angibt.

          ja. Du hast jedoch garantiert nicht gesehen, wie man ein Target angibt - das ist mit etwas serverseitigem nämlich nicht möglich.

          da kann ich ja dann javascript ausführen.
          geht das wenigstens ?

          Heidewitzka. Was hälst Du denn davon, einfach das target-Attribut einzusetzen?

          wo denn ?
          ich möchte doch nur nach einer abfrage auf eine andere seite, wenn man mit php keine reloads durchführen kann.

          if(...)
          {
          zu seite2.php //diesen befehl kenne ich nicht und hätte gerne einen ansatz
          }

          1. Hi,

            Heidewitzka. Was hälst Du denn davon, einfach das target-Attribut einzusetzen?
            wo denn ?

            in dem HTML-Tag, mit dem Du das PHP-Script aufrufst.

            ich möchte doch nur nach einer abfrage auf eine andere seite,

            Und in einen anderen Frame, wenn ich Dich richtig verstanden habe. Auf eine andere Seite ist leicht, in einen anderen Frame von PHP aus unmöglich.

            wenn man mit php keine reloads durchführen kann.

            Kann man nicht.

            zu seite2.php //diesen befehl kenne ich nicht und hätte gerne einen ansatz

            Ach so, das hatte ich so nicht verstanden.

            Einen HTTP-Header setzt Du mit der header()-Methode, die Du in der Doku unter http://www.php.net/ nachlesen kannst und solltest. Der zu setzende Header heißt "Location".

            Cheatah

      2. hi

        ich meine aber schon gesehen zu haben, wie man mit php eine location angibt. ich meine so wärs mir auch recht:

        meinst du das?

        if(bedingung korrekt)
        {
        springe zu seite2.php

        header ("Location: seite2.php")

        }

        http://www.php.net/manual/de/function.header.php

        gruß
        Tobias

        1. was hat das zu sagen ?
          Warning: Cannot add header information - headers already sent by (output started at /var/(...)/info.php:13) in /var/(...)/info.php on line 57

          bei dem script:
          <?php
          (... get time ...)
          if($H=="11" && $i=="00" || $H=="17" && $i=="41") //h=stunde,i=minute
          {
          header ("Location: info_open.php");
          }
          ?>

          ??????? das script hat doch bei der fehlermeldung nichts zu sagen,oder ?

          1. hallo

            was hat das zu sagen ?
            Warning: Cannot add header information - headers already sent by (output started at /var/(...)/info.php:13) in /var/(...)/info.php on line 57

            das bedeutet ganz einfach das der header schon gesendet wurde - vor header (...); darf kein html ausgegeben werden, was aber bei dir vermutlich der Fall ist.

            gruß
            Tobias

            1. das bedeutet ganz einfach das der header schon gesendet wurde - vor header (...); darf kein html ausgegeben werden, was aber bei dir vermutlich der Fall ist.

              Wohl nicht:

              bei dieser schreibweise kommt der selbe fehler:

              <?php
              session_start();
              ?>
              <?php
              //Get Time
              $H = date("H");
              $i = date("i");
              echo $H;
              print " : ";
              echo $i;
              print "\n";
              if($H=="11" && $i=="00" || $H=="15" && $i=="35")
              {
              header ("Location: info_open.php");
              }
              if($H=="14" && $i=="00" || $H=="23" && $i=="00")
              {
              print "hljsd2";
              }
              ?>
              <html>
              <head>
              <meta http-equiv="refresh" content="60"; URL=info.php">
              <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
              <title>info</title>
              <base target="main">
              </head>

              ich werde mal versuchen den header nur ausgeben zu lassen, wenn die if bedingung nicht zutrifft, dann dürfte es keine kollisionen geben ...

              1. Hallo

                das bedeutet ganz einfach das der header schon gesendet wurde - vor header (...); darf kein html ausgegeben werden, was aber bei dir vermutlich der Fall ist.

                Wohl nicht:

                <?php
                session_start();
                ?>
                <?php
                //Get Time
                $H = date("H");
                $i = date("i");
                echo $H;               <<<<<< Wohl Doch!
                print " : ";           <<<<<< und hier!
                echo $i;               <<<<<< Und hier erst!
                print "\n";            <<<<<< ach, und dan nu mal ooch noch!
                if($H=="11" && $i=="00" || $H=="15" && $i=="35")
                {
                header ("Location: info_open.php");
                }
                if($H=="14" && $i=="00" || $H=="23" && $i=="00")
                {
                print "hljsd2";
                }
                ?>
                <html>
                <head>
                <meta http-equiv="refresh" content="60"; URL=info.php">

                .......

                Auge

                1. achso !
                  das wusste ich nicht, ich habe gedacht alles was hinter <html> kommt.

                  jetzt habe ich das script ein wenig umgeschrieben:

                  <?php
                  //Get Time
                  $H = date("H");
                  $i = date("i");
                  $operation = '<meta http-equiv="refresh" content="60"; URL="info.php">';
                  if($H=="11" && $i=="00" || $H=="16" && $i=="35")
                  {
                  header ("Location: info_open.php");
                  $operation = '';
                  }
                  if($H=="14" && $i=="00" || $H=="23" && $i=="00")
                  {
                  header ("Location: info_close.php");
                  $operation = '';
                  }
                  ?>
                  <html>
                  <head>
                  <?php
                  echo $operation;
                  ?>

                  da passiert folgendes:
                  zunächst wird die time vom server geholt und in die variablen gespeichert. dann die variable $operation angelegt mit dem inhalt der standart refresh funktion. in den if abfragen wird $operation dann auf '' gestzt, damit die funktion, wenn die if bedingung zutrifft, keine kollisionen hervoruft. ABER egal ob die if bedingung zutrifft oder nicht der header wird so oder so gesendet, das ist doch dumm ! oder habe ich was übershen ?

                  1. hi

                    <?php
                    //Get Time
                    $H = date("H");
                    $i = date("i");
                    $operation = '<meta http-equiv="refresh" content="60"; URL="info.php">';

                    da sind zwei anführungszeichen zu viel, hinter "60" gehört keins und vor "info.php" auch nicht siehe http://selfhtml.teamone.de/html/kopfdaten/meta.htm#weiterleitung (daran liegt es aber nicht)

                    if($H=="11" && $i=="00" || $H=="16" && $i=="35")
                    {
                    header ("Location: info_open.php");
                    $operation = '';
                    }
                    if($H=="14" && $i=="00" || $H=="23" && $i=="00")
                    {
                    header ("Location: info_close.php");
                    $operation = '';
                    }
                    ?>
                    <html>
                    <head>
                    <?php
                    echo $operation;
                    ?>

                    ABER egal ob die if bedingung zutrifft oder nicht der header wird so oder so gesendet, das ist doch dumm ! oder habe ich was übershen ?

                    bis du sicher, dass du es genau so hat, bei mir funktioniert es so wie du es gepostet hast (es wir nur weitergeleitet, wenn ich die Uhrzeit ändere). Hast du in diesem Bereich noch was ausgelassen? btw was soll es für einen Sinn machen nur in 4 min von einem Tag weiterzuleiten?

                    gruß
                    Tobias

                    1. ABER egal ob die if bedingung zutrifft oder nicht der header wird so oder so gesendet, das ist doch dumm ! oder habe ich was übershen ?
                      bis du sicher, dass du es genau so hat, bei mir funktioniert es so wie du es gepostet hast (es wir nur weitergeleitet, wenn ich die Uhrzeit ändere). Hast du in diesem Bereich noch was ausgelassen? btw was soll es für einen Sinn machen nur in 4 min von einem Tag weiterzuleiten?

                      der sinn ist der:
                      diese script soll nur zu bestimmten uhrzeiten auf ne andere seite weiterleiten, nämlich dann wenn gerade geöffnet wird (11 + 17 uhr) oder geschlossen wird (17 + 23) uhr weil dann im menü sich die menüpunkte ändern, weil wenn die seiete zu einem zeitpunkt besucht wird wenn geschlossen ist, dann wird man noch auf einen seite umgeleitet die einen darauf hinweist, dass nicht ausgeliefert wird.

                      kompliziert.
                      http://www.europizza-reichelsheim.de/test/

                      wenn ich das script ausführe, dann reloadet der die ganze zeit alle 0 sek reloadet er die seite - warum (das ist doch kein php problem, vieleicht liegts doch an dem "")

                      ? Danke

                      1. sorry geschlossen wird 14 und 23 uhr :-)