1 2
kdnummer,kddatum,kdfirma,kdstrasse,kdhausnummer,kdplz,kdort,kdland,kdansprechpartner,kdtelefon,kdfax,kdemail 100100,20120917,MaxPower,Maxalle,19,79618,Rheinfelden,D,"Herr Kamikaze","07621 / 123-0","07621 / 123-1",info@maxpower.de
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
%zuordnung=( kunden => { file => 'kunden.csv', col_names => ['kdnummer', 'kddatum', 'kdfirma', 'kdstrasse', 'kdhausnummer', 'kdplz', 'kdort', 'kdland', 'kdansprechpartner', 'kdtelefon', 'kdfax', 'kdemail'], }, ); # Verbindung aufbauen $dbh = DBI->connect("DBI:CSV:", undef, undef, { # Zeilenseparator csv_eol => "\x0A", # Spaltenseparator: csv_sep_char => ",", # Verzeichnis mit den Dateien f_dir => $Bin, # Zuordnung Dateiname -> Tabelle csv_tables => \%zuordnung, # bei Fehlern immer sterben: RaiseError => 1, } ) or die($DBI::errstr); $sth=$dbh->prepare("SELECT * FROM kunden WHERE kdfirma LIKE '\%$kdfirma\%'"); $sth->execute();
SELECT COUNT(*) FROM kunden
1
2
3
4
5
6
7
+-----------------------------------------------------+
| E******** / Daten-Verwaltungs-Programm (EZ-DVP) |
+-----------------------------------------------------+
>> Statistik aufrufen <<
DBI::st=HASH(0x304ad48)
1 2 3 4 5
$sth=$dbh->prepare("SELECT COUNT(*) FROM kunden"); $sth->execute(); $sth->finish(); $dbh->disconnect(); print "$sth";
1 2 3 4
my $sth = $dbh->prepare("SELECT COUNT(*) FROM kunden"); $sth->execute(); my ($count) = $sth->fetchrow_array; $sth->finish;
1 2
my $sth=$dbh->prepare("SELECT * FROM kunden WHERE kdfirma LIKE ?); $sth->execute('%' . $kdfirma . '%');
Quotewie mir scheint, hast du das nicht mal gelesen.
Quotethread ist für dich abgehakt...
Quote, also wird auch nicht mehr reingeschaut? nicht mal eine minute nach deinem letzten beitrag? finde ich schade.
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
################################################################### WerteAnzeigen: ################################################################### system("clear"); print "+-----------------------------------------------------+ \n"; print "| E********** / Daten-Verwaltungs-Programm (EZ-DVP) | \n"; print "+-----------------------------------------------------+ \n"; print " \n"; print ">> Statistik aufrufen << \n"; print " \n"; %zuordnung=( kunden => { file => 'kunden.csv', col_names => ['kdnummer', 'kddatum', 'kdfirma', 'kdstrasse', 'kdhausnummer', 'kdplz', 'kdort', 'kdland', 'kdansprechpartner', 'kdtelefon', 'kdfax', 'kdemail'], }, ); # Verbindung aufbauen $dbh = DBI->connect("DBI:CSV:", undef, undef, { # Zeilenseparator csv_eol => "\x0A", # Spaltenseparator: csv_sep_char => ",", # Verzeichnis mit den Dateien f_dir => $Bin, # Zuordnung Dateiname -> Tabelle csv_tables => \%zuordnung, # bei Fehlern immer sterben: RaiseError => 1, } ) or die($DBI::errstr); $sth=$dbh->prepare("SELECT COUNT(*) FROM kunden"); $sth->execute(); my ($countKd) = $sth->fetchrow_array; $countKd = $countKd - 1; $sth->finish(); $dbh->disconnect(); %zuordnung=( kurzgeschichten => { file => 'kurzgeschichten.csv', col_names => ['kgnummer', 'kgtitel', 'pakettyp', 'status', 'statusdatum', 'kdnummer', 'kdkonto'], }, ); # Verbindung aufbauen $dbh = DBI->connect("DBI:CSV:", undef, undef, { # Zeilenseparator csv_eol => "\x0A", # Spaltenseparator: csv_sep_char => ",", # Verzeichnis mit den Dateien f_dir => $Bin, # Zuordnung Dateiname -> Tabelle csv_tables => \%zuordnung, # bei Fehlern immer sterben: RaiseError => 1, } ) or die($DBI::errstr); $sth=$dbh->prepare("SELECT COUNT(*) FROM kurzgeschichten"); $sth->execute(); my ($countKg) = $sth->fetchrow_array; $countKg = $countKg - 1; $sth->finish(); $dbh->disconnect(); #Testausgabe print "Anzahl Kunden : $countKd \n"; print "Anzahl Kurzgeschichten: $countKg \n";
1 2 3 4 5 6 7 8 9 10 11 12 13
$dbh = DBI->connect("DBI:CSV:", undef, undef, { # Zeilenseparator csv_eol => "\x0A", # Spaltenseparator: csv_sep_char => ",", # Verzeichnis mit den Dateien f_dir => $Bin, # Zuordnung Dateiname -> Tabelle csv_tables => \%zuordnung, # bei Fehlern immer sterben: RaiseError => 1, } ) or die($DBI::errstr);
1 2 3 4 5
$sth=$dbh->prepare("SELECT COUNT(*) FROM kurzgeschichten"); $sth->execute(); my ($countKg) = $sth->fetchrow_array; $countKg = $countKg - 1; $sth->finish();
2012-09-26T10:28:09 ?Zu den erwähnten Sicherheitsproblem:
Ich nehme mal an, dass man mit geschickten Eingaben Unfug treiben kann. Ähnlich dem XSS (Cross Site Scripting). Nun, Dieses Programm wird nur lokal genutzt. Ausser mir, und später eventuell eine Mitarbeiterin (400,00 oder mehr) nutzt das keiner. Wo soll denn dann ein Sicherheitsproblem sein?
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
+-----------------------------------------------------+
| E********** / Daten-Verwaltungs-Programm (EZ-DVP) |
+-----------------------------------------------------+
>> Daten eingeben <<
Soll der Datensatz mit folgenden Angaben angelegt werden?
Firma :O'Reilly
Strasse :Reillyroad
Hausnummer :99
PLZ :12345
Ort :ReillyCity
Land :GB
Ansprechpartner :Mr. Johnson
Telefon :12345
Fax :12345
E-Mail :info@reilly.uk
Eingaben mit 1 bestätigen / mit 0 verwerfen [x]:1
Mismatched single quote before: <info@reilly.uk')> at /usr/local/share/perl/5.10.0/SQL/Statement.pm line 88
DBD::CSV::db prepare failed: Mismatched single quote before: <info@reilly.uk')> at /usr/local/share/perl/5.10.0/SQL/Statement.pm line 88
[for Statement "INSERT INTO kunden VALUES ( '100107' , '20120926', 'O'Reilly', 'Reillyroad', '99', '12345', 'ReillyCity', 'GB', 'Mr. Johnson', '12345', '12345', 'info@reilly.uk')"] at ./EZ-DVP.pl line 477.
DBD::CSV::db prepare failed: Mismatched single quote before: <info@reilly.uk')> at /usr/local/share/perl/5.10.0/SQL/Statement.pm line 88
[for Statement "INSERT INTO kunden VALUES ( '100107' , '20120926', 'O'Reilly', 'Reillyroad', '99', '12345', 'ReillyCity', 'GB', 'Mr. Johnson', '12345', '12345', 'info@reilly.uk')"] at ./EZ-DVP.pl line 477.
1 2
my $sth=$dbh->prepare("SELECT * FROM kunden WHERE kdfirma LIKE ?); $sth->execute('%' . $kdfirma . '%');
1 2
$sth=$dbh->prepare("INSERT INTO kunden VALUES ( '$kdnummer' , '$kddatum', '$kdfirma', '$kdstrasse', '$kdhausnummer', '$kdplz', '$kdort', '$kdland', '$kdansprechpartner', '$kdtelefon', '$kdfax', '$kdemail')"); $sth->execute();
1 2 3 4 5 6 7
$sth=$dbh->prepare("INSERT INTO kunden VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"); $sth->execute( $kdnummer, $kddatum, $kdfirma, $kdstrasse, $kdhausnummer, $kdplz, $kdort, $kdland, $kdansprechpartner, $kdtelefon, $kdfax, $kdemail, );
1 2 3 4 5 6 7 8 9 10
sub add_kunde { my $dbh=shift; my @data=@_; return 0 unless(@data==12); # sind es 12 Werte? my $sth=$dbh->prepare("INSERT INTO kunden VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"); $sth->execute(@data); $sth->finish(); return 1; }
1 2 3 4 5 6
add_kunde($dbh, $kdnummer, $kddatum, $kdfirma, $kdstrasse, $kdhausnummer, $kdplz, $kdort, $kdland, $kdansprechpartner, $kdtelefon, $kdfax, $kdemail, );