Schrift
[thread]10774[/thread]

script.pl mit Browser ausführen

Leser: 1


<< >> 10 Einträge, 1 Seite
steffi42
 2007-11-11 17:35
#102199 #102199
User since
2007-11-11
8 Artikel
BenutzerIn
[default_avatar]
Hi,

ich möchte Preise von zwei verschiedenen Seiten abfragen und die gewonnen Infos nach Formatierung in meine mysql Datenbank schieben.
Zum erstellen der einmaligen Produkt Ids habe ich folgendes Script gebastelt

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
#!/usr/bin/perl -w

use strict;
use LWP::Simple;
use DBI;
use CGI qw(:standard escapeHTML);

print header();

my $dbh = DBI->connect('DBI:mysql:db3459xtest:mysql3.test.de','testuser','testpasswort', { PrintError => 1});

print "DB connection established\n";

my $url = 'http://www.testsite.com/Prices.txt';

my $counter=0;
my $inet = get($url);
my $sql;
my $sth;


foreach my $line (split(/\n/, $inet)) {
$counter++;
if ($counter >= 12) {
unless ($line =~ /^\n|=|Foil/) {
if ($line =~ s/Booster/\[BOO\]/) {}
if ($line =~ /([A-Za-z', ]+)\[(\w+)\]/) {
$sql = qq{INSERT INTO Karten_ID (ID,Edition,Kartenname) values (NULL,$2,$1)};
$sth = $dbh->prepare( $sql );
$sth->execute();
}
}
}
}

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


Habe das ganze auf meinen webspace hochgeladen und würde es gerne online ausführen, so das ich von überall die Datenbank speisen kann. Leider erhalte ich Server Error 500 obwohl ich .pl und .cgi ausführen darf und die Dateirechte auf 0755 geändert habe. Der Pfad zu Perl ist laut FAQ auch korrekt. Muss ich am Script noch was ändern oder liegt es am server dass das script nicht ausgeführt wird?
Danke
Steffi



Nachtrag
~~~~~~~~~~~~
habe folgendes nette tool gefunden: perl debugger
der hat mir folgendes ausgeschmissen:

Subroutine main::head redefined at /usr/share/perl/5.8/CGI.pm line 303.

Prototype mismatch: sub main::head ($) vs none at /usr/share/perl/5.8/CGI.pm line 303.

/html/cgi-bin/mtg/IDs_erstellen2.pl syntax OK


~~~~~~~~~~~~~~~~
lichtkind
 2007-11-11 17:55
#102200 #102200
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ist zwar nicht mien fachbereich, aber ich bitte dich deine frage nur einmal abzusenden. Ich bin mir sicher das die chance deine frage zu beanworten eher sinken wenn du nicht die antwort abwartest.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
steffi42
 2007-11-11 17:57
#102201 #102201
User since
2007-11-11
8 Artikel
BenutzerIn
[default_avatar]
argh sorry das wollte ich nicht, habe über editieren ein wenig am eintrag korrgiert. sollte ihn nicht mehr als einmal posten

sorry @mod bitte die anderen threads löschen, war wirklich keine absicht!
Struppi
 2007-11-11 18:25
#102202 #102202
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Die Funktion head() wird von LWP::Simple und CGI qw(:standard) importiert, d.h. eine davon wird überschrieben.
In dem Falle wäre es besser das CGI Modul Objektorientiert zu nutzen.

Code (perl): (dl )
1
2
3
use CGI;
my $cgi = new CGI();
print $cgi->header();
steffi42
 2007-11-11 18:32
#102203 #102203
User since
2007-11-11
8 Artikel
BenutzerIn
[default_avatar]
danke Struppi, aber Server Error 500 bleibt leider bestehen :-(
renee
 2007-11-11 18:38
#102204 #102204
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Zum Thema 500er: http://wiki.perl-community.de/bin/view/Wissensbasi...
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/
steffi42
 2007-11-11 18:44
#102206 #102206
User since
2007-11-11
8 Artikel
BenutzerIn
[default_avatar]
es scheint am DBI Modul zu liegen.
wenn ich

Code: (dl )
1
2
3
$sql = qq{INSERT INTO Karten_ID (ID,Edition,Kartenname) values (NULL,$2,$1)};
$sth = $dbh->prepare( $sql );
$sth->execute();


durch
Code: (dl )
print "$2 $1<br />";

ersetzte, habe ich keinen Server Error 500.

Die Login Daten sind aber soweit okk, habe mich damit gerade bei myphp admin eingeloggt. kann es sein das mein webserver use DBI nicht unterstützt?


~~~~~~~~~~~~~~
Nachtrag

<!-- warning: DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax t
renee
 2007-11-11 19:00
#102207 #102207
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du *nur* das prepare und das execute rausgenommen hast, dann liegt es nicht an DBI, sondern am Statement.

Aber Dein Code sollte so aussehen:
Code (perl): (dl )
1
2
3
$sql = qq{INSERT INTO Karten_ID (ID,Edition,Kartenname) values (NULL,?,?)};
                $sth = $dbh->prepare( $sql );
                $sth->execute($2,$1);


Die ?-Notation macht gleich ein Quoting von "Sonderzeichen" und sorgt für mehr Sicherheit...
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/
steffi42
 2007-11-11 19:21
#102211 #102211
User since
2007-11-11
8 Artikel
BenutzerIn
[default_avatar]
super vielen Dank :-)
pq
 2007-11-12 09:54
#102234 #102234
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
steffi42+2007-11-11 16:57:42--
argh sorry das wollte ich nicht, habe über editieren ein wenig am eintrag korrgiert. sollte ihn nicht mehr als einmal posten

ist schon ok, das forum hat einen bug, durch den man nicht merkt, dass man einen artikel
mehrfach absendet. einfach nach dem ersten erstellen des threads nochmal in die uebersicht
gehen und dann auf deinen thread. dann kannst du auch gerne editieren.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 10 Einträge, 1 Seite



View all threads created 2007-11-11 17:35.