[GastForen Archiv Perl und CGI Exel

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Archiv - Archivierte Foren
Themen
Beiträge
Moderatoren
Letzter Beitrag

Exel

Rasmus
Beiträge gesamt: 3

1. Jan 2004, 16:44
Beitrag # 1 von 16
Bewertung:
(8796 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo alle Wissenden,
Da ich noch Anfänger bin, hab ich mehrere Fragen:
Ich habe mit Exel eine Zahen CSV- Datenbank erstellt.
Nun möchte ich mit einem Perl-Script (cgi)im Html-Formular diese Datenbank tabellarisch darstellen. Apache hab ich mir schon als Server eingerichtet...aber nu weiter?
Ratlose Grüße
X

Exel

SabineP
Beiträge gesamt: 7586

1. Jan 2004, 17:40
Beitrag # 2 von 16
Beitrag ID: #63979
Bewertung:
(8794 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rasmus,

außer Apache brauchst Du noch Perl.
Perl gibt es für verschiedene Betriebssysteme.
Ich weiß nicht, welches Betriebssystem Du verwendest.

Das Script sollte dann so aussehen.
Die Variablen $filename enthält den Dateinamen der CSV-Datei
und die Variable $trennzeichen enthält das Trennzeichen Deiner CSV-Datei.


#!/usr/bin/perl

$filename="datei.csv";
$trennzeichen =";";

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

# CSV-Datei öffnen
open (DAT,"<$filename");

# Tabelle zum Browser schicken
print qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Tabelle</title>
</head>
<body>
<table>
|;

#erste Zeile (Kopfzeile)
$zeile=<DAT>;
chomp($zeile);

print qq|
<tr>
|;
for $spalte(split $trennzeichen, $zeile){
print qq|
<th>$spalte|;
}

# jede weitere Zeile
while($zeile = <DAT>){
chomp($zeile);
print qq|
<tr>
|;
for $spalte(split $trennzeichen, $zeile){

# leere Spalten (Zellen) mit Leerzeichen füllen
if ($spalte eq '') {
$spalte="&nbsp;";
}
print qq|
<td>$spalte|;
}
}
# Tabelle schließen
print qq|
</table>
</body>
</html>
|;

close(DAT) # Datei schließen

Gruß Sabine


als Antwort auf: [#63974]
(Dieser Beitrag wurde von SabineP am 1. Jan 2004, 17:41 geändert)

Exel

Anonym
Beiträge gesamt: 22827

1. Jan 2004, 19:01
Beitrag # 3 von 16
Beitrag ID: #63981
Bewertung:
(8794 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Sabine,
ich habe Perl installiert und auch schon eine Html.Datei erstellt.
Dein Script habe ich unter html gespeichert. Wie rufe ich es auf? Bei mir kommt im HTML-Editor in der Vorschau Code.
Muß ich das noch irgendwo einbinden?
Ich habe win 98 , Perl, apache
Schönen dank



als Antwort auf: [#63974]

Exel

SabineP
Beiträge gesamt: 7586

1. Jan 2004, 19:37
Beitrag # 4 von 16
Beitrag ID: #63983
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rasmus,

das Script mußt Du schon als *.cgi oder *.pl speichern.

HTML-Dateien werden vom Webserver nicht ausgeführt bzw. verarbeitet.

Jetzt muß der Apache noch wissen, daß alle Dateien mit der Endung .pl oder .cgi ausgeführt werden sollen.
Dafür sollten folgende Zeilen in der Konfigurationsdatei des Apache "httpd.conf" stehen:

AddHandler cgi-script .cgi
AddHandler cgi-script .pl
Options +ExecCGI

Nun noch zum Verständnis. Der HTML-Code, den das Script dann zum Browser sendet, steht immer zwischen:
print qq|
und
|;

Das Script selbst, kannst Du in einem Text-Editor bearbeiten.
HTML-Editoren können mit dem Perl-Programmcode nichts anfangen.

Das Script kannst Du dann zum Beispiel so im Browser starten:

http://localhost/...rname/csvanzeiger.pl

Gruß Sabine


als Antwort auf: [#63974]
(Dieser Beitrag wurde von SabineP am 1. Jan 2004, 19:40 geändert)

Exel

Rasmus
Beiträge gesamt: 3

1. Jan 2004, 20:16
Beitrag # 5 von 16
Beitrag ID: #63985
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ist das ein Service hier :)
Sabine ich habe das Script z. B. gespeichert in C:/perl2/exel.pl.
dann ruf ich es so auf:
http://localhost/perl2/exel.pl ? Ich steh irgendwie auf dem Schlauch....
Ich kriegs nicht gebacken...
Hast Du noch Geduld?
Rasmus


als Antwort auf: [#63974]

Exel

SabineP
Beiträge gesamt: 7586

1. Jan 2004, 20:40
Beitrag # 6 von 16
Beitrag ID: #63988
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich dachte mir schon, daß es nicht gleich auf Anhieb klappt.
Also der Reihe nach:

1. Funktioniert der Apache?

Was passiert wenn Du nur http://localhost in den Browser eintippst?

Was steht in der Datei "httpd.conf" in dieser Zeile?
DocumentRoot "?????"

Mit http://localhost wird normalerweise das Rootverzeichnis aufgerufen.

Kannst Du die httpd.conf mal als Textdatei speichern und einen Link posten?

Gruß Sabine


als Antwort auf: [#63974]

Exel

Anonym
Beiträge gesamt: 22827

1. Jan 2004, 22:34
Beitrag # 7 von 16
Beitrag ID: #63997
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Sabine:
DocumentRoot "C:/Programme/Apache Group/Apache2/htdocs"
Wenn ich den localhost eingebe " Seite nicht gefunden"

Und nu?
Rasmus


als Antwort auf: [#63974]

Exel

SabineP
Beiträge gesamt: 7586

1. Jan 2004, 23:07
Beitrag # 8 von 16
Beitrag ID: #63999
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Dein Apache funktioniert nicht.

Schau mal nach, ob die Datei "hosts" existiert im Ordner
C:\Windows\hosts

Diese Datei sollte folgende Zeile enthalten

127.0.0.1 localhost

Und dann den Apache neu starten.

Ich habe bisher nur mit der Apache-Version 1.3 gearbeitet, weil diese Version bei den Providern installiert ist.
Aber es müßte trotzdem so funktionieren wie oben beschrieben.

Der Pfad zu Perl muß im Script auch noch geändert werden.

#!/usr/bin/perl

ändern in

#!perl

Gruß Sabine


als Antwort auf: [#63974]
(Dieser Beitrag wurde von SabineP am 1. Jan 2004, 23:14 geändert)

Exel

Anonym
Beiträge gesamt: 22827

2. Jan 2004, 00:02
Beitrag # 9 von 16
Beitrag ID: #64002
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es läuft leider immer noch nicht. Ich hab mal kopiert:
Htpd
ServerRoot "C:/Programme/Apache Group/Apache2"
PidFile logs/httpd.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
Listen 80
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so
ServerAdmin Beasju@web.de
UseCanonicalName Off
DocumentRoot "C:/Programme/Apache Group/Apache2/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "C:/Programme/Apache Group/Apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
UserDir "My Documents/My Website"
#</Directory>
DirectoryIndex index.html index.html.var
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
TypesConfig conf/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error.log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access.log common
ServerTokens Full
ServerSignature On
Alias /icons/ "C:/Programme/Apache Group/Apache2/icons/"

<Directory "C:/Programme/Apache Group/Apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
AliasMatch ^/manual(?:/(?:de|en|fr|ja|ko|ru))?(/.*)?$ "C:/Programme/Apache Group/Apache2/manual$1"

<Directory "C:/Programme/Apache Group/Apache2/manual">
Options Indexes
AllowOverride None
Order allow,deny
Allow from all

<Files *.html>
SetHandler type-map
</Files>

SetEnvIf Request_URI ^/manual/de/ prefer-language=de
SetEnvIf Request_URI ^/manual/en/ prefer-language=en
SetEnvIf Request_URI ^/manual/fr/ prefer-language=fr
SetEnvIf Request_URI ^/manual/ja/ prefer-language=ja
SetEnvIf Request_URI ^/manual/ko/ prefer-language=ko
SetEnvIf Request_URI ^/manual/ru/ prefer-language=ru
RedirectMatch 301 ^/manual(?:/(de|en|fr|ja|ko|ru)){2,}(/.*)?$ /manual/$1$2
</Directory>
ScriptAlias /cgi-bin/ "C:/Programme/Apache Group/Apache2/cgi-bin/"


<Directory "C:/Programme/Apache Group/Apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
IndexOptions FancyIndexing VersionSort
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^


DefaultIcon /icons/unknown.gif
s.
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
ForceLanguagePriority Prefer Fallback

AddDefaultCharset ISO-8859-1
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

AddHandler cgi-script .cgi
AddHandler cgi-script .pl
Options +ExecCGI
AddHandler type-map var

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs" redirect-carefully

<IfModule mod_ssl.c>
Include conf/ssl.conf
</IfModule>






als Antwort auf: [#63974]

Exel

SabineP
Beiträge gesamt: 7586

2. Jan 2004, 00:59
Beitrag # 10 von 16
Beitrag ID: #64003
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du kannst mal noch den ScriptAlias auskommentieren mit dem Gartenzaun:

# ScriptAlias /cgi-bin/ "C:/Programme/Apache Group/Apache2/cgi-bin/"

Für die Dateien (HTML-Dateien und Perl-Scripte)
legst Du dann ein Unterverzeichnis an unterhalb vom htdocs-Verzeichnis:

C:/Programme/Apache Group/Apache2/htdocs/dateien

eine test.html in das Verzeichnis dateien kopieren

C:/Programme/Apache Group/Apache2/htdocs/dateien/test.html

mit http://localhost/dateien/test.html

müßte die test.html im Browser angezeigt werden.

Wenn nichts angezeigt wird, dann schau mal ins Verzeichnis logs/error.log

In der error.log steht dann drin, warum die test.html nicht angezeigt werden konnte.

Gruß Sabine

PS. Noch ein Nachtrag

ExecCGI schreibst Du an eine andere Stelle und zwar so wie unten in die 2. Zeile

<Directory "C:/Programme/Apache Group/Apache2/htdocs">
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Der Vorteil ist, daß dann die Perl-Scripte in jedem Verzeichnis ausgeführt werden können und nicht nur innerhalb des ScriptAlias


als Antwort auf: [#63974]
(Dieser Beitrag wurde von SabineP am 2. Jan 2004, 01:13 geändert)

Exel

Anonym
Beiträge gesamt: 22827

2. Jan 2004, 19:51
Beitrag # 11 von 16
Beitrag ID: #64054
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
http://localhost/dateien/test.html ERgebnis:Die Seite kann nicht angezeigt werden.
logdatei: Kannst du damit etwas anfangen...??
Installing Apache HTTP 2.0 server with
DomainName = local-host
ServerName = local-host
ServerAdmin = Beasju@web.de
ServerPort = 80
ServerRoot = C:/Programme/Apache Group/Apache2
Rewrote C:/Programme/Apache Group/Apache2/conf/httpd-win.conf
to C:/Programme/Apache Group/Apache2/conf/httpd.default.conf
Successfully removed C:\Programme\Apache Group\Apache2\conf\httpd-win.conf
Duplicated C:/Programme/Apache Group/Apache2/conf/httpd.default.conf
to C:/Programme/Apache Group/Apache2/conf/httpd.conf
Duplicated C:/Programme/Apache Group/Apache2/conf/ssl.default.conf
to C:/Programme/Apache Group/Apache2/conf/ssl.conf
Duplicated C:/Programme/Apache Group/Apache2/conf/magic.default
to C:/Programme/Apache Group/Apache2/conf/magic
Duplicated C:/Programme/Apache Group/Apache2/conf/mime.types.default
to C:/Programme/Apache Group/Apache2/conf/mime.types
Successfully removed C:\Programme\Apache Group\Apache2\conf\InstallConf.awk

Vielen Dank für Deine Arbeit...
Rasmus


als Antwort auf: [#63974]

Exel

Anonym
Beiträge gesamt: 22827

2. Jan 2004, 19:53
Beitrag # 12 von 16
Beitrag ID: #64055
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
--


als Antwort auf: [#63974]

Exel

Anonym
Beiträge gesamt: 22827

2. Jan 2004, 20:05
Beitrag # 13 von 16
Beitrag ID: #64059
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Rasmus, ich hatte doch geschrieben:
In der error.log steht dann drin, warum die test.html nicht angezeigt werden konnte.
Also, noch einmal ... was steht in der error.log?

Und was steht in der Datei hosts?
C:\Windows\hosts

Das sieht allerdings komisch aus

>DomainName = local-host
>ServerName = local-host

Geht das bei Dir etwa so?
http://local-host/dateien/test.html

Gruß Sabine


als Antwort auf: [#63974]

Exel

Rasmus
Beiträge gesamt: 3

3. Jan 2004, 19:50
Beitrag # 14 von 16
Beitrag ID: #64103
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sabine...bitte nicht schlagen :)
Ich glaube obige war net die richtige Error log.Das hier müsste die richtige sein...

[Thu Jan 01 14:28:07 2004] [warn] (2)No such file or directory: exec() may not be safe
[Thu Jan 01 14:28:07 2004] [warn] (2)No such file or directory: exec() may not be safe
[Thu Jan 01 14:28:07 2004] [warn] exec() may not be safe
[Thu Jan 01 14:28:08 2004] [warn] exec() may not be safe
Apache server shutdown initiated...

Sabine...bitte nicht schlagen :)
Ich glaube obige war net die richtige Error log.Das hier müsste die richtige sein...

127.0.0.1 localhost


MfG Rasmus

Nein mit dem Pfad gehts auch net....
Ob ich wohl lieber mit dem alten Apache arbeite und den 2er runterschmeisse?


als Antwort auf: [#63974]

Exel

SabineP
Beiträge gesamt: 7586

3. Jan 2004, 20:37
Beitrag # 15 von 16
Beitrag ID: #64104
Bewertung:
(8793 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Rasmus,

>> [Thu Jan 01 14:28:08 2004] [warn] exec() may not be safe
>> Apache server shutdown initiated...

Dein Apache wurde seit dem 1. Januar 14:28 Uhr nicht mehr gestartet.

Du mußt den Apache erst starten (Im Windows-Startmenü müßte dafür eine Verknüpfung sein).

Erst dann im Browser
http://localhost
eintippen.


Wenn das in der Datei hosts steht:

127.0.0.1 localhost

dann ist das so richtig.


Probiers nochmal.

Falls gar nichts geht wird es wohl besser sein den Apache neu zu installieren.
http://www.apache.org/...win32-x86-no_src.exe

Gruß Sabine


als Antwort auf: [#63974]
X