Re: Ich versteh's immer noch nicht... - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Oliver ;-) (82 Beiträge) am Dienstag, 19.April.2005, 20:56.
    Re: Ich versteh's immer noch nicht...

      Das wird wohl das Problem sein.

      Es wird zuerst die if-Anweisung ausgeführt und dabei der Datensatz in die Prüfdatenbank eingetragen.
      Dann läd er die Seite ein zweites Mal, findet den Datensatz in der Prüfdatenbank und führt darauf hin die else-Anweisung aus.

      Nur, was kann man dagegen machen? Ich kann meinen Usern ja nicht sagen, sie sollen mit dem Firefox noch mal vorbeikommen... ;-)
      Welche Lösung hattest du denn gefunden?


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Oliver ;-) (82 Beiträge) am Dienstag, 19.April.2005, 16:36.
    Ich versteh's immer noch nicht...

      Hallo,

      irgendwie will der IE mit folgendem Code nicht arbeiten:

      <perl>
      if ($check) #wenn diese Variable mitgeschickt wird...
      {
       get "Code==!$check range=0,1","Pruefdatenbank"; #...prüfe, ob Seite bereits aufgerufen wurde
       $vorhanden=$_amount_query;
       if ($vorhanden == 0) #Wurde noch nicht aufgerufen
        {
           get "Id==!$pdfId Status==pruefen","Seiteninhalt";
           get "Nick==!$namerein range=0,1","weitereDaten";
      out<<EOF;
      <html>
      <head>
      <title>
      
      Dokumententitel
      </title>
      </head>
      <body>
      <center>
      <table><tr><td>
      $Inhalt
      </td></tr></table>
      </center>
      </body>
      </html>
      EOF
      put ["Daten",$Daten],"Prüfdatenbank"; #Notiere den Aufruf der Seite
        }else #Dokument in Prüfdatenbank bereits vorhanden
        {
      out "Dokument wurde bereits aufgerufen";
        }
      }else
      {
      out "Dies ist kein Dokument für die Prüfdatenbank";
      }
      </perl>
      

      Der IE notiert den Aufruf der Seite in der Prüfdatenbank (put-Befehl) und zeigt gleichzeitig an, dass das Dokument bereits aufgerufen wurde...?!?

      Firefox und Opera machen das nicht! Wo liegt hier das Problem??

      Grüße
      Oliver ;-)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Dienstag, 19.April.2005, 17:15.
    Re: Ich versteh's immer noch nicht...

      wie übergibst du denn den Parameter $check, per URL oder per Formular, dort per get- oder put-Methode?
      Dann, wird zwar nix damit zu tun haben ist aber immer sinnvoll, nimm mal verschiedene Ergebnishashnamen für jeden get-Aufruf (kommt noch als zusätzlicher Parameter ans get mit hintenran, bspw. so:
      get "Code==!$check range=0,1", "Pruefdatenbank", "Pruefdaten";
      Dann mach mal die öffnende Blockklammer gleich nach dem else und dann erst den Kommentar (hat aber damit auch nix zu tun...)
      Von deinem Code her muss das ja was mit der Variablen  bzw. dem Parameter $check zu tun haben, gib doch den Inhalt vor dem bedingungsblock und danach einfach mal aus - vielleicht ist es ja auch so ein verrücktes Ding wie mit dem Parameter Namens "para", den interpretieren die Browser eiskalt als ¶ (hab zwar für "check" nix gefunden in benannten Zeichen, aber wer weiss...)
      
      Und dann ganz wichtig beim IE einstellen, dass er jede Seite bei jedem Aufruf neu laden soll (nicht aus dem Cache holen), weil da mitunter sonstwas noch drinstehen kann (ist bei Formularseiten und BasePortal ganz krass, wenn man bspw. Parameter in hidden Fields mitgibt - da nimmt der IE oft eiskalt die Seite aus dem Cache, wenn sich die URL nicht geändert hat und dann kommen vollkommen falsche Werte am Server an....)

      Waren nur mal so ein paar Tipps, die mir eingefallen sind, vielleicht hilft ja irgendwas...
      Ruben

     Antworten

    Beitrag von Oliver ;-) (500 Beiträge) am Dienstag, 19.April.2005, 18:13.
    Re: Ich versteh's immer noch nicht...

      Hallo Ruben,

      danke für deine Tipps. Leider haben die mich noch nicht weiter gebracht.

      Die Variable $check wird per Url übergeben. Ich habe sie mal $pruef umbenannt, was aber auch nichts ändert. Es gibt auch keine Kommentare mehr nach "else" und die öffnenden Klammern sind auch direkt dahinter.

      Die "Prüfvariable" ist eine Zufallsziffernfolge, die auf der Ursprungsseite einfach an die Url eines Links gehangen wird. Dieser Link öffnet dann ein neues Fenster, in der das PDF-Dokument geladen werden soll, wenn es das erste mal aufgerufen wird. Ein weiterer Aufruf mit dieser Prüfvariable soll nicht erfolgen. Daher der Test, ob sie in der Prüfdatenbank bereits gespeichert ist und der put-Befehl, wenn dies noch nicht der Fall ist.

      Vielleicht ruft der IE die Seite automatisch zweimal auf?

      Grüße
      Oliver ;-)

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Dienstag, 19.April.2005, 19:15.
    Re: Ich versteh's immer noch nicht...

      Hallo Oliver,

      da das template auf dem Server unabhängig vom Browser abgearbeitet wird und die Unterschiede nicht (nur) in der Darstellung, sondern in der Verarbeitung liegen, kann es nicht am template liegen.
      Offensichtlich wird von unterschiedlichen Browsern eine unterschiedliche Variable übergeben.
      Schreib doch in die erste perl-Zeile des templates
      out "$pruef<br>";
      

      Und dann rufst Du mit den verschiedenen Browsern auf. Da muß der Unterschied sein.
      Gruß
      Friesecke

     Antworten

    Beitrag von richard (1187 Beiträge) am Dienstag, 19.April.2005, 19:26. WWW: posaunenchor-rhoden.de
    Re: Ich versteh's immer noch nicht...

      Das eigentlich seltsame scheint mir zu sein, daß (wenn ich es richtig verstanden habe) durch den IE gleichzeitig der if als auch der else Zweig ausgegeben wird. Da dürfte eigentlich auf gar keinen Fall so sein.

      Hast Du mal einen Link zum ausprobieren?

     Antworten

    Beitrag von Oliver ;-) (82 Beiträge) am Dienstag, 19.April.2005, 21:22.
    Re: Ich versteh's immer noch nicht...

     Antworten

    Beitrag von Jürgen (614 Beiträge) am Dienstag, 19.April.2005, 21:35. WWW: TIEREvermittlung.de
    Re: Ich versteh's immer noch nicht...

      bei mir wir sowohl beim IE wir auch beim Firefox die else-Anweisung angezeigt ;-)
      Hast du die aktuelle Firefox-Version? ... v1.0.2

     Antworten

    Beitrag von Oliver ;-) (500 Beiträge) am Dienstag, 19.April.2005, 22:04.
    Re: Ich versteh's immer noch nicht...

      dann musst du den Link im Firefox noch ein zweites Mal aufrufen. Bei der if-Anweisung wird die Prüfvariable gesetzt und bei else wieder gelöscht.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 19.April.2005, 20:10.
    Re: Ich versteh's immer noch nicht...

      ich kann mich entsinnen, im zusammenhang mit pdf hatte ich auch mal so ein phänomen. die seite wurde 2 mal geladen, einmal als normal, dann merkte der browser, das pdf gefordert wurde und lud es als pdf (aber nur beim plugin) nach.

      Bei mir war es aber direkt in php ohne baseportal

     Antworten

    Beitrag von Oliver ;-) (82 Beiträge) am Dienstag, 19.April.2005, 20:56.
    Re: Ich versteh's immer noch nicht...

      Das wird wohl das Problem sein.

      Es wird zuerst die if-Anweisung ausgeführt und dabei der Datensatz in die Prüfdatenbank eingetragen.
      Dann läd er die Seite ein zweites Mal, findet den Datensatz in der Prüfdatenbank und führt darauf hin die else-Anweisung aus.

      Nur, was kann man dagegen machen? Ich kann meinen Usern ja nicht sagen, sie sollen mit dem Firefox noch mal vorbeikommen... ;-)
      Welche Lösung hattest du denn gefunden?

     Antworten

    Beitrag von Friesecke (245 Beiträge) am Mittwoch, 20.April.2005, 08:45.
    Re: Ich versteh's immer noch nicht...

      Hallo Oliver,

      bei mir funktioniert es mit dem IE einwandfrei.

      Deine Vermutung mit 2x Laden wird wohl richtig sein.

      Beste Lösung : das doppelt-Laden abstellen

      Vielleicht .pdf ins template verlagern. Vielleicht nicht einfach .pdf anhängen, sondern Variable bilden $varendung = ".pdf"; und diese anhängen.

      Muß nicht helfen, in bestimmten Konstellationen kann es aber helfen

      schlechtere Lösung : Zeitfenster (2 Sek. oder so), das Aufruf sperrt

      Gruß
      Friesecke

     Antworten

    Beitrag von Oliver ;-) (82 Beiträge) am Mittwoch, 20.April.2005, 10:21.
    Re: Ich versteh's immer noch nicht...

      Hallo Friesecke,

      es würde korrekt ablaufen, wenn du es zwei Mal aufrufst und dabei einmal die if-Anweisung siehst.

      Ich habe mir aber jetzt dadurch geholfen, dass ich auf die Prüfung auf das Vorhandensein der Prüfvariablen verzichte. Ich teste nur noch, ob der Aufruf durch einen eingeloggten User erfolgt. Dann kann der IE die Seite so oft aufrufen, wie er will... ;-)

      Ärgerlich ist nur, dass ich mich wegen eines so blöden IE-Verhaltens drei Tage lang damit auseinander setzen muss. Man sucht ja auch den Fehler zunächst bei sich...

      Grüße
      Oliver ;-)

     Antworten


     
 Liste der Einträge von 24675 bis 24750:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.08s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!