Schrift
[thread]11389[/thread]

"Bitte warten"-Zwischenseite (Seite 2)

Leser: 1


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
pq
 2008-03-07 19:12
#106815 #106815
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
mir ist nochwas aufgefallen: du solltest unbeding den parameter $id überprüfen! sonst kann
da jeder übergeben, was er will.
am besten alle eine scripte im taint-modus laufen lassen, wen du in solchen dingen noch nicht so firm bist. siehe Wiki:CgiSicherheit
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
amun-ra198
 2008-03-10 18:37
#106895 #106895
User since
2007-10-11
13 Artikel
BenutzerIn
[default_avatar]
bin jetzt nah dran die sache irgendwie anders umzusetzen. Anscheinend hat mein Skript irgendwo ein Problem, ich kann aber nicht ausmachen was das Problem ist. Der durch den Fork entstandenen Child Prozess erstellt die Datei nicht und daher wartet das Skript "ewig". Witzigerweise wird die Datei erstellt, wenn ich in den vorangegangenen Block den http header einfüge. Dann funktioniert aber der redirect natürlich nicht mehr. An der open Anweisung liegt es jedenfalls nicht, die hatte ich testweise schonmal durch eine db anweisung ersetzt, die wird genauso wenig ausgeführt. Vielleicht liegts an der Kombination fork, iis6.0 und IE. Der fork für windows ist ja nur emuliert.
Aufbauend auf deinem Skript pq hatte ich auch noch einen anderen Ansatz ausprobiert, der eine ähnliche Funktion hat. Allerdings funktioniert hier der die Ausgabe des Ergebnisses nicht, das Skript läuft einmal durch, gibt aber dann das Ergebnis nicht aus. Vielleicht kannst Du Dir das nochmal ansehen... ?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/perl -w

$| = 1;

use strict;
use CGI;

my $cgi = new CGI;

my $variable1 = $cgi->param('type') || 'nothing';
my $variable2 = $cgi->param('show') || 'nothing';
my $url = 'http://server/cgi-bin/skript2.pl';

print "Content-type: text/html \n\n";

if ($variable1 eq 'process')
{
        print '                                                                                                                                                                                                                                                     ';
        print 'please wait';

        # Symbolisiert den Prozess
        sleep 5;
        
        my $meta = $cgi->start_html(
                    my $meta_refresh =
                    -head => $cgi->meta(
                        {
                            -http_equiv => 'refresh',
                            -content    => "2; $url?show=result",
                        }
                    ));
        print $meta;
}
elsif ($variable2 eq 'result')
{
        print 'result';
}


thx
pq
 2008-03-11 00:35
#106922 #106922
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
oje, windows, IIS und IE6. das sind ja gleich drei schlechte sachen auf einmal =)
sorry, ich hab hier nur linux und kann das problem so nicht nachvollziehen. nur eins:
ein print gefolgt von einem sleep und nochmaligen print wird je nach webserver-einstellung
gepuffert. das mindeste wäre ein newline vor dem sleep einzubauen, um zu sehen, ob
das die pufferung abschaltet.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Froschpopo
 2008-03-11 01:02
#106924 #106924
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Ich würde das ganz anders machen!
ich würde die ganzen Parameter über Ajax absenden und die Seite erst wechseln, wenn du ein Callback bekommst.
Also quasi ein onSubmit-Event überträgt führt den Requst asynchron hinterm Rücken durch.
Bei diesem Event könntest du dann auch eine entsprechende "bitte warten"-meldung erzeugen.
Mit jQuery würde ich sowas so machen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
$(document).ready(function () {
$("form").submit(function () {
$("#message").html('Bitte warten...');
$.post('/cgi-bin/ajax.cgi', { name: 'testname' }, function (html) {
$("#message").remove();
window.location = '/zeilseite.html';
/* oder html ausgeben */
});
});
});
Gast Gast
 2008-03-11 07:17
#106927 #106927
" print ' " Da fehlt was.
Erst Header dann Body schreiben.
Keine Daten vor dem HTML schreiben, damit kommt der IE nicht immer klar.
Vollständige HTML Seite senden.
amun-ra198
 2008-03-19 10:56
#107225 #107225
User since
2007-10-11
13 Artikel
BenutzerIn
[default_avatar]
Gast+2008-03-11 06:17:20--
" print ' " Da fehlt was.
Erst Header dann Body schreiben.
Keine Daten vor dem HTML schreiben, damit kommt der IE nicht immer klar.
Vollständige HTML Seite senden.


@Gast: Da fehlt nichts. Wenn Du ganz nach rechts scrollst siehst du das dort noch vorhandene ';
Der Internet Explorer benötigt aus irgendeinem Grund 256 ausgegebene Zeichen bevor er mit der direkten Zeichenausgabe (die durch $| = 1; eigentlich sofort eingeleitet werden sollte) beginnt. Der Mozilla benötigt diese vorherige Zeichenausgabe nicht. Das Problem mit dem IE läßt sich auch reproduzieren, bei mir zumindest. Dazu gabs auch mal ein Artikel von Microsoft, der Link funktioniert aber leider mittlerweile nicht mehr (hätte auch gerne gewußt woran das liegt).


Naja, gehörte nicht zum Problem, aber der Vollständigkeit halber ...
renee
 2008-03-19 11:05
#107228 #107228
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Nur mal so als Tipp (unabhängig von der Problematik):

Anstatt 256 Leerzeichen in den Editor zu hämmern kannst Du einfach print ' ' x 256; schreiben. Das ist übersichtlicher und wartbarer...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2008-02-29 23:01.