Hallo Hanü,
hier ist mal ein Beispielskript für eine Tabelle mit dem Namen adressen.
Die einzelnen Tabellenspalten sind:
id, name, plz, ort
In der Spalte name stehen die Benutzernamen, die identisch sind mit den Benutzernamen in der Datei .htpasswd
Habe das Skript noch einmal geändert!
#!/usr/bin/perl
# Einbinden der Module
use CGI::Carp qw(fatalsToBrowser);
use strict;
use CGI;
use DBI;
# Verbindung zur Datenbank herstellen
my $db=DBI->connect('dbi:mysql:Datenbankname;Hostname','Benutzername','Passwort');
my $http=new CGI;
my $name = $ENV{'REMOTE_USER'};
my $plz = $http->param('plz');
my $ort = $http->param('ort');
# HTTP-Header ausgeben
print $http->header();
print $http->start_html();
if ($http->param('update') ne ''){
#Änderungsformular
my $query = $db->prepare("SELECT id, name, plz, ort FROM adressen WHERE name='$name' ");
print $db->errstr; #Errorstring
$query->execute();
my @abfrage = $query->fetchrow_array();
print qq|<form action="adresse.pl" method="post">|;
print qq|<table border="1">|;
print qq|<tr><td>$abfrage[0]<td>$abfrage[1]<input type="hidden" name="name" value="$abfrage[1]"><td><input type="text" name="plz" value="$abfrage[2]"><input type="text" name="ort" value="$abfrage[3]"></table>|;
print qq|<input type="submit" value="speichern" name="update1">|;
print qq|</form>|;
}
elsif ($http->param('update1') ne ''){
#Änderungen in Datenbank übernehmen
if ($plz ne '' && $ort ne ''){
my $query = $db->prepare ("UPDATE adressen SET plz='$plz', ort='$ort' WHERE name='$name' ");
print $db->errstr; #Errorstring
$query->execute();
}
print qq|Änderung durchgeführt<br><a href="adresse.pl">zur Adressenanzeige</a>|;
}
else {
# Adresse anzeigen
my $query = $db->prepare("SELECT id, name, plz, ort FROM adressen WHERE name='$name' ");
print $db->errstr; #Errorstring
$query->execute();
# Tabellenkopf
print qq|<form action="adresse.pl" method="post">|;
print qq|<table border="1">|;
# Datenbankeintrag in ein Array lesen und in Tabelle schreiben
my @abfrage = $query->fetchrow_array();
print qq|<tr><td>$abfrage[0]<td>$abfrage[1]<td>$abfrage[2]<td>$abfrage[3]<td><input type="submit" name="update" value="ändern">|;
print qq|</table></form><br><br>|;
}
# Datenbank-Verbindung beenden
$db->disconnect();
# HTML-Dokument beenden
print $http->end_html();
Gruß Sabine
(Dieser Beitrag wurde von SabineP am 3. Feb 2004, 10:26 geändert)