HTML-Embperl

 view release on metacpan or  search on metacpan

EmbperlD.pod  view on Meta::CPAN


Beispiel:

    <FORM METHOD="POST">
      <P>Select Tag</P>

      Wenn Sie dieses Dokument mit list.htm?SEL1=x aufrufen,
      können Sie die Option bestimmen, die angewählt erscheint.

      <P><SELECT NAME="SEL1">
         <OPTION VALUE="[+ $v[$row] +]">
            [+ $k[$row] +]
         </OPTION>
      </SELECT></P>
    </FORM>


=item B<INPUT>

Das C<INPUT> Tag arbeitet mit den Hashs C<%idat> und C<%fdat> zusammen.
Wenn das C<INPUT> Tag kein C<VALUE> Attribute hat, jedoch in C<%fdat> ein
Element, das dem C<NAME> Attribute entspricht, existiert, erzeugt I<Embperl>
ein C<VALUE> Attribute mit dem Wert aus C<%fdat>.
Alle Werte der C<INPUT> Tags werden in dem Hash C<%idat>, mit dem Namen 
des C<INPUT> Tags als Schlüssel und ihrem Wert, gespeichert.
Für Radiobuttons und Checkboxen (C<TYPE=RADIO> und C<TYPE=CHECKBOX>), wird
das C<CHECKED> Attribute eingefügt, wenn der Wert des C<VALUE> Attributes
mit dem Wert in C<%fdat> übereinstimmt, andernfalls wird C<CHECKED>
entfernt.

Das bedeutet, wenn Sie die Formulardaten an das Dokument selbst schicken
(die URL des C<ACTION> Attributes entspricht dem aktuellen  Dokument
oder fehlt ganz), zeigen alle C<INPUT> Tags automatisch die selben 
Werte an, die der Benutzer vor dem Absenden eingegeben hat.


=item B<TEXTAREA>, B</TEXTAREA>

Das C<TEXTAREA> Tag wird genau wie ein normales C<INPUT> Tag behandelt (siehe oben)


=item B<META HTTP-EQUIV= ...>

C<META HTTP-EQUIV= ... > überschreibt den entsprechenden HTTP Header. Dies
verhindert, das Netscape nachfragt, ob das Dokument neu geladen werden soll,
wenn der Content-Type zwischen C<META HTTP-EQUIV> und HTTP Header unterschiedlich
ist.

Dies kann ebenfalls benutzt werden, um beliebige HTTP Header zu setzen.
Unter I<mod_perl> können HTTP Header auch mit der Funktion C<header_out>
gesetzt werden.

Beispiel:

    <META HTTP-EQUIV="Language" CONTENT="DE">

Das entspricht der Apachefunktion:

    [- $req_rec ->  header_out("Language" => "DE"); -]

=item B<A>, B<EMBED>, B<IMG>, B<IFRAME>, B<FRAME>, B<LAYER>

Die Ausgaben von Perlblöcken innerhalb des C<HREF> Attributes des C<A> Tags und des
C<SRC> Attributes der anderen Tags werden URL Kodiert, statt HTML Kodiert.
(siehe auch L<$escmode>). Des weiteren expandiert I<Embperl> Array- und Hashreferenzen
innerhalb solcher URLs zur URL Parametersyntax. Beispiel:

  [-
  $A = {A => 1, B => 2} ;  # Hashreference
  @A = (X, 9, Y, 8, Z, 7)
  -]

  <A HREF="http://localhost/tests?[+ $A  +]">
  <A HREF="http://localhost/tests?[+ \@A +]">

wird von I<Embperl> zu Folgendem expandiert:

  <A HREF="http://localhost/tests?A=1&B=2">
  <A HREF="http://localhost/tests?X=9&Y=8&Z=7">


=back


=head1 Gültigkeitsbereiche von Variablen und Cleanup


Der Gültigkeitsbereich von Variablen, die mit C<my> oder C<local>
deklariert wurden, endet am Ende des umschließenden C<[+/- ... -/+]>
Blocks. Der C<[+/- ... -/+]> Block verhält sich in dieser hinsicht
wie Perls C<{ ... }>.

Globale Variablen (alles was nicht mittels C<my> oder C<local>
deklariert wurde) werden am Ende jedes Request automatisch wieder
gelöscht (insofern verhalten sie sich wie Variablen, deren Gültigkeitsbereich
das gesamte Dokument ist). Dies verhindert Probleme mit Variablen,
die ihren Wert aus dem vorangegangenen Request behalten haben.
Das Cleanup wird nur für Variablen innerhalb des Packages, der gerade
ausgeführten Embperlseite, durchgeführt, d.h. alle Variablen die ohne expliziten
Packagenamen deklariert wurden. Alle Variablen in anderen Packages
(z.B. andere Perl Module) bleiben gültig. 

Der Packagename der aktuellen Seite wird normalerweise von I<Embperl>
eindeutig vergeben, kann aber mittels L<EMBPERL_PACKAGE> explizit
angegeben werden.

Da CGI Skripte sowieso immer als eigenständiger Prozeß ausgeführt werden,
ist ein Cleanup bei CGI Skripten nicht nötig.

Sollen Variablen nicht am Ende des Request aufgeräumt werden, müssen sie
entweder im Hash C<%CLEANUP> (mit Wert 0) eingetragen sein oder innerhalb eines anderen
Packages (z.B. C<$Persistent::handle>) deklariert werden.

Wenn Sie das C<strict> Pragma (C<use strict>) nutzen wollen, können sie
Ihre Variablen mittels des C<var> Meta-Commands deklarieren.

B<HINWEIS:> Da I<Apache::DBI>, wie jedes andere Perlmodul, seinen eigenen
Namensraum hat, funktioniert es ohne Problem zusammen mit I<Embperl>.

Das automatische Cleanup kann mittels L<EMBPERL_OPTIONS> bzw. dem
L<cleanup> Parameter der L<Execute> Funktion abgeschaltet werden.

EmbperlD.pod  view on Meta::CPAN

Die Reihe, die den undefinierten Ausdruck enthält, wird B<nicht> mehr angezeigt.

=item $tabmode = 2

Ende, wenn B<ein> Block der C<$row> enthält, C<undef> als Ergebnis hat.
Die Reihe, die den undefinierten Ausdruck enthält, B<wird> angezeigt.

=item $tabmode = 4

Ende, wenn C<$maxrow> Reihen angezeigt wurden.

=back

B<Spaltenende:>

=over 4

=item $tabmode = 16

Ende, wenn B<ein> Block der C<$col> enthält, C<undef> als Ergebnis hat.
Die Spalte, die den undefinierten Ausdruck enthält, wird B<nicht> mehr angezeigt.

=item $tabmode = 32

Ende, wenn B<ein> Block der C<$col> enthält, C<undef> als Ergebnis hat.
Die Spalte, die den undefinierten Ausdruck enthält, B<wird> angezeigt.

=item $tabmode = 64

Ende, wenn C<$maxcol> Spalten angezeigt wurden.

=back

Der Defaultwert von B<17> ist korrekt zum Anzeigen von Arrays. Es dürfte selten nötig
sein diesen Wert zu ändern. Die Werte für Tabellen- und Spaltenende können addiert werden.

=head2 $escmode

Schaltet die HTML und URL Kodierung der Ausgabe ein und aus.
Default ist ein (C<$escmode> = 3).

B<Hinweis:> Normalerweise kann die Kodierung durch Voranstellen eines Backslashes ('\')
vor das entsprechende Zeichen verhindert werden. Das ist recht nützlich, ist aber
in Situation, wo eine Benutzereingabe nochmal angezeigt wird, sehr gefährlich, da dies
dem Benuter ermöglich beliebiges HTML einzugeben. Um dies zu verhindern muß zu den
unten aufgeführten Werten jeweils eine 4 addiert werden. Dies führt dazu, dass I<Embperl>
den Backslash bei der Ausgabe nicht gesondert behandelt. (ab 1.3b4)

B<Hinweis 2:>Um binäre Daten auszugeben muß escmode auf Null gesetzt werden (ab 1.3b6)

=over 4

=item B<$escmode = 8 (oder 15)> (2.0b4 und höher)

Das Resultat von Perlausdrücken wird immer XML Kodiert 
(z.B. '>' wird zu '&gt;' und ' zu &apos;).

=item $escmode = 3 (oder 7)

Das Resultat von Perlausdrücken wird HTML Kodiert (z.B. '>' wird zu '&gt;')
und URL Kodiert ('&' wird zu '%26') innerhalb von C<A>, C<EMBED>, C<IMG>, C<IFRAME>, C<FRAME> und C<LAYER> Tags.

=item $escmode = 2 (oder 6)

Das Resultat von Perlausdrücken wird immer URL Kodiert ('&' wird zu '%26').

=item $escmode = 1 (oder 5)

Das Resultat von Perlausdrücken wird immer HTML Kodiert (z.B. '>' wird zu '&gt;').

=item $escmode = 0

Keine HTML oder URL Kodierung findet statt.

=back

=head2 $req_rec

Diese Variable ist nur vorhanden, wenn I<Embperl> unter I<mod_perl>
läuft und enthält eine Referenz auf den Apache Request Record.
Damit ist es möglich, alle Apache internen Funktionen zu nutzen.
(siehe B<perldoc Apache> für weitere Informationen)

=head2 LOG

Dies ist die Dateihandle der I<Embperl> Logdatei. Durch schreiben auf
diese Dateihandle ist es möglich, Zeilen in die I<Embperl> Logdatei
zu schreiben.

Beispiel: print LOG "[$$]ABCD: your text\n" ;

Wenn Sie ein Modul schreiben, das ebenfalls die Embperl Logdatei nutzen 
soll, können Sie folgendermaßen eine Dateihandle dafür bekommen:

    tie *LOG, 'HTML::Embperl::Log';


=head2 OUT

Diese Dateihandle ist an den I<Embperl> Ausgabestrom gebunden. Ausgaben an diese Handle
haben den selben Effekt wie ein C<[+ ... +]> Block.
(Siehe auch L<optRedirectStdout|"EMBPERL_OPTIONS">)

=head2 @param

Wird durch den C<param> Parameter der C<Execute> Funktion gesetzt. Kann genutzt werden,
um Parameter an ein I<Embperl> Dokument zuübergeben oder zurückzugegben.
(siehe L<Execute|"By calling HTML::Embperl::Execut">)

=head2 %http_headers_out (ab 1.2b10)

Dieser Hash ermöglicht es HTTP Header anzugeben, die I<Embperl> vor dem Dokument senden soll.
Ist ein "Location" Header angegeben, setzt I<Embperl> den Status automatisch auf 301. Beispiel:

  [- $http_headers_out{'Location'} = "http://www.ecos.de/embperl/" -]


Ab 1.3.2 können alle HTTP Header (außer "Location" und "Content-Type") auch 
mehrere Werte erhalten. Um z.B. mehrere Cookie zu setzen, kann man folgendes schreiben:




( run in 2.061 seconds using v1.01-cache-2.11-cpan-71847e10f99 )