perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 23
Click for quality!




10.02.2012 / 19:50

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl/CGI: Scripts des Perl-Archiv zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragPerl / HTML Übergabe von Button Befehlen klappt nicht!
Seitenanfang
Bin leider noch kein Perl Crack und kämpfe nun seit 2 Tage an diesem Script:

HTML:


<HTML>
<HEAD>
<TITLE>Datensatzsuche</TITLE>
</HEAD>

<BODY>

<H1><CENTRE>Datensatzsuche - Ergebnis der Landtagswahlen in Hessen von 1946 bis 2008</H1>

<form action="../cgi-bin/suche_test.pl" method="post">

<HR>

Geben Sie bitte das Jahr ein:

<TABLE>
<TR>
<TD>Jahr:</TD>
<TD><INPUT TYPE="text" name= "jahr"></TD>
</TR>
</TABLE>

<HR>

<INPUT TYPE="submit" name"daten" value="Alle ausgeben">
<INPUT TYPE="submit" name="suchanfrage" value="Suche starten">
<INPUT TYPE="reset" value="Zurücksetzen">

<HR>

</form>

</BODY>
</HTML>

Übergabe von den zwei Buttons "Alles ausgeben" und "Suche starten". Mit "Alles ausgeben" soll aus einer CSV alle Daten als Tabel ausgegeben werden; mit "Suche starten" sollen nur Daten aus der CSV ausgegeben werden die im INPUT TYPE eingegeben worden sind. Dazu kommt noch das wenn eine ungültige Eingabe gemacht wird es ausgegeben wird, dass die Suche erfolglos war.

Hier mein PERL-Script:

#!C:/Perl/bin/perl -w

use strict;

use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use GD::Graph::pie;
use DBI;

my $DBH;
my $STH;
my $CGI;
#my $antwort;

$CGI = new CGI();

### Suche ###

if ($CGI->param("suchanfrage")){
suche($CGI, $DBH, $STH);
}

elsif ( $CGI->param("daten")){
alle($CGI, $DBH, $STH);
}

### Start Subroutine Suche ###

sub suche{

my $jahr = param("jahr");

$DBH = DBI->connect("DBI:CSV:wahlen.csv=c:/www/cgi-bin")
or die "Konnte keine Verbindung zur Datenbank herstellen:$!";

$STH = $DBH->prepare("SELECT * FROM wahlen.csv WHERE jahr = '$jahr'")
or die "Konnte SQL-Statement nicht bereitstellen:$!";

$STH->execute()
or die "Ausfuehren nicht moeglich:$!";

my @werte;
my @res;

### Treffer ###

if ($STH->rows != 0){

print <<HERE_TEXT1;
Content-type:text/html

<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>

<BODY>

<CENTER>

<H1>Suchergebnis:</H1>

<HR>

<TABLE BORDER>
<TR>
<TD WIDTH="50"><B>Jahr</B></TD>
<TD WIDTH="50"><B>CDU</B></TD>
<TD WIDTH="50"><B>SPD</B></TD>
<TD WIDTH="50"><B>FDP</B></TD>
<TD WIDTH="50"><B>Gruene</B></TD>
<TD WIDTH="50"><B>Die Linke</B></TD>
</TR>

HERE_TEXT1

my @data;

while (@data = $STH->fetchrow_array()){

my $jahr = $data[0];
my $cdu = "$data[1]";
my $spd = "$data[2]";
my $fdp = "$data[3]";
my $gruene = "$data[4]";
my $linke = "$data[5]";


print qq§<TR>\n<TD><B>$jahr</B></TD>\n<TD>$cdu</
TD>\n<TD>$spd</TD>\n<TD>$fdp</TD>\n<TD>$gruene</TD>\n<TD>$linke</TD>\n</TR>\n§;

print qq§<TABLE>\n<P>\n<A HREF ="../cgi-bin/wahlen3.pl">Daten als Diagramm</A></P>\n
<P><A HREF ="../cgp02_2.html">Neue Suche!</A></P>\n<HR>\n
</CENTER>\n</BODY>\n</HTML>§;
}}

### Keine Treffer ###

else {

print <<HERE_TEXT2;
Content-type:text/html

<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>

<BODY>

<P>Leider brachte die Suche nach '$jahr' keine Ergebnisse!</P>

<HR>

<P><A HREF ="../cgp02_2.html">Neue Suche!</A></P>

</BODY>
</HTML>

HERE_TEXT2
}
#$STH->finish();
#$DBH->disconnect;}

### Ende der Subroutine Suche ###

### Start der Subroutine Alle ###

sub alle{

$DBH = DBI->connect("DBI:CSV:wahlen.csv=c:/www/cgi-bin/")
or die "Konnte keine Verbindung zur Datenbank herstellen!$!\n";

$STH = $DBH->prepare("SELECT * FROM wahlen.csv")
or die "Konnte SQL-Statement nicht bereitstellen!$!\n";

$STH->execute()
or die "Ausfuehren nicht moeglich!$!\n";

my @werte;
my @res;

print <<HERE_TEXT3;
Content-type:text/html

<HTML>
<HEAD>
<TITLE>Antwort</TITLE>
</HEAD>

<BODY>

<CENTER>

<H1>Suchergebnis:</H1>

<HR>

<TABLE BORDER>
<TR>
<TD WIDTH="50"><B>Jahr</B></TD>
<TD WIDTH="50"><B>CDU</B></TD>
<TD WIDTH="50"><B>SPD</B></TD>
<TD WIDTH="50"><B>FDP</B></TD>
<TD WIDTH="50"><B>Gruene</B></TD>
<TD WIDTH="50"><B>Die Linke</B></TD>
</TR>

HERE_TEXT3

my @data;

while (@data = $STH->fetchrow_array()){

my $jahr = $data[0];
my $cdu = "$data[1]";
my $spd = "$data[2]";
my $fdp = "$data[3]";
my $gruene = "$data[4]";
my $linke = "$data[5]";


print qq§<TR>\n<TD><B>$jahr</B></TD>\n<TD>$cdu</
TD>\n<TD>$spd</TD>\n<TD>$fdp</TD>\n<TD>$gruene</TD>\n<TD>$linke</TD>\n</TR>\n§;

print qq§<TABLE>\n<P><A HREF ="../cgp02_2.html">Neue Suche!</A></P>\n<HR>\n
</CENTER>\n</BODY>\n</HTML>§;}

$STH->finish();
$DBH->disconnect;}}

Vielleicht kann mir jemand einen Tip geben?

Datum: 11.01.2009-18:17

Beitragre: Perl / HTML Übergabe von Button Befehlen klappt nicht!
Seitenanfang
Du hast nicht gesagt, wo das eigentliche Problem liegt. Was willst Du? Was macht das Skript im Moment? Bekommst Du eine Fehlermeldung?

btw: Wenn Du mit Datenbanken arbeitest, solltest Du die ?-Notation von DBI verwenden. Siehe DBI-Doku auf CPAN und/oder http://foo-magazin.de/download.cgi?issue=10

Datum: 12.01.2009-11:59

Beitragre: Perl / HTML Übergabe von Button Befehlen klappt nicht!
Seitenanfang
Hallo Renée,

ich bekomme beim Aufrufen über den HTML Button "Alle ausgeben", von dem die gesamten Daten der Tabelle (wahlen.CSV) ausgegeben werden soll, die Fehlermeldung

"Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, info@schiedernet.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

--------------------------------------------------------------------------------

Apache/1.3.41 Server at localhost Port 80

Die anderen 2 Buttons funktionieren perfekt.
Als einzelnes Skript habe ich die komplette Daten Ausgabe schon hin bekommen, das Ganze nun in einem Script zusammen zufassen ist mir noch nicht glückt.

Gruss Andrea

Datum: 13.01.2009-13:30

Beitragre: Perl / HTML Übergabe von Button Befehlen klappt nicht!
Seitenanfang
Was sagt denn die error.log? Ganz lesenswert zum Thema 500er: http://wiki.perl-community.de/bin/view/Wissensbasis/FaqCGIError500

Datum: 13.01.2009-15:48

Beitragre: Perl / HTML Übergabe von Button Befehlen klappt nicht!
Seitenanfang
Im Error.log steht leider nichts drin. Hab es nun schon mehrfach gesucht, finde nix.

Danke.

Gruss Andrea

Datum: 15.01.2009-10:13

-






-
-