weiterleitung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • weiterleitung

    hi hab folgendes problem
    mein script schaut in einer db nach ob bestimmte id vorhanden ist und wenn ja erfolgt ein eintrag (so eine art empfangsbest.) nun wird bei erfolgreichen eintrag ein erfolgreich ausgegeben und dann soll eine weiterleitung auf eine andere seite erfolgen nun das ist das prob es darf ja kein echo vor dem senden der header informationen stehen
    hab nun schon lange gesucht und etwas über ausgabesteuerung gefunden . hab jedoch keinen schimmer wie das funktioniert wäre echt super wenn mir da wer helfen könnte
    PHP-Code:

    require("connect.inc.php");
    //echo $geheim;
    $array = array();
    $array[]=$id;
    $array implode(',',$array);
    $neu$array[1].$array[3].$array[5].$array[7].$array[9].$array[11];    //skz aus id herausfiltern 

    //echo $neu."<br>";

    $query=mysql_query("Select skz From schulen");
    while (
    $row mysql_fetch_array($query)) {
        if (
    $neu == $row['skz']) {  // nachschaun obs die skz in db gibt 
        
    $found 1;
            break;
        } else {
            
    //print $row['skz']."<br>";
            
    $found 0;  
        }
    }

    if (
    $found == 1) {
      
    $sql="INSERT INTO sendebe(skz,host) VALUES ('$neu','$REMOTE_ADDR')";
      
    $result mysql_query($sql);
      if (
    $result) {
      
      echo 
    "<FONT COLOR=#00FF00 SIZE=+2>Erfolgreich</FONT><P>";
    } else {
      echo 
    "<FONT COLOR=#FF0000 SIZE=+2>Fehlgeschlagen</FONT><P>";
      }
      
    } else {
        
    //print "NOT FOUND!";
    }


    if(
    $uid){
    header("Location:weiter.php");
    //echo "uri ist vorhanden";

    }else{

    //echo "uri ist nicht vorhanden";


  • #2
    vor dem header() darf keine HTML-Ausgabe existieren, was auch logisch
    ist, denn wenn es zulässig wäre, wären die Ausgabe auch nicht angezeigt.

    Also Lösungvorschlag: du leitest um und lass anschliessend ein PopUpFenster mit einem
    Timer für die Meldungen erscheinen. Beim Ablauf des Timer das PopUpFenster selbsttätig schliessen.

    Kommentar


    • #3
      Hi,

      ich hoffe, ich verstehe dich richtig...

      Also wieso gibst du denn ein "erfolgreich" aus, wenn der Benutzer dann sowieso weitergeleitet wird. Wenn du dieses Header-Location verwendest, wird er ja sofort weitergeleitet, ohne dass er das "erfolgreich" überhaupt sieht!

      Mach es doch einfach so, dass du den Header-Location Befehl in eine IF-Schleife legst. Wenn es erfolgreich ist, dann soll er Header-Loaction ausführen und dann auf der Seite weiter.php dann "erfolgreich" ausgeben, wenn nicht, dann geht er sowieso über die IF-Schleife drüber und dann gibst du darunter dann den ECHO Befehl aus.

      Habe ich das so richtig verstanden? Falls nicht, schreib's bitte nochmal rein, ok?

      Greetz Lukas

      Kommentar


      • #4
        @asp2php

        so ungefähr mit dem popup hab ich mir das vorgestellt nur hab ich leider überhaupt keine ahnung von js ...
        dh . in der if anweisung
        PHP-Code:
        ......
        if (
        $found == 1) {
          
        $sql="INSERT INTO sendebe(skz,host) VALUES ('$neu','$REMOTE_ADDR')";
          
        $result mysql_query($sql);
          if (
        $result) {
          +++++
        hier sollte dann das popup stehen oder ????****
          
        //echo "<FONT COLOR=#00FF00 SIZE=+2>Erfolgreich</FONT><P>";
        } else {
          
        //echo "<FONT COLOR=#FF0000 SIZE=+2>Fehlgeschlagen</FONT><P>";
          
        }
          
        } else {
            
        //print "NOT FOUND!";

        // hier dann die weiterleitung..... 
        lass ich statt dem echo ein popup aufgehn (siehe script ++++ ++++)
        aber wie ???

        weiters: @skalu
        das geht so nicht wie du das meinst weil ein weiterleitung nur in abhängigkeit des wertes von $uid ist und diese var nicht immer einen wert haben muss

        Kommentar


        • #5
          nein, das PopUp erzeugst du in der weiter.php und zwar du gibst die Meldung (besser flag) in der URI an weiter.php und dann entsprechend Meldung ausgeben. Etwa weiter.php?ok=1 für erfolgreich und 0 für nicht.

          PopUp rufst du per window.open auf; mit
          <script language="javascript">
          setTimeout('self.close();',20000);
          </script>
          kannst du z.B. das PopUp nach 20 Sek. selbst schliessen lassen.

          Kommentar


          • #6
            re

            danke erst mal wers versuchen
            hoffe darf mich nochmal an dich wenden wenn ichs nicht hinbekomme
            mfg

            Kommentar


            • #7
              re popup

              habs nun so
              php script :
              PHP-Code:

              require("connect.inc.php");
              //echo $geheim;
              $array = array();
              $array[]=$id;
              $array implode(',',$array);
              $neu$array[1].$array[3].$array[5].$array[7].$array[9].$array[11];     //skz aus id herausfiltern 
              //echo $neu."<br>";
              $query=mysql_query("Select skz From schulen");
              while (
              $row mysql_fetch_array($query)) {
                  if (
              $neu == $row['skz']) {   // nachschaun obs die skz in db gibt 
                      
              $found 1;
                      break;
                  } else {
                      
              //print $row['skz']."<br>";
                      
              $found 0;    
                  }
              }

              if (
              $found == 1){
                  
              $sql="INSERT INTO sendebe(skz,host) VALUES ('$neu','$REMOTE_ADDR')";
                  
              $result mysql_query($sql);
                  if (
              $result AND $_GET['uid']) {
                  
              header("Location:/php_mail/umfrage.html?ok=1");
                  
              //echo "<FONT COLOR=#00FF00 SIZE=+2>Erfolgreich</FONT><P>";
              } else {
                  
              header("Location:/php_mail/umfrage.html?ok=0");
                  
              //echo "<FONT COLOR=#FF0000 SIZE=+2>Fehlgeschlagen</FONT><P>";
                  
              }
              } else {
                  print 
              "NOT FOUND!";

              funkt denk ich ganz gut wenn id in db vorhanden ist --> weiterleitung auf php_mail/umfrage.html?ok=1
              ....usw

              dann meine html seite umfrage.html
              mit js

              <script language="javascript">
              setTimeout('self.close();',20000);
              window.open("/php_mail/erfolgreich.html");
              </script>

              wenn ich das richtig sehe ruft man mit window open dann eine weiter html seite auf (erfolgreich.html) wo dann nur zb erfolgreich steht ... wir auc h aufgemacht aber nicht nach 20 sek geschlossen wenn du mir das auch noch verraten könntest währe ich dir wirklich sehr dankbar

              Kommentar


              • #8
                hehe, der Befehl heisst self.close(). Dreimal darfst du raten wo diese JavaScript-Block zustehen hat, in welcher Datei?

                Kommentar


                • #9
                  re

                  sorry für die frage bin ne sek nacher draufgekommen
                  sitz schon zulange vor der kist ....

                  Kommentar

                  Lädt...
                  X