Zum Inhalt springen

Perl - Aufruf einer HTML Seite in gleicher Seite


Empfohlene Beiträge

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       };


} 

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...