Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 10:17. WWW: rathaus-buerstadt.de
Formular mit include-Befehl
Hallo,
ich habe ein Formular namens onlineformular, das zuverlässig arbeitet und alles tut was man von einem guten Formular erwartet.
Doch dann...
wollte ich es in einem anderen Template einbauen mit <include src=onlineformular> und promt kommt ein gereiztes:
Fehler: init: Zugriff verweigert
Ursache: Die angegebene Datenbank ist für den gewünschten Zugriff nicht freigegeben
Was läuft da schief?
Gruß
Micha
Antworten
Beitrag von Oliver ;-) (49 Beiträge) am Donnerstag, 13.Dezember.2001, 10:21.
Re: Formular mit include-Befehl
Hallo Micha,
ohne jetzt dein Template genau zu kennen, gibt es nach meiner Erfahrung zwei Möglichkeiten:
1. du verwendest include innerhalb von Perl. Das funktioniert nicht. Oder
2. der Verweis im include ist nicht richtig. D.h. das Include-Template liegt eventuell im anderen Verzeichnis.
Grüße
Oliver ;-)
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 10:52.
Re: Formular mit include-Befehl
Hallo Oliver,
das ist das Template wo mein Formular mit dem Arbeitstitel: scheck_neu hinsoll:
<html>
<head>
<title>Startseite Rathaus Bürstadt</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<table border="1" width="100%" bordercolor="#999999" bgcolor="#FFFFFF" bordercolordark="#999999" bordercolorlight="#999999">
<tr>
<td width="43%" valign="top"><include src=Portal></td>
<td valign="top" bordercolor="#666666" width="30%"><include src=suchen><hr> <include src=onlineformulare/scheck_neu></td>
<td valign="top" bordercolor="#666666" width="27%"><include src=Veranstaltungen></td>
</tr>
<tr>
<td width="43%" valign="top"> </td>
<td bordercolor="#666666" width="30%" valign="top"> </td>
<td bordercolor="#666666" width="27%" valign="top"> </td>
</tr>
<tr>
<td width="43%" valign="top"> </td>
<td bordercolor="#666666" width="30%" valign="top"> </td>
<td bordercolor="#666666" width="27%" valign="top"> </td>
</tr>
</table>
<include src=footer>
</html>
Das ist das Template des Formulars scheck_neu:
<html><head><title>Bürger Scheck</title>
<font face="verdana">
</head>
<body bgcolor=ffffff>
<do action=all mail_put=micha.jost@buerstadt.de>
</html>
Die Rechte sind auf Daten zufügen begrenzt.
Der Pfad stimmt, da ich das mit eingefügten Bildern getestet habe-die Bilder werden angezeigt.
Da ist kein perl weit und breit.
Grand malheur dé kack.
Gruß
Micha
Antworten
Beitrag von Oliver ;-) (49 Beiträge) am Donnerstag, 13.Dezember.2001, 10:59.
Re: Formular mit include-Befehl
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 11:10.
Re: Formular mit include-Befehl
Hallo Oliver
die db heisst auch scheck_neu und liegt im selben Verzeichnis (onlineformulare).
Ein Fall für Akte X?
Gruß
Micha
Antworten
Beitrag von Oliver ;-) (439 Beiträge) am Donnerstag, 13.Dezember.2001, 11:32.
Re: Formular mit include-Befehl
hmmm... mysteriös...
Also, scheck_neu (Template und DB) liegt im Verzeichnis onlineformulare und die Startseite liegt im Verzeichnis darunter.
Vielleicht solltest du mal im Template scheck_neu einfach nur <do action=all...> reinschreiben und den restlichen HTML-Code weglassen. Der wird nämlich auch per include in die Startseite reingezogen.
Oliver ;-)
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 11:43.
Re: Formular mit include-Befehl
Lieber Oliver,
die Luft wird immer dünner.
alles ausprobiert-und nix hat geholfen.
Gibt es noch andere Möglichkeiten ein Template in ein anderes einzupacken.
Gruß
Micha
Antworten
Beitrag von Oliver ;-) (49 Beiträge) am Donnerstag, 13.Dezember.2001, 12:02.
Re: Formular mit include-Befehl
Stell doch mal die Links zu deinen Templates hier rein.
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 12:31.
Re: Formular mit include-Befehl
Antworten
Beitrag von Oliver ;-) (439 Beiträge) am Donnerstag, 13.Dezember.2001, 12:55.
Re: Formular mit include-Befehl
Hmmm...
So richtig kann ich es mir auch nicht erklären. Was mir nur auffällt, dass du in allen "include-Templates" den kompletten HTML-Code drin hast. Also auch <html> und <body> u.s.w.. Den brauchst du dort aber nicht. Dadurch hast du, wenn du in den Quelltext deiner Startseite gehst, mehrmals z.B. den <body>tag drin. Aber ich denke das dies hier nicht das Problem ist.
Wenn ich es richtig sehe, sollen hier nur ein Eingabeformular ausgegeben werden. Warum "strickst" du das nicht einfach mit der Hand?
Dies kannst du dann auch per include reinholen.
Oliver ;-)
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 13:21.
Re: Formular mit include-Befehl
Hallo Oliver,
das liegt daran, dass ich erst mal ausprobieren wollte, wie eine Startseite mit include überhaupt funktioniert.
Die Templates stehen alle normalerweise für sich
Zu Deiner Anregung. Das Eingebeformular mit der Hand zu stricken-ja das habe ich mir auch überlegt.
Das würde ich noch hinbekommen, aber das Ganze soll neben der Dateneingabe auch mit einer E-Mailbenachrichtigung verbunden sein und da habe ich keine Ahnung wie ich zu Fuß die zweifellos geniale "put_mail-Funktion" ersetzten kann.
Vielleicht hast Du eine Bastelanleitung.
Gruß
Micha
Antworten
Beitrag von Oliver ;-) (49 Beiträge) am Donnerstag, 13.Dezember.2001, 13:37.
Re: Formular mit include-Befehl
Ja, du baust dir ein Zieltemplate dort schreibst du z.B. das rein:
<perl>
put undef,"scheck_neu"; ## damit werden die Daten aus dem Formular in die DB eingetragen
mail $E-Mail,"Online-Formular","Vielen Dank für Ihre Eingaben in unserem Online-Formular",'jost@rathaus-buerstadt.de',"","Micha Jost","","";
</perl>
So müsste es eigentlich funktionieren. Das hat auch den Vorteil, dass der User auch eine Mail erhält.
Grüße
Oliver ;-)
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 14:16.
Re: Formular mit include-Befehl
Hallo Oliver,
noch mal für Dummies.
Ich baue mein Formular und stelle es in die Startseite. Gut schaffe ich.
Ich baue ein Zieltemplate mit dem Titel: echo, da kommt das rein was Du mir gestrickt hast. Die Adresse an die eingegenen Daten kommen ist "jost@rathaus-Buerstadt.de".
Wie erfolgt den jetzt die Verknüpfung im Formular zum Zieltemplate??
Gruß Micha
Antworten
Beitrag von Oliver ;-) (439 Beiträge) am Donnerstag, 13.Dezember.2001, 14:50.
Re: Formular mit include-Befehl
Unabhänig davon, ob jetzt der Vorschlag von Sander funktioniert - kann übrigens sein, da das Template scheck_neu ja durch das include ja mit der Startseite verbunden wird...- hier mal ein Vorschlag von mir:
<img src=http://www.rathaus--uerstadt.de/bilder/online.gif>
<p>Neuer Eintrag:</p><table><form action="baseportal.pl?htx=/$htx&cmd=addOnline" method="post" enctype="multipart/form-data"><input type=hidden name="htx=" value="$htx"><input type=hidden name="cmd=" value="addOnline"><tr><td align=right><font size=2 face=arial,helvetica>Nachricht:</td><td><font size=2 face=arial,helvetica><textarea name="Nachricht:=" cols=50 rows=4 wrap=virtual>
Bitte geben Sie hier Mängel, Anregungen und Wünsche ein. Wir sind bestrebt die Probleme so schnell es geht zu beheben.
Sie werden von uns benachrichtigt.
Vielen Dank</textarea></td></tr><tr><td align=right><font size=2 face=arial,helvetica>Telefon:</td><td><font size=2 face=arial,helvetica><input type="text" name="Telefon:=" size=20 value="Ihre Telefonnummer"></td></tr><tr><td align=right><font size=2 face=arial,helvetica>E-Mail:</td><td><font size=2 face=arial,helvetica><input type="text" name="E-Mail:=" size=30 value=""></td></tr><tr><td></td><td nowrap><input type=submit value="Abschicken"> <input type=reset value="Zurücksetzen"> </td></tr></form></table>
<perl>
if ($cmd eq "addOnline")
{
put undef,"scheck_neu"; ## damit werden die Daten aus dem Formular in die DB eingetragen
mail $E-Mail,"Online-Formular","Vielen Dank für Ihre Eingaben in unserem Online-Formular",'jost@rathaus-buerstadt.de',"","Micha Jost","","";
out "Vielen Dank für deinen Vorschlag !";
}
</perl>
Dabei rufst du das Template über <form action="baseportal.pl?htx=/$htx&cmd=addOnline"... auf. In dem Fall ist es dann ein "Selbstaufruf" deiner Startseite. Zusätzlich gibt es dann noch die Ausgabe der "Danksagung".
Es werden so zwei Mails verschickt. Eines an den User und eines an dich.
Oliver ;-)
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 16:32.
Re: Formular mit include-Befehl
Hallo Oliver,
vielen Dank für Deinen Einsatz. Wenn klappen würde wäre das ein Super-Tool.
Wobei ich das noch nicht so ganz gerafft habe, wie denn die Daten in die Datei scheck_neu kommen.
Das Template wo das Formular drinsteht heisst ...startseite. Die Datenbank heisst scheck_neu. Vermutlich muss ich die htx Adressen noch umstricken.
Bei Formularen hab ich noch überhaupt keinen Schimmer mit der Syntax.
Dein Code hat irgendwo noch einen kleinen Fehler.
[ Fehler: (perl) in /rathaus-buerstadt.de/onlineformulare/startseite: syntax error at (eval 161) line 2, near "in die" ]
Übrigens, Sander hatte recht, wenn die db im Template drinsteht, dann funktioniert include sogar mit reichlich Perl drin.
Gruß Micha
Antworten
Beitrag von Oliver ;-) (439 Beiträge) am Donnerstag, 13.Dezember.2001, 18:06.
Re: Formular mit include-Befehl
Hallo Micha,
die Daten kommen über
in die Datenbank.
Das Ganze ist eigentlich ziemlich simpel:
Über das "form action..." werden die eingegebenen Daten zu irgendeinem Template übertragen. In diesem Fall durch die Variable "$htx" in der Url einfach an das aktuelle Template geschickt. Das hat den Vorteil, dass du die aktuelle Seite nicht verlassen musst.
Unterhalb des Formulars (oder irgendwo in deinem Template) ist der kleine Perl-Code mit der if-Bedingung eingebaut:
...
Diese Bedingung ist gegeben, wenn du das Formular abschickst (siehe das Ende der Url &cmd=addOnline). Und dann werden die Befehle nach dem "if" ausgeführt.
Zu der Fehlermeldung: Vielleicht nimmst du einfach mal den Kommentar nach dem "put undef..." raus (ab ##).
Grüße
Oliver ;-)
P.S.: Mit Perl zu arbeiten ist gar nicht so schwer und viel flexibler...
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 13.Dezember.2001, 13:53.
Re: Formular mit include-Befehl
Gib mal im includetemplate die db mit an - vielleicht hilft das dann
Sander
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 14:24.
Re: Formular mit include-Befehl
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 13.Dezember.2001, 14:28.
Re: Formular mit include-Befehl
ne, ich meine im do action bei dem includiertem Template
Sander
Antworten
Beitrag von Micha Jost (347 Beiträge) am Donnerstag, 13.Dezember.2001, 16:34.
Re: Formular mit include-Befehl
Hallo Sander,
und genau so war´s. Big point.
Danke
Micha
Antworten