Beitrag von Michael Koch (344 Beiträge) am Dienstag, 17.April.2001, 12:19.
zulassen das ein Datenfeld geändert werden darf
Hallo,
ich möchte zulassen, das ein Datenfeld in der Datenbank von anderen bearbeitet werden kann.
Die anderen dürfen nicht geändert werden können.
ich hab leider keine Ahnung wie das geht.
Wer kann helfen.
Hier der Link einer Deteil Seite von wo aus die Änderung erfolgen soll:
http://baseportal.de/cgi-bin/baseportal.pl?htx=/brueckenbau/bruecke2&cmd=all&Id==203
und nun noch der Quelltext dieser Seite:
<head>
<title>Detail Seite der Brücken neu</title>
</head>
<LINK href="http://www.brueckenbau-links.de/bblinks.css" rel=styleSheet type=text/css>
<body>
<loop db=brueckenbau code=perl>
out <<EOF;
<h2>$Brueckenname</h2>
<p>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><img src="$BildvorschauLink" alt="$Brueckenname" border="0" align="left" hspace="5" vspace="5">$Beschreibung</td>
</tr>
</table>
</p>
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tr>
<td width="150">Land :</td>
<td width="450">$Land</td>
</tr>
<tr>
<td width="150">Lage :</td>
<td>$Lage</td>
</tr>
<tr>
<td width="150">Stadt :</td>
<td>$Stadt</td>
</tr>
<tr>
<td width="150">Verkehrsweg oben :</td>
<td>$VerkehrswegOben</td>
</tr>
<tr>
<td width="150">Verkehrsweg unten :</td>
<td>$VerkehrswegUnten</td>
</tr
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><h3>Kommentar zu dieser Brücke</h3>
<p>Dies ist das einzige Datenfeld, das jeder bearbeiten kann.<br>
<font color="#800000">$Kommentar</font></p>
<p>Kommentar bearbeiten (Diese Seite ist noch nicht fertig)</td>
</tr>
</table>
<p><a href="$BildLinkSeite">Hier kommen Sie zur Original Seite dieser Brücke.</a>
</p>
<p>Die Original Seite wurde erstellt von <a href="$EigentuemerLink">$SeitenEigentuemer</a>
.</p>
<include src=hinweis>
EOF
</loop>
</body>
Bis Bald.
Antworten
Beitrag von Michael Koch (344 Beiträge) am Dienstag, 17.April.2001, 17:31.
Re: zulassen das ein Datenfeld geändert werden darf Erinnerung
Hallo,
kann hier wirklich keiner helfen ?
es währe mir sehr wichtig.
Antworten
Beitrag von Winkiller (175 Beiträge) am Dienstag, 17.April.2001, 17:40.
Re: zulassen das ein Datenfeld geändert werden darf Erinnerung - schwierig
Entweder mit einem Do, das in der änderungsanzeige nur das jenige Feld enthält
oder
Do action=input und selbst gebautes Formular, das das zu ändernde Feld übergibt
oder
und das ist das einzig sichere:
Formular selbst machen und mod-Befehl in Perl schreiben, der nur dieses eine Feld ändern kann.
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 17.April.2001, 17:41.
Re: zulassen das ein Datenfeld geändert werden darf Erinnerung
ma nich drängeln, das führt selten zum Erfolg.
Dein Problem ist zu komplex, um mal auf die Schnelle beantwortet werden zu können. Du brauchst auf jedenfall eine eigene Programierung dafür, mit einem selbstgeschriebenen Formular. Ein Beispiel steht in der Doku unter Beispiele. Desweiteren mußt du die Id des zu ändernden DS beim link mitschicken, das aufgerufene Template holt sich mit get diesen Datensatz und man kann diesen dann ändern. Wie du siehst, sehr komplex. alles selbst machen.
Sander
Antworten
Beitrag von Michael Koch (344 Beiträge) am Dienstag, 17.April.2001, 18:36.
Re: zulassen das ein Datenfeld geändert werden darf Erinnerung
Hallo,
ich werd mich bessern und Geduld haben.
Die Doku habe ich mir angeschaut aber nicht verstanden.
somit muß ich warten.
Alles andere ist ja auch geschaft worden.
Bis bald
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 17.April.2001, 19:31.
Re: zulassen das ein Datenfeld geändert werden darf Erinnerung
soll eigentlich jeder diesen Eintrag ändern können? oder soll immer ein neuer kommentar drangehangen werden - sowas wie "Meine Meinung zu dieser Brücke"
Meinung 1
Blabla
Meinung 2
Blabla
bei erstens kann ja jeder den kommentar von dem anderen "weg"ändern.
zu 2tens: klappt nicht ohne viel Perl weil du dann eine Relationale Datenbank brauchst. Das Relationsfeld von bp ist ziemlich buggy, das funzt net.
Sander
Antworten
Beitrag von Michael Koch (344 Beiträge) am Dienstag, 17.April.2001, 20:27.
Re: zulassen das ein Datenfeld geändert werden
Mit erstens wehre ich schon zufrieden.
Zweitens ist aber besser.
Dies Kommentarfeld soll eigentlich dafür sein,
für Ergänzungen und Hinweise zu diesem Datensatz. Was dan durch mich auch eingearbeitet wird.
Kann ich denn über den Eintrag im Kommentarfeld per E-Mail auch informiert werden ?
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 17.April.2001, 21:35.
Re: zulassen das ein Datenfeld geändert werden
<perl>
if ($cmd eq "all")
{
if ($do eq "mod")
{
mod "Id==$Id",["Feldname",$_get{Feldname}],"Datenbank";
}else
{
out <<EOF;
<form action="baseportal.pl?htx=$htx&cmd=all&Id=$_id&do=mod" method=post enctype="multipart/form-data"><input type=hidden name=htx value=$htx><input type=hidden name=Id value=$_id><input type=hidden name=cmd value=all><input type=hidden name=do value=mod>
<input type=text name=Feldname value=$Feldname><input type=submit></form>
}
}
</perl>
Das fügst du unter oder über das <do action=..> ein.
Feldname muß noch ersetzt werden durch - na was wohl? - den Feldnamen des Kommentars ;-) .
Wenn du Wert auf Datensicherheit legst kannst du nur über einen Workaround per mail benachrichtigt werden, oder die Betaversion nutzen (nicht sicher).
Sander
Antworten
Beitrag von Michael Koch (344 Beiträge) am Dienstag, 17.April.2001, 22:05.
Re: zulassen das ein Datenfeld geändert werden
Hallo,
das verstehe ich nicht alles.
Ich nehme an, dass ich eine neue Datei,
ähnlich der Eingabedatei erstellen muß und dort dies einfügen muß.
Kannst du mir die ganze Datei machen ?
Ich krig das noch nicht hin.
Das Datenfeld heißt "Kommentar" die Datenbank "brueckenbau".
Was ist ein Workaround ?
Bis Bald.
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 17.April.2001, 22:36.
Re: zulassen das ein Datenfeld geändert werden
hab dein Quelltext nicht gelesen, und auf die falsche Methode geschlossen.
hier, so hab ich mir das gedacht - konnte es nicht testen, weil deine Schreibrechte nicht frei sind.
<html>
<head>
<title>Detail Seite der Brücken neu</title>
</head>
<LINK href="http://www.brueckenbau-links.de/bblinks.css" rel=styleSheet type=text/css>
<body>
<loop db=/brueckenbau/brueckenbau code=perl>
out <<EOF;
<h2>$Brueckenname</h2>
<p>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><img src="$BildvorschauLink" alt="$Brueckenname" border="0" align="left" hspace="5" vspace="5">$Beschreibung</td>
</tr>
</table>
</p>
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tr>
<td width="150">Land :</td>
<td width="450">$Land</td>
</tr>
<tr>
<td width="150">Lage :</td>
<td>$Lage</td>
</tr>
<tr>
<td width="150">Stadt :</td>
<td>$Stadt</td>
</tr>
<tr>
<td width="150">Verkehrsweg oben :</td>
<td>$VerkehrswegOben</td>
</tr>
<tr>
<td width="150">Verkehrsweg unten :</td>
<td>$VerkehrswegUnten</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><h3>Kommentar zu dieser Brücke</h3>
<p>$Kommentar<br>
EOF
if ($do eq "mod")
{
mod "Id==$Id",["Kommentar",$_get{Kommentar}],"brueckenbau";
}else
{
out <<EOF;
Kommentar ändern:<br>
<form action="baseportal.pl?htx=$htx&Id==$_id&do=mod" method=post enctype="multipart/form-data"><input type=hidden name=htx value=$htx><input type=hidden name=Id= value=$_id><input type=hidden name=cmd value=all><input type=hidden name=do value=mod>
<input type=text name=Kommentar value=$Kommentar><input type=submit></form>
EOF
}
out <<EOF;
</p>
<p>Kommentar bearbeiten (Diese Seite ist noch nicht fertig)</td>
</tr>
</table>
<p><a href="$BildLinkSeite">Hier kommen Sie zur Original Seite dieser Brücke.</a>
</p>
<p>Die Original Seite wurde erstellt von <a href="$EigentuemerLink">$SeitenEigentuemer</a>
.</p>
<include src=hinweis>
EOF
</loop>
</body>
</html>
Das Textfeld kann natürlich gegen eine textarea getauscht werden.
Es wird immer die selbe Seite verwendet, je nach aktion aber was anderes ausgegeben.
Ein Workaround ist ein "drumrumgebaue" wenn etwas nicht möglich ist, über tricks es doch zu ermöglichen.
In dem Fall des mails geht es über javascript und einem externen Formmailer wie bravenet.com
Sander
Antworten
Beitrag von Michael Koch (344 Beiträge) am Dienstag, 17.April.2001, 22:54.
Re: zulassen das ein Datenfeld geändert werden
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 17.April.2001, 23:22.
Re: zulassen das ein Datenfeld geändert werden
hier nochmal verbessert:
<head>
<title>Detail Seite der Brücken neu</title>
</head>
<LINK href="http://www.brueckenbau-links.de/bblinks.css" rel=styleSheet type=text/css>
<body>
<loop db=/brueckenbau/brueckenbau code=perl Id==$Id>
out <<EOF;
<h2>$Brueckenname</h2>
<p>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><img src="$BildvorschauLink" alt="$Brueckenname" border="0" align="left" hspace="5" vspace="5">$Beschreibung</td>
</tr>
</table>
</p>
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tr>
<td width="150">Land :</td>
<td width="450">$Land</td>
</tr>
<tr>
<td width="150">Lage :</td>
<td>$Lage</td>
</tr>
<tr>
<td width="150">Stadt :</td>
<td>$Stadt</td>
</tr>
<tr>
<td width="150">Verkehrsweg oben :</td>
<td>$VerkehrswegOben</td>
</tr>
<tr>
<td width="150">Verkehrsweg unten :</td>
<td>$VerkehrswegUnten</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><h3>Kommentar zu dieser Brücke</h3>
<p>
EOF
if ($do eq "mod")
{
mod "Id==$Id",["Kommentar",$_get{Kommentar}],"brueckenbau";
out "$_get{Kommentar}";
}else
{
out <<EOF;
<p>$Kommentar</p>
Kommentar ändern:<br>
<form action="baseportal.pl?htx=$htx&Id=$_id&do=mod" method=post enctype="multipart/form-data"><input type=hidden name=htx value=$htx><input type=hidden name=Id value=$_id><input type=hidden name=cmd value=all><input type=hidden name=do value=mod>
<textarea name=Kommentar>$Kommentar</textarea><input type=submit></form>
EOF
}
out <<EOF;
</p>
<p>Kommentar bearbeiten (Diese Seite ist noch nicht fertig)</td>
</tr>
</table>
<p><a href="$BildLinkSeite">Hier kommen Sie zur Original Seite dieser Brücke.</a>
</p>
<p>Die Original Seite wurde erstellt von <a href="$EigentuemerLink">$SeitenEigentuemer</a>
.</p>
<include src=hinweis>
EOF
</loop>
</body>
</html>
Du hast gar keinen Kommentar in der db stehen. Ändere mal die links von http://baseportal.de/cgi-bin/baseportal.pl?htx=/brueckenbau/blaettern um auf die details zu kommen bei Id==.. in Id=$_id - also nur ein =. Sonst funktioniert das nicht mehr.
Sander
Antworten
Beitrag von Michael Koch (344 Beiträge) am Mittwoch, 18.April.2001, 10:35.
Re: zulassen das ein Datenfeld geändert werden
Antworten
Beitrag von Sander (8133 Beiträge) am Mittwoch, 18.April.2001, 16:12.
Re: zulassen das ein Datenfeld geändert werden
so, nun aber...
Ich habs auch getestet :-) .komischer Weise gings jetzt zu testen. Sonst beklam ich immer "denied".
<perl>
if ($do eq "mod")
{
mod "Id==$Id",["Kommentar",$Kommentar],"/brueckenbau/brueckenbau";
}
</perl>
<html>
<head>
<title>Detail Seite der Brücken neu</title>
</head>
<LINK href="http://www.brueckenbau-links.de/bblinks.css" rel=styleSheet type=text/css>
<body>
<loop db=/brueckenbau/brueckenbau code=perl Id==$Id>
out <<EOF;
<h2>$Brueckenname</h2>
<p>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><img src="$BildvorschauLink" alt="$Brueckenname" border="0" align="left" hspace="5" vspace="5">$Beschreibung</td>
</tr>
</table>
</p>
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tr>
<td width="150">Land :</td>
<td width="450">$Land</td>
</tr>
<tr>
<td width="150">Lage :</td>
<td>$Lage</td>
</tr>
<tr>
<td width="150">Stadt :</td>
<td>$Stadt</td>
</tr>
<tr>
<td width="150">Verkehrsweg oben :</td>
<td>$VerkehrswegOben</td>
</tr>
<tr>
<td width="150">Verkehrsweg unten :</td>
<td>$VerkehrswegUnten</td>
</tr>
<tr>
<td colspan="2"> </td>
</tr>
<tr>
<td colspan="2"><h3>Kommentar zu dieser Brücke</h3>
<p>$Kommentar</p>
Kommentar ändern:<br>
<form action="baseportal.pl?htx=$htx&Id=$_id&do=mod" method=post enctype="multipart/form-data"><input type=hidden name=htx= value=$htx><input type=hidden name=Id= value=$_id><input type=hidden name=cmd= value=all><input type=hidden name=do= value=mod>
<textarea name=Kommentar=>$Kommentar</textarea><input type=submit></form>
</p>
<p>Kommentar bearbeiten (Diese Seite ist noch nicht fertig)</td>
</tr>
</table>
<p><a href="$BildLinkSeite">Hier kommen Sie zur Original Seite dieser Brücke.</a>
</p>
<p>Die Original Seite wurde erstellt von <a href="$EigentuemerLink">$SeitenEigentuemer</a>
.</p>
<include src=hinweis>
EOF
</loop>
</body>
</html>
Sander
Antworten
Beitrag von Michael Koch (344 Beiträge) am Mittwoch, 18.April.2001, 17:10.
ein Datenfeld lässt sich nun ändern
Hallo,
danke Sander es hat geklappt.
Ich werd jetzt noch die Form ändern.
Dann hab ich noch mal was.
bis bald
Antworten
Beitrag von Michael Koch (344 Beiträge) am Mittwoch, 18.April.2001, 18:02.
Re: zulassen das ein Datenfeld geändert werden
Hallo,
zu guter letzt, wie geht das nun mit der E-Mail Benachrichtigung, wenn jemand den Kommentar Text ändert.
.....nur über einen Workaround ...
Wo muß ich was einbinden ?
Bis bald.
Antworten