Veröffentlicht 7. Mai 200718 j Hi @all, ich hab hier ein Kleines CGI Skript, der zwei Funktion und HTML Seiten auf generiert, die dritte Funktion soll eine HTML Seite aufrufen. Kann mir jemand sagen, wie ich das Bewerkstelligen kann? Ich dachte an einer Weiterleitung, aber dass hat nicht geklappt, weil er eine neue Seite aufgemacht hat. #!/usr/bin/perl # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ USE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Perl Funktionen use CGI; use Switch; # Eigene Funktionen use checkSAMBA; use checkDISK; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Variablen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Values der Radiobuttons $value_dienste="dienste"; $value_disk="disk"; $value_samba="samba"; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HTML ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Neues Objekt $query erzeugen $query = new CGI; print $query->header(); # HTML Header ausgeben print" <html> <!-- Kopfzeile --> <head> <title>Web-Interface für Servercheck</title> <link rel=shortcut icon href=favicon.ico /> </head> <!-- Body --> <body> <!-- Überschrift --> <center><h2>Web-Interface für Servercheck</h2></center> <!-- Formular --> <form method=post action=servercheck.cgi> <p>Bitte Wählen Sie eine Abfrage aus:</p> <p> <input type=radio name=abfrage value=dienste> Dienste<br> <input type=radio name=abfrage value=disk> Disk Usage<br> <input type=radio name=abfrage value=samba> Samba<br> <input type=radio name=abfrage value=all> ALLES TESTEN<br> </p> <br> <br> <!-- Submit Button --> <input type=submit value=submit> </form> </body> </html>"; # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PERL Auswertung ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # Ausgabe einer Trennlienie print "<hr>"; # Welchr Button wurder gewählt? # Mit der Methode param wird der value der einzelenen Buttons ausgelesen. # Die Variable $value wird mit diesen Wert gesetzt. $value = $query->param('abfrage'); # TEST WECHER BUTTON WURDE AUSGEWÄHLT #print "Button: <b>$value</b>"; #print "<br>"; # TEST WECHER BUTTON WURDE AUSGEWÄHLT # An Hand der values, werden hier die Funktionenen für die einzelnen Aufgaben aufgerufen switch ($value){ case "$value_dienste" { print "<meta http-equiv=\"refresh\" content=\"0; URL=http:\/\/de.selfhtml.org\/\">" }; case "$value_disk" { &checkDISK::checkDISK }; case "$value_samba" { &checkSAMBA::checkSAMBA }; }
7. Mai 200718 j Ich dachte an einer Weiterleitung, aber dass hat nicht geklappt, weil er eine neue Seite aufgemacht hat. Du kannst nicht erst deine Seite ausgeben und dann am Ende denken, er leitet auf eine andere um. Deswegen steht der HTML-Meta zum Umleiten immer im Head, nicht im Body. Prüf vor irgendeiner Ausgabe ob du was ausgeben oder woanders hin umleiten willst. Und dann leite am besten per HTTP um, nicht erst per HTML. z.B. HTTP Header ReDirect Mehr kann ich dir dazu nicht sagen, hab mit Perl noch nie was gemacht.
7. Mai 200718 j Hi, danke für dein Post. Ich bin jetzt hier nicht der HTML Crack, dass ich sagen könnte, warum das nicht funz. Möchte eigentlich auch nur eine Stinknormale HTML Seite generieren. Leider funkt das nicht mit dem beispiel.
7. Mai 200718 j Ich hab eine andere Lösung, ich öffne die Datei und lese die einfach aus:[...] switch ($value){ [B][COLOR="Red"] case "$value_dienste" { open HTML, "/srv/www/htdocs/dienste.html"; while ($line=<HTML>){ print $line; } }[/COLOR][/B] case "$value_disk" { &checkDISK::checkDISK }; case "$value_samba" { &checkSAMBA::checkSAMBA }; } [...] Mich würde aber Trotzdem interessieren, wie man eine HTML seite in einer HTML seite aufrufen kann.
7. Mai 200718 j Ich bin jetzt hier nicht der HTML Crack, dass ich sagen könnte, warum das nicht funz. Das hat mit HTML jetzt auch nichts zu tun In dem Beispiel hat mir auch der Statuscode gefehlt, aber ich kenn Perl wie gesagt nicht. Ich versuch es einfach mal #!/usr/local/bin/perl print "HTTP/1.x 307 Temporary Redirect\n"; print "Location:http://feedthebulldog.com\n\n"; __END__ Das gibt zumindest eine korrekte HTTP Antwort. Also der Statuscode 307, der besagt dass es eine temporäre Umleitung ist, und dann wohin. Also ich bin mir nicht sicher ob das so in Perl geht, das sollte zumindest aber beim Browser so ankommen
7. Mai 200718 j Funzt so nicht ... Ich hab jetzt auch mal etwas gegoogelt, aber nichts brauchbares gefunden.
7. Mai 200718 j du verwendest doch schon das geniale, magische, allumfassende CGI-modul an, welches doch auch die methode redirect anbietet. dies ist natürlich nur dann einsetzbar, wenn zuvor noch kein content an den client hinausgeschrieben wurde. Funzt so nicht ... das heisst jetzt im kontext von JesterDays beispiel was? s'Amstel
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.