Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]692[/thread]

Ausge aus datenbank in frame ausgeben



<< >> 5 Einträge, 1 Seite
dechs
 2006-03-13 20:43
#7116 #7116
User since
2006-03-13
12 Artikel
BenutzerIn
[default_avatar]
Hallo,
hab ein kleines Problem

ich hab 2 code seiten
seite1
Code: (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
!c:\Perl\bin\perl.exe -w
#
# Name: cgi-bin/projekt/seite1.pl
#
# Funktion: Seite 1
#
# Argumente:
# Ausgabe:
#
use strict;
use CGI qw(:standard);
my @Vereinsliste= qw /Feuerwehr Schuetzenverein neuer_Verein/;

print header,
start_html('Vereinsdatenbank'),
h1('Guten Tag'),
start_form (-action=>'/cgi-bin/Projekt/seite2.pl'),
<FORM ACTION=TARGET='oben'>
" Mit welchen Verein möchten Sie arbeiten ? ",
popup_menu(-name => 'verein_name',-value => [@Vereinsliste]),p,

"Geben Sie ihren Name ein ", textfield('user','root'),p,#root wird später durch einen Benutzer ersetzt

"Geben Sie ihren Passwort ein ", password_field('passwort'),p,
#durch password_field wird die Eingabe auf dem Bildschirm nicht sichtbar

submit(-value=>'Enter'),p,

end_form,
hr,
end_html;


und seite2
Code: (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!C:/Perl/bin/perl.exe

#Name: cgi-bin/projekt/seite2.pl
#
# Funktion: Seite 2
#
# Argumente:
# Ausgabe:

use DBI;
use CGI qw (:standard);
use CGI::Carp qw(fatalsToBrowser);

# Datenbank wird per Param von Seite1 script übernommen
$datenbank = param('verein_name');


# Datenbankhost ist in unserem Beispiel immer "localhost"
$datenbankhost = "localhost";

# Datenbankusername wird per Param von Seite1 script übernommen
$datenbankuser = param('user');

# Datenbankpasswort wird per Param von Seite1 script übernommen
$datenbankpw = param('passwort');




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


<head>

<title>Datenbank von $datenbank</title>

</head>

</frameset>

<body>





<table style="width: 100%; text-align: left;" border="1" cellpadding="2"
cellspacing="2">

<tbody>

ENDE



#kommentar
print "Geben Sie den Namen ein ", textfield('suchname','Goerl'),p,;
        print start_form (action=>'/cgi-bin/Projekt/seite3.pl');
print "<DIV ALIGN=CENTER>",submit(-value=>'Suche'),p,"</DIV>";
print end_form;


$dbh = DBI->connect("DBI:mysql:$datenbank:$datenbankhost","$datenbankuser","$Datenbankpasswort") or print ("<tr><td><b><h2>Fehler bei der Datenbankverbindung aufgetreten.</h2></b></td></tr>");

my $sth = $dbh->prepare( "show columns from mitglieder");
$sth->execute();



print "<tr>";
while(@ergebnis=$sth->fetchrow_array)
{

       print "<td>\n<b>";
       print $ergebnis[0];
       print "</b><br>\n</td>";
}
print "</tr>\n";

$sql = qq{select * from mitglieder};
$sth = $dbh->prepare( $sql );
$sth->execute();






while(@ergebnis=$sth->fetchrow_array)
{
       print "\t<tr>\n";
       foreach (@ergebnis)
       {
        print "\t\t<td>";
               print;
               print "<br></td>\n";
       }
       print "\t</tr>\n";
}





print"</tbody></table><br></body></html>";

$sth->finish();
$dbh->disconnect();

print start_form (-action=>'/cgi-bin/Projekt/seite1.pl');
print "<DIV ALIGN=CENTER>",submit(-value=>'Zurück zur Vereinsauswahl'),b,"</DIV>";
print end_form;



ich möchte eigentlich nur, dass die ausgabe in einem eigenen Frame auf einer Html seite ausgegeben wird und in dem frame darunter ein abfragebutton ist. Ich schaffs net das zu realisieren.

mfg
dechs
renee
 2006-03-13 20:59
#7117 #7117
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach aus der Seite zwei eine einfache HTML-Seite, die die Definitionen des Framesets beinhaltet und mach dann eine Seite mit dem Menü...

Du hast auch ein paar unnötige Sachen in Deinem Skript, auf die ich im Moment nicht näher eingehen kann, weil ich weg muss...
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/
dechs
 2006-03-13 21:15
#7118 #7118
User since
2006-03-13
12 Artikel
BenutzerIn
[default_avatar]
hallo renee
versteh leider net genau was du meinst, kannst vielleicht nochmal drauf eingehen?

Danke dechs
renee
 2006-03-13 23:47
#7119 #7119
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du Frames darstellen möchtest, musst Du ein Frameset definieren (siehe: http://de.selfhtml.org/navigation/html.htm#frames ). Du müsstest also nach der "Anmeldung" (Seite 1) auf eine Seite verweisen, die genau das definiert. Man kann nicht einfach so aus dem Nichts Frames erstellen...

Du solltest Dir auf jeden Fall auch mal use strict anschauen. Du verwendest z.B. die Variable $Datenbankpasswort, die es vorher aber nicht gibt (sondern $datenbankpw).

Statt eine Abfrage für die Spaltennamen (Select columns from...) zu machen, kannst Du auch anders an die Namen kommen (siehe CPAN:DBI-Doku mit $sth->{NAMES}).

Du machst keine Fehlerabfrage... und über CGi-Sicherheit
scheinst Du Dir auch wenig Gedanken zu machen.
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/
dechs
 2006-03-14 10:39
#7120 #7120
User since
2006-03-13
12 Artikel
BenutzerIn
[default_avatar]
hab das problem mit den Frames erledigt, steh jetzt aber vor dem nächsten;
und zwar hab ich jetzt die seite 1 im oberen Frame und die seite2.pl im unteren frame.
wenn ich nun was in die seite1 eingebe, landet die ausgabe wiederum im oberen Frame. wie kann ich die ausgabe in den unteren frame umleiten?

dechs\n\n

<!--EDIT|dechs|1142333999-->
<< >> 5 Einträge, 1 Seite



View all threads created 2006-03-13 20:43.