Überprüfung von Formulardaten
Posted: Wed Mar 11, 2009 9:32 am
Moin,
ich muss unsere Firmenseite aktualisieren und habe dazu natürlich zu CMSms gegriffen - was sonst!?
Nun habe ich allerdings ein (hoffentlich) kleines Problem. Auf der alten Seite haben wir ein Formular welche eine Onlinekennung abfragt. Hier der Code:
(Das der code vielleicht noch nicht ganz valid ist, ist im Moment zweitrangig. Es geht ersteinmal um die korrekte technische Abhandlung der Vorgänge.)
Wie ihr oben sehen könnt, geht der Formularinhalt nach der Eingabe an die Seite "checkid". Diese hat einen UDT {checkid} als einzigsten Inhalt. Der UDT {checkid} sieht folgendermaßen aus:
Nach erfolgreicher Überprüfung der Eingaben soll ein weiteres Formular (formular.lib) angezeigt werden welches noch weitere Daten abfragt.
Nun habe ich allerdings das Problem, das nach dem Absenden des ersten Formulars (Mitgliedsnummer und Onlineid) keine Angaben auf dem Bildschirm erscheinen. Die Seite "checkid" bleibt inhaltslos. Es wird nur das Template angezeigt. Anschauen könnt ihr Euch das unter http://www.friesoyther-wasseracht.de/cm ... ung-online
Als Mitgliedsnummer kann 1234 und als Onlineid kann 5678 verwand werden.
Kann es sein, das die Formulardaten "unterwegs" verloren gehen? Weder in den Logfiles noch im HTML-Code steht irgendetwas verdächtiges.
Um es vorweg zu nehmen: Ja die Dateien sind für den Webserver lesbar und auf die DB wird auch zugegriffen. Aber selbst wenn aus der DB nur Grütze kommen sollte, müsste doch zumindestens ein Fehler angezeigt werden!?
Ohne dem CMSms-Framework drum herum funktioniert das alles ganz wunderbar. Merkwürdig.
Gruß,
Christian
ich muss unsere Firmenseite aktualisieren und habe dazu natürlich zu CMSms gegriffen - was sonst!?

Nun habe ich allerdings ein (hoffentlich) kleines Problem. Auf der alten Seite haben wir ein Formular welche eine Onlinekennung abfragt. Hier der Code:
Code: Select all
<h2>Rechnung per E-Mail - Überprüfung der Daten.</h2>
<p> </p>
<h3>Sie möchten am Service <em>Rechnung per E-Mail</em> teilnehmen?</h3>
Alles was Sie dazu benötigen ist Ihre Mitgliedsnummer, Online-ID und Ihre Bankverbindung. Die Mitgliedsnummer und die Online-ID finden Sie rechts oben auf Ihrem Beitragsbescheid.<br />
<p>Bitte geben Sie zur Kontrolle die Daten in die untenstehenden Felder ein.</p>
<p>Achten Sie bitte darauf, dass die Mitgliedsnummer <strong>ohne</strong> die trennenden Schrägstriche eingegeben wird. So wird z.B. aus der Nummer 03/1234/56789 die Eingabe <strong>03123456789</strong>.</p>
<form action="http://www.friesoyther-wasseracht.de/cmsmadesimple/index.php?page=checkid" method="post">
<table border="0" cellspacing="3" cellpadding="3" rules="none">
<tbody>
<tr bgcolor="#dddddd">
<td align="right"><strong>Mitgliedsnummer:</strong></td>
<td><input maxlength="15" name="hebenr" size="15" type="text" /></td>
</tr>
<tr bgcolor="#dddddd">
<td align="right"><strong>Online-ID:</strong></td>
<td><input maxlength="15" name="id" size="15" type="text" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Weiter" /></td>
</tr>
</tbody>
</table>
</form> <img style="border: 0pt none; margin: 5px;" src="uploads/images/bescheid.jpg" alt="Beispiel eines Beitragsbescheides" />
Wie ihr oben sehen könnt, geht der Formularinhalt nach der Eingabe an die Seite "checkid". Diese hat einen UDT {checkid} als einzigsten Inhalt. Der UDT {checkid} sieht folgendermaßen aus:
Code: Select all
<?
$conn = pg_connect("dbname=fwabill");
if (!$conn) {
$msg = "Es konnte keine Verbindung zum Datenbankserver hergestellt werden!";
}
else {
pg_exec($conn,"set datestyle to german");
}
?>
<h2>Rechnung per E-Mail</h2>
<p>
<?
$hebenr = $_POST["hebenr"];
$id = $_POST["id"];
if ($hebenr === NULL || $id === NULL || $hebenr === '0' || $id === '0' || $hebenr === ''|| $id === '' || $id === ' ' || $hebenr === ' ')
{
print "<font color=\"red\">Geben Sie bitte beide Werte korrekt ein!</font><p>
<a href=\"http://www.friesoyther-wasseracht.de/cmsmadesimple/index.php?page=rechnung-online\">
Bitte wiederholen Sie die Eingabe!</a>";
} else {
$sql = sprintf ("SELECT hebenr, onlineid FROM checkid WHERE hebenr=%s AND onlineid=%d", $hebenr, $id);
$res_chkid = @pg_exec($conn, $sql) or die ("Konnte die Tabelle nicht abfragen!");
$rows = pg_numrows($res_chkid);
if ($rows==1)
{
include "formular.lib";
} else {
print "<font color=\"red\">Die Pruefung der Online-ID schlug fehl!</font><p>
<a href=\"http://www.friesoyther-wasseracht.de/cmsmadesimple/index.php?page=rechnung-online\">
Bitte wiederholen Sie die Eingabe!</a>";
}
}
?>
Nun habe ich allerdings das Problem, das nach dem Absenden des ersten Formulars (Mitgliedsnummer und Onlineid) keine Angaben auf dem Bildschirm erscheinen. Die Seite "checkid" bleibt inhaltslos. Es wird nur das Template angezeigt. Anschauen könnt ihr Euch das unter http://www.friesoyther-wasseracht.de/cm ... ung-online
Als Mitgliedsnummer kann 1234 und als Onlineid kann 5678 verwand werden.
Kann es sein, das die Formulardaten "unterwegs" verloren gehen? Weder in den Logfiles noch im HTML-Code steht irgendetwas verdächtiges.
Um es vorweg zu nehmen: Ja die Dateien sind für den Webserver lesbar und auf die DB wird auch zugegriffen. Aber selbst wenn aus der DB nur Grütze kommen sollte, müsste doch zumindestens ein Fehler angezeigt werden!?
Ohne dem CMSms-Framework drum herum funktioniert das alles ganz wunderbar. Merkwürdig.
Gruß,
Christian