Funktion zur errorausgabe. Warum keine ausgabe?

XeN

Mitglied
Hallo,

habe eine Funktion geschrieben der ich ein Array mit fehlermeldungen übergebe, und die Funktion zeigt mir eine Tabelle mit den Fehlermeldungen.

Leider erscheint nur ein Weisser Browser wenn ich einen fehler Produziere der zum ausführen der Funktion führt.

PHP:
<?php
function error($err) {
?>	

	<table border="0" width="50%" align="center">
		<tr>
			<td class="border" bgcolor="e0e0e0">
				<b>Es sind folgende Fehler aufgetreten<b>
			</td>
		</tr>
		<tr>
			<td >
				<ul>
					<?php
						//jeder arrayeintrag in err[] wird ausgegeben
						foreach ($err as $error) {
							?>
								<!-- für jeden Fehler einen absatz -->
								<li type="square"><?php echo $error; ?></li>
							<?php	
						}			
					?>
				</ul>
			</td>
		</tr>
		<tr>
			<td align="center" class="border" bgcolor="e0e0e0">
				<button onclick="javascript:history.back()" class="button">Zur&uuml;ck</button>
			</td>
		</tr>
	</table>
	
<?php
}
?>

Hier die Stelle wo die Funktion aufgerufen wird.

PHP:
if (isset($_POST['submit'])) {
	
	$err = array();
	
	// Überpfüfen ob ein Name eingegeben wurde
	if ($_POST['name'] == "") {
		
		$err[] = array("Sie haben keinen Namen eingegeben");
		$fehler = 1;

	// Überprüfen ob eine eMail - Adresse eingegeben wurde
	} elseif ($_POST['email'] == "") {
		
		$err[] = 'Sie haben keine eMail - Adresse eingegeben';
		$fehler = 1;
		
	// Überprüfen ob ein Text eingegeben wurde	
	} elseif ($_POST['text'] == "") {
		
		$err[] = 'Sie haben keinen Text eingegeben';
		$fehler = 1;
		
	} elseif ($fehler == 1) {
		
		error($err);
		
	} elseif ($fehler != 1) {
	// DEBUG: Ausgabe der übermittelten Variablen
		echo $_POST['name'];
		?> <br> <?php
		echo $_POST['email'];
		?> <br> <?php
		echo $_POST['text'];
		?> <br> <?php
	// DEBUG ENDE
	// Hier Eintragung in die Datenbank
	// Eintragung beendet
	}
	
}else {

Hoffe ihr könnt den Fehler finden. Ich wette es ist wieder so eine Kleinigkeit die man schnell übersieht =(.

mfg XeN
 
Ich bin mir nicht sicher... aber ich glaub nicht, dass man innerhalb von Funktionen PHP-Tags Öffnen/Schliessen kann(habs noch nie probiert:-)).
Nimm das mal weg und gebe den ganzen Tabellencode per echo aus.
 
Hallo,

könnte ein Grund sein. Allerdings funktioniert es auch nicht wenn ich den Code aus der Funktion direkt in den Code rein schreibe. Das ist ja das was mich so wundert.

mfg XeN
 
XeN hat gesagt.:
Hallo,

könnte ein Grund sein. Allerdings funktioniert es auch nicht wenn ich den Code aus der Funktion direkt in den Code rein schreibe. Das ist ja das was mich so wundert.

mfg XeN

Ich würde mir mal an deiner Stelle den Tutbereich Stringverkettung auf tut.php-q.net empfehlen und zwar dringendst.

@sven du kannst die Klammern so ost auf zu zu machen wie und wo du willst :)
 
//Versuch noch einmal
<?php //codename: test.php

function error($err) {
?>

<table border="0" width="50%" align="center">
<tr>
<td class="border" bgcolor="e0e0e0">
<b>Es sind folgende Fehler aufgetreten<b>
</td>
</tr>
<tr>
<td >
<ul>
<?php
//jeder arrayeintrag in err[] wird ausgegeben
foreach ($err as $error) {
?>
<!-- für jeden Fehler einen absatz -->
<li type="square"><?php echo $error; ?></li>
<?php
}
?>
</ul>
</td>
</tr>
<tr>
<td align="center" class="border" bgcolor="e0e0e0">
<button onclick="javascript:history.back()" class="button">Zur&uuml;ck</button>
</td>
</tr>
</table>

<?
}

if (isset($submit))
{
//include("probe2.php");
$err = array();
$fehler = 0;
// Überpfüfen ob ein Name eingegeben wurde
if ($_POST['name'] == "")
{
$err[] = "Sie haben keinen Namen eingegeben";
$fehler = 1;
// Überprüfen ob eine eMail - Adresse eingegeben wurde
}
if ($_POST['email'] == "")
{
$err[] = 'Sie haben keine eMail - Adresse eingegeben';
$fehler = 1;
// Überprüfen ob ein Text eingegeben wurde
}
if ($_POST['text'] == "")
{
$err[] = 'Sie haben keinen Text eingegeben';
$fehler = 1;
}
if ($fehler==1)
{
error($err);
}
else
{

echo"<b>".$name."<br>".$email."<br>".$text."</b>";
}
}
else
{?>
<html><head></head><body><form action="test.php" method="post">
<br> Name:<input type ="text" name="name" size ="30">
<br> E-Mail:<input type ="text" name="email" size="30">
<br> kommentar:<textarea name="text" cols ="30 " rows="5">
<br><input type="submit" name="submit" value="ok">
<input type="reset" name"zurueck" value ="zurueck">
</form></body></html>
<?php
}

?>
 
Sicaine hat gesagt.:
Ich würde mir mal an deiner Stelle den Tutbereich Stringverkettung auf tut.php-q.net empfehlen und zwar dringendst.

Ich wüßte jetzt nicht welche strings ich da verketten sollte? Wenn ich stringverkettung richtig sehe bedeutet es das ich mehrere strings in einen neuen zusammenfüge, oder mehrere an einen anderen anhänge?

Öhm, kannst du deinen COde nochmal in die code tags schreiben, steige da irgendwie nicht durch.

Scheint als würde es bei diesem code mehrere dateien geben. Das möchte ich vermeiden. Es soll nur die eine datei geben und dann die functions.php mehr nicht.

Aber danke für eure hilfen bis jetzt, werde sie in einer ruhigen minute mal checken.

mfg XeN
 
Zuletzt bearbeitet:
XeN hat gesagt.:
Ich wüßte jetzt nicht welche strings ich da verketten sollte? Wenn ich stringverkettung richtig sehe bedeutet es das ich mehrere strings in einen neuen zusammenfüge, oder mehrere an einen anderen anhänge?

Öhm, kannst du deinen COde nochmal in die code tags schreiben, steige da irgendwie nicht durch.

Scheint als würde es bei diesem code mehrere dateien geben. Das möchte ich vermeiden. Es soll nur die eine datei geben und dann die functions.php mehr nicht.

Aber danke für eure hilfen bis jetzt, werde sie in einer ruhigen minute mal checken.

mfg XeN

Wie wärs mit Rechtschreibung?

echo $_POST['name'];
?> <br> <?php
echo $_POST['email'];
?> <br> <?php
echo $_POST['text'];
?> <br> <?php

echo $_POST['name'].'<br>'.$_POST... wie wärs hier?
 
Btw: Dieses Zerstückeln des Codes kann ich auch nchit ausstehen, dort PHP, da HTML, dann noch die tausenden von PHP-Tags, da verliert man doch nach 100 Zeilen schon den Überblick...
 
Zurück