Hi ich habe einen seltsamen Feher...
Ich habe mit meinen Klassenkameraden ein relativ großes Script geschrieben und bekomme auch von PHP aus keinen Fehler mehr. Das Problem ist dass das Formular (24-47) nicht aufgerufen wird. Könnte es vielleicht an irgendwelchen Echobefehlen liegen oder das es an einer falschen stelle liegt?
PHP-Code:
<html>
<head>
<title>Schwarzes Web-Brett</title>
</head>
<?php
function datenbank_verbinden()
{
$db_server='10.2.176.22';
$db_user='root';
$db_passwort='123456';
$db_name='julian_hechler';
$db_verbindung=mysql_connect($db_server,$db_user,$db_passwort);
if(!$db_verbindung)
die("Der Server kann nicht erreicht werden.");
if(!mysql_select_db($db_name,$db_verbindung))
die("Die Datenbank kann nicht angesprochen werden.");
return $db_verbindung;
}
function gib_rubriken(&$p_rubriknummer,&$p_rubriknummer,$p_rubrikbezeichnung)
{}
function formular_aufbauen($p_rubriknummer,$p_rubrikbezeichnung)
{
?>
<form action="<?$_SERVER['PHP_SELF']?>" method="get">
<b>Nickname:</b> <input type="text" name="nickname"><br>
<b>E-Mail:</b><input type="text" name="email"><br>
<b>Anzeigentext:</b>
<input type="text" name="anzeigentext" size=40
maxlength=255><br><br>
<b>Waehlen Sie bis zu drei Rubriken:</b><br>
<?php
for($i=0;$i<count($p_rubriknummer);$i++)
{
?>
<input type="checkbox" name="rubrik[]"
value="<?php echo $p_rubriknummer[$i]?>">
<?php
echo $p_rubrikbezeichnung[$i]."<br>";
}
?>
<br><input type="submit" name="ausfuehren" value="Registrieren">
</form><br><br>
<?php
}
function check_nickname($p_verbindungskennung)
{
$query=sprintf("SELECT nickname FROM inserent
WHERE nickname='%s'
AND email!='%s'",
$_GET['nickname'],
$_GET['email']);
$ergebnis=mysql_query($query,$p_verbinungskennung);
if(mysql_num_rows($ergebnis)!=0)
{
echo"<b>Fehler! Der Name ist leider schon vergeben.
Wählen Sie bitte einen anderen Namen oder passende E-mail-Adresse</b><br><br>";
return false;
}
return true;
}
function check_email ($p_verbindungskennung)
{
$query=sprintf("select nickname
from inserent
where nickname='%s'
and email!='%s'",
$_GET['nickname'],
$_GET['email']);
$ergebnis=mysql_query($query,$p_verbinungskennung);
if(mysql_num_rows($ergebnis)!=0)
{
echo"<b>Fehler! Der Name ist leider schon vergeben.
Wählen Sie bitte einen anderen Namen oder passende E-mail-Adresse</b><br><br>";
return false;
}
return true;
}
function check_eintraege()
{
if(empty($_GET['nickname']))
{
echo "<b>Fehler! Sie haben keinen Namen angegeben.</b><br><br>";
return false;
}
if(empty($_GET['email']))
{
echo "<b>Fehler! Sie haben keine E-mail angegeben.</b><br><br>";
return false;
}
if(empty($_GET['anzeigentext']))
{
echo "<b>Fehler! Sie haben keinen Anzeigentext eingegeben.</b><br><br>";
return false;
}
if(!isset($_GET['rubrik']))
{
echo "<b>Fehler! Sie haben keine Rubrik ausgewählt.</b><br><br>";
return false;
}
if(count($_GET['rubrik'])>3)
{
echo "<b>Fehler! Sie koennen maximal 3 Rubriken auswählen.</b><br><br>";
return false;
}
return true;
}
function schreib_inserat($p_verbindungskennung)
{
$query=sprintf("select inserentennummer
from inserent
where nickname='%s'
and email='%s'",
$_GET['nickname'],
$_GET['email']);
$ergebnis=mysql_query($query,$p_verbindungskennung);
if(mysql_num_row($ergebnis)!=0)
{
//inserent ist schon in der DB, inserentennummer merken
$zeile=mysql_fetch_array($ergebnis);
$inserentennummer=$zeile['inserentenummer'];
}
else
{
//neuen inserenten anlegen un inserentennummer merken
$query=sprintf ("INSERT INTO inserent
SET nickname='%s',
email='%s'",
$_GET['nickname'],
$_GET['email']);
$ergebnis=mysql_query (query, $p_verbindungskennung);
$inserentennummer=mysql_insert_id();
}
//Anzeigentext abspeichern und Anzeigenummer merken
$query=sprintf ("INSERT INTO anzeige
SET anzeigentext='%s',
anzeigendatum=CURDATE(),
inserentennummer=$inserenetennummer",
$GET_['anzeigentext']);
$ergebnis=mysql_query($query,$p_verbindungskennung);
$anzeigennummer=mysql_insert_id();
//zugeordnete Rubriken abspeichern
$rubrikarray=array();
$rubrikarray=$GET['rubrik'];
$i=0;
while($i<count($rubrikarray))
{
$query="INSERT INTO veroeffentlichen
SET rubriknummer=$rubrikarray[$i],
anzeigenummer=$anzeigenummer";
$ergebnis=mysql_query($query,$p_verbindungskennung);
$i++;
}
echo "Ihre Anzeige wurde entgegengenommen.<br><br>";
mysql_close($p_verbindungskennung);
}
function anzeige_eintragen()
{
$verbindungskennung=datenbank_verbinden();
if(check_nickname($verbindungskennung)
&&check_email($verbindungskennung)
&&check_eintraege())
schreib_inserat($verbindungskennung);
}
function formular()
{
$verbindungskennung=datenbank_verbinden();
gib_rubriken($rubriknummer,$rubrikbezeichnung,
$verbindungskennung);
formular_aufbauen($rubriknummer,$rubrikbezeichnung);
}
echo "<b>Anzeige aufgeben</b><br><br>";
echo "<a href=\"./index.php\">Zurueck</a><br><br>";
if(isset($_GET['ausfueren']))
anzeige_eintragen();
//von hier werden die Funktionen anzeige_eintragen() und
//formular() aufgerufen
?>
</body>
</html>