-
PHP-Formular: Problem!
Guten Morgen,
da ich mich lange nicht mehr mit HTML und PHP beschäftigt habe möchte ich langsam mal wieder in die Materie einsteigen. Folgendes Problem, ich habe eine Datenbank und Seite die auf die Datenbank zugreifen kann und ändern "kann". Was aber bisher noch nicht so ganz klappen will. Es wird einfach nicht, dass Ergebnis angezeigt wenn ich denn Submit-Button bestätige. Ich lege hier einfach mal die verschiedenen Sourcecodes bei.
index.php
PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Lehrgangsverwaltung</title>
</head>
<body>
<?php include('mysql.php'); ?>
<table align="center" cellpadding="5" cellspacing="0" width="100px">
<tr name="header">
<td colspan="4"><h1 align="center">Lehrgangsverwaltung</h1></td>
</tr>
<tr name="navigation">
<td align="center"><a href="index.php?id=00"><img src="image/01.jpg" alt="" border="0" /></a></td>
<td align="center"><a href="index.php?id=01"><img src="image/02.jpg" alt="" border="0" /></a></td>
<td align="center"><a href="index.php?id=02"><img src="image/03.jpg" alt="" border="0" /></a></td>
<td align="center"><a href="index.php?id=03"><img src="image/04.jpg" alt="" border="0" /></a></td>
</tr>
<tr name="content">
<td colspan="4"><?php include('content.php'); ?></td>
</tr>
</table>
</body>
</html>
content.php
PHP-Code:
<?php
<?php
if(isset($_GET+++91;'id'+++93;))
{
switch($_GET+++91;'id'+++93;)
{
case '00':
include('home.php');
break;
case '01':
include('teilnehmer.php');
break;
case '02':
include('lehrgaenge.php');
break;
case '03':
include('dozenten.php');
break;
}
}
?>
teilnehmer.php
PHP-Code:
<form action="<?php $_SERVER+++91;'PHP_SELF'+++93; ?>" mehtod="POST" type="text/plain">
<table style="overflow: hidden; font-family:arial;" border="0" cellpadding="5" cellspacing="0">
<tr>
<td>TeilnehmerNR: </td>
<td name="teilnehmerNR"><input type="text" name="teilnehmerNR" alt="" /></td>
</tr>
<tr>
<td>Name: </td>
<td name="teilnehmerName"><input type="text" name="teilnehmerName" alt="" /></td>
</tr>
<tr>
<td>PLZ: </td>
<td name="teilnehmerPLZ"><input type="text" name="teilnehmerPLZ" alt="" /></td>
</tr>
<tr>
<td colspan="2" name="suchen">
<input type="submit" value="Suchen" name="Suchen" />
<input type="submit" value="Anzeigen" name="Anzeigen" />
<input type="submit" value="Anlegen" name="Anlegen" />
</td>
</tr>
</table>
</form>
<?php
if(isset($_POST+++91;"Suchen"+++93;))
{
$teilnehmerNR = $_POST+++91;"teilnehmerNR"+++93;;
$teilnehmerName = $_POST+++91;"teilnehmerName"+++93;;
$teilnehmerPLZ = $_POST+++91;"teilnehmerPLZ"+++93;;
$sql = mysql_query("SELECT * FROM teilnehmer WHERE Name = '$teilnehmerName'");
echo "<table border='1'><tr><td>TNr:</td><td>Name:</td><td>PLZ</td></tr>";
while($row = mysql_fetch_array($sql))
{
echo"<tr><td>$row+++91;0+++93;</td><td>$row+++91;1+++93;</td><td>$row+++91;2+++93;</td></tr>";
}
echo "</table>";
}
if(isset($_POST+++91;"Anzeigen"+++93;))
{
$sql = mysql_query("SELECT * FROM teilnehmer");
echo "<table border='1'><tr><td>TNr:</td><td>Name:</td><td>PLZ</td></tr>";
while($row = mysql_fetch_array($sql))
{
echo"<tr><td>$row+++91;0+++93;</td><td>$row+++91;1+++93;</td><td>$row+++91;2+++93;</td></tr>";
}
echo "</table>";
}
?>
*Keine Ahnung warum, aber die eckigen klammern werden hier durch "+++92" etc ersetzt. Also nicht falsches denken.
-
hast du mal debug-messages und error-logs angesschaut?
Leider schaffen es die Admins ja nicht diesen Bug mit den Quotes zu beheben.
hast du mal geschaut wie der SQL-Query aussieht? Ob dieser erfolgreich abgesetzt wird?
-
Ja dieser wird erfolgreich abgesetzt, wenn ich ohne das Formular arbeite. Hab ich einen Fehler im Quellcode irgendwo?
-
deswegen. mach nen echo im php und schau ob er überhaupt bis uzum execute kommt...
"debuggen"
-
pack mal am Anfang des Dokuments ein error_reporting(-1); hin, dann kriegst du alles angezeigt ws es zu meckern gibt ohne logs zu durchforsten
-
Du inkludierst oben eine mysql.php, dessen Inhalt du allerdings bislang noch nicht veröffentlicht hast. Da du in der teilnehmer.php direkt mit den Querys arbeitest, nehme ich an du hast die Verbindung mit der DB bereits in der mysql.php vorgenommen? Lässt du die erfolgreiche Verbindung in der mysql.php auch überprüfen? Bitte nochmal posten.
Zudem empfehle ich dringend noch mal ein paar Aufzeichnungen zum Thema "Sicherheit in Webanwendungen" zu verschlingen. Ich rede speziell von den unmaskierten SQL Querys und dem PHP_SELF.
-
mysql.php
PHP-Code:
<?php
$mysqlhost = "localhost"; // MySQL Usernamen angeben
$mysqluser = "root"; // MySQL Usernamen angeben
$mysqlpwd = ""; // MySQL Password angeben
$mysqldb = "itknow"; // Datenbank angeben
$verbindung = mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Verbindung zum MySQL-Server ist fehlgeschlagen"); // Stellt die Verbindung zum MySQL Server her
mysql_select_db($mysqldb, $verbindung) or die("Datenbank konnte nicht gefunden werden.");
?>
An der Verbindung, kann es denke ich nicht liegen. Da wenn ich ohne die if-Abfrage arbeite mir z.B. bei "Anzeigen", die Ergebnisse angezeigt werden.
-
Da wenn ich ohne die if-Abfrage arbeite mir z.B. bei "Anzeigen", die Ergebnisse angezeigt werden.
Hier hast du also deine Lösung. Das if() Statement trifft nicht zu.
Könntest du bitte das Script Nopasten? Hier kann man da ganze nicht wirklich anschauen.