[GastForen Archiv Perl und CGI

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

Adressenscript für Intern-Bereich

SabineP
Beiträge gesamt: 7586

2. Feb 2004, 12:50
Bewertung:

gelesen: 7869

Beitrag als Lesezeichen
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|&Auml;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="&auml;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)
Dieser Beitrag wurde nicht geändert.