Guten Abend OlliP,
Klar geht das mit Perl auch.
Das fiktive Beispiel folgt.
Du musst das Feld, die URL und die Eingabedatei anpassen.
Nehmen wir an das Feld der Website heißt
Ware und die URL zum Einkaufen
http://exammppl.ork/shop/kaufmich und die Seite nimmt alles per POST entgegen.
Nehmen wir an dies sei die Eingabedatei (=Einkaufsliste) names
grillparttyliste:
30 Bratwürste
10 Schaschlik
10 kg Grillkohle
20 Liter Fassbier
10 Dosen Cola ExtraLight
1 Flasche Knurr Chilisoße
8 Zucchini
4 Paprika rot
10 Baguettes
und du nutzt dieses Programm namens
koofmich um Senden and diese o.g. Seite:
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
use 5.010;
use strict;
use warnings;
use utf8;
use Getopt::Long;
use LWP::UserAgent ();
my $url = "http://exammppl.ork/shop/kaufmich";
my $field_name_1 = 'Ware';
my $filename = "";
my $verbose = 0;
GetOptions ("file=s" => \$filename,
) or die("Fehler in Argumenten der Kommandozeile\n");
my $fh;
if (not open($fh, "<", "$filename") ) {
die "Fehler: Datei '$filename' kann nicht zum Lesen geöffnet werden: $!\n";
}
my @nochmals_bestellen = ();
my $ua = LWP::UserAgent->new(timeout => 10);
my @lines = <$fh>;
EINKAUFEN: while (scalar @lines) {
$line = shift @lines;
chomp $line;
my $value = $line;
my $res = $ua->post( $url, $field_name_1 => $value );
if ($res->is_success) {
say "Yihaaa! Einkauf von $line getaetigt";
}
else {
push @nochmals_bestellen, $line;
say "Upps! Einkauf von $line nicht geklappt";
warn $res->status_line, "\n";
}
}
if (scalar @nochmals_bestellen) {
@lines = @nochmals_bestellen;
@nochmals_bestellen = ();
goto EINKAUFEN;
}
dann kannst du so "einkaufen":
koofmich -f ./grillparttyliste
Notfalls hier weider fragen.
Natürlich ist das so noch nicht extrem fehlertolerant. Und es geht garantiert eleganter. Jede und jeder macht es anders. Ich habs versucht auf die Schnell mal hin zu schreiben.
Alles ungetestet.
Die Hitze mit 32°C im Zimmer gerade. Also ohne Gewähr und Garantie.
Und es ist ja zum Lernen für dich. Du wirst ja sowas erst mal auf deinem lokalen Server ausprobieren, oder? Nicht einfach so auf irgendeinen Server loslassen!
Last edited: 2020-08-21 20:53:44 +0200 (CEST)