die()

DarkManX

Erfahrenes Mitglied
Hallo,

ich habe eine Tabelle. Oben und unten ist ein Bild, in der Mitte ein Script. Im Script habe ich den Befehl die() benutzt. Wenn der einsetzt, wird das untere Bild nicht mehr angezeigt. Wie kann ich das PHP-Script stoppen (mit einer Meldung), den HTML-Code aber weiter auswerten lassen?

mfg
DarkManX
 
BabyMitSchnully hat gesagt.:
schreib mal den Zusammenhang hier rein und was genau du vorhast. Dann vielleicht noch den Quellcode...

Gruß

Habe ich doch. Wie gesagt, wenn ich die() mache, wird der HTML Code nicht weiter ausgeführt. Für die es ganz genau haben wollen:

PHP:
<td align="right" valign="top"> <div align="center">
<?
...
if(mysql_num_rows($sql) == 0) { die('Name nicht vorhanden.<br><a href="javascript:history.back()">Zurück!</a>'); }
...
?>
</td>
</tr>
<tr>
<td align="right" valign="top"><div align="center"><br>
<table class="topic_spalte" width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center"><font class="topic_font">Copyright 2004 Kamninya
Productions</font></td>
</tr>
</table>

Wenn die greift, wird "Copyright 2004 Kamninya Productions" nicht mehr angezeigt.

mfg
DarkManX
 
Versuch mal anstatt

if(mysql_num_rows($sql) == 0) { die('Name nicht vorhanden.<br><a href="javascript:history.back()">Zurück!</a>'); }
...

das

mysql_num_rows($sql) or die('Name nicht vorhanden');
Sonst ein echo nehmen. Das klappt auf jeden Fall
 
Arbeite mit switches:
[phpf]switch[/phpf]

Setze statt [phpf]die[/phpf] lieber mit [phpf]switch[/phpf] eine Weiche. So kannst Du prima mehrere (Fehler-)Optionen in Deinen Scripts setzen.

;)
 
Naja,
ist nicht wirklich die Lösung dabei. Denn ich habe ein paar Überprüfungen. Wenn ich print bzw. echo nehmen würde, würden bei zb. einem leeren Form viele Fehlermeldungen untereinander stehen.

Code:
Geben Sie bitte einen Namen ein.
Zurück!
Geben Sie bitte eine korrekte Emailadresse ein.
Zurück!
usw.

Das wollte ich mit die() vermeiden. Mit switch kann man auch nicht machen, denn es ist immer nur für ein Befehl.

mfg
DarkManX
 
Wenn du echo benutzt, dann musst du die Klammern wegnehmen.

Nicht so...
if(mysql_num_rows($sql) == 0) { die('Name nicht vorhanden.<br><a href="javascript:history.back()">Zurück!</a>'); }


sondern...
if(mysql_num_rows($sql) == 0)
{
echo "Name nicht vorhanden.<br><a href=\"javascript:history.back()\">Zurück!</a>";
}
 
BabyMitSchnully hat gesagt.:
Wenn du echo benutzt, dann musst du die Klammern wegnehmen.

Nicht so...
if(mysql_num_rows($sql) == 0) { die('Name nicht vorhanden.<br><a href="javascript:history.back()">Zurück!</a>'); }


sondern...
if(mysql_num_rows($sql) == 0)
{
echo "Name nicht vorhanden.<br><a href=\"javascript:history.back()\">Zurück!</a>";
}

Ist mir schon klar, bin ja kein Nub. Mit Klammern würde es sowieso auch gehen. Nur dann kommen die Fehlermeldungen alle hintereinander, wenn mehrere Fehler vorliegen.

mfg
DarkManX
 
DarkManX hat gesagt.:
Naja,
ist nicht wirklich die Lösung dabei. Denn ich habe ein paar Überprüfungen. Wenn ich print bzw. echo nehmen würde, würden bei zb. einem leeren Form viele Fehlermeldungen untereinander stehen.
So wie Du es verwenden würdest habe ich es auch nicht gemeint.
Du kannst überprüfen lassen welche Variablen gesetzt sind und ob davon eine fehlt.
Mit dem Switch könntest Du gezielt mehrere Kategorien bilden und immer das ausgeben lassen, was zutrifft. Ich weiß nicht ob ich mich für Dich verständlich ausdrücke ..
Ein einfaches Beispiel was ich meine:

PHP:
<?
...

$switchvariable = 1; // alles ok

// hier werden nun die variablen überprüft und ggf. fehler gesetzt
if(!isset($variable1)){$switchvariable = 2;$variablenfehler[$variable1] = 1;} || if(!isset($variable2)){$switchvariable = 2;$variablenfehler[$variable2] = 1;} || if(!isset($variable3)){$switchvariable = 2;$variablenfehler[$variable3] = 1;}

switch($switchvariable){
case 1:
 // alles ok
break;
case 2:
 // fehlerauswertung
foreach($variablenfehler) ... etc.
break;
default
echo "Scriptfehler";
}

...

?>
<!-- Hier kommt der statische Inhalt hin, der immer dargestellt werden soll, ob fehler oder nicht -->
...
</html>

Das ganze geht natürlich viel eleganter, aber das Beispiel soll nur verdeutlichen was ich meine :)
 
Zurück