[PHP] die( ), hoe laat ik alles buiten <? ?> zien?

Pagina: 1
Acties:

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Topicstarter
Ik heb met PHP de onderstaande code.
code:
1
2
3
4
5
<html>.....
<?
mysql_connect(bestaatniet, user, password) or die("Pech gehad...");
?>
....</html>

Bovenstaande code levert de volgende output op:
code:
1
<html>.....Pech gehad...

Nu zou ik graag hebben, dat de rest van de HTML, dus alles na de ?> tag, gewoon wordt gedisplayed, omdat m'n layout anders zwaar naar de (...) wordt geholpen :)
Een mogelijkheid is natuurlijk het maken van een functie die de rest van de layout als footer.html include neemt en dan 'die()' aanroept, maar dat ontneemt PHP het hele idee van 'een script embedded in een HTML'.

Is er een alternatief, om dit wel netjes te laten werken?

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
code:
1
2
3
4
5
6
7
8
9
$result = mysql_connect(...blaatschaap...);
if ($result)
{
   gelukt -> normale pagina
}
else
{
   niet gelukt -> foutmelding
}

dat is een alternatief.

Verwijderd

Moet je de result van de mysql_connect(); checken

Dus iets van:
$test = mysql_connect(bla,bla,bla);
if(!$test){ echo "pech gehad"; exit; }

Veel plezier ;)

Edit: grr net 2ms later(bij benadering) + een paar foutjes

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Je kan ook al die functionaliteit in een functie stoppen...

En vervolgens de functie afbreken als het niet goed gaat (dmv return) de rest kan je dan wel laten zien, eventueel zelfs met een error-melding.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
checkBannedIP(getIPAddress()) and dieNicely(BANNED,2,1);

Die functie heeft een foutmelding (met id banned), foutnummer 2, en fase 1.

Fase staat voor, of er nog een header boven moet en dergelijke.

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Topicstarter
Bedankt voor de replies :)
Jammer dat er dus niet iets is, waarmee het doel direct te bereiken is, en wat er ook nog mooi embedded uitziet. Ik denk dat ik maar voor de onderstaande code ga, die vind ik dan nog het meest gepast. Ik had die code al wat eerder bedacht, maar ik hoopte dat het mooier kon.
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
function dieNicely($bericht) { 
   echo $bericht; 
   echo "restvandeHTML"; //Kan ook als include natuurlijk, lijkt me wat makkelijker :P
   die(); 
}; 
mysql_connect(bestaatniet, user, password) or dieNicely("Pech gehad..."); 
nog_een_functie_die_kan_mislukken(...) or dieNicely("Oeps"); 
en_nog_eentje(...) or dieNicely("T is toch wat :)"); 
dieNicely(); 
?>

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Op donderdag 27 december 2001 16:55 schreef ACM het volgende:
Je kan ook al die functionaliteit in een functie stoppen...

En vervolgens de functie afbreken als het niet goed gaat (dmv return) de rest kan je dan wel laten zien, eventueel zelfs met een error-melding.
Dat is inderdaad ook wel een goede... Dan heb je toch het hele script geembed in de html en niet andersom :)

Je zet de hele php zut in een functie, en als het connecten enzo niet lukt, dat hij dan een foutmelding geeft &zo, niet doodgaat, maar verder niets meer uitvoert in het script...

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Ik heb me scripts altijd op deze manier opgebouwd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// database verbinding maken
// include header
...
if ($action == "blaat1")
{
    ...
}
else if ($action == "blaat2")
{
    ...
}

if ($action == "showmsg")
{
    // bericht laten zien
    echo $message;
}
...
// include footer

bij het connecten hoef je dan alleen dit te doen:
code:
1
2
3
4
5
if (! mysql_connect(blaat))
{
    $action = "showmsg";
    $message = "foutmelding";
}

gaat natuurlijk op dezelfde manier bij andere fouten.

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Probleem daarbij is dat je als je fouten later in het script tegenkomt, dat je dan allemaal lelijke break's oid krijgt in de if() blokken van een bepaalde actie die moet worden uitgevoerd.

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
daarvoor hebben we goto :) errorhandling vind ik het enige waarbij goto niet >:) evil >:) is. totdat PHP excepties heeft natuurlijk ;)

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Topicstarter
Op donderdag 27 december 2001 20:23 schreef marcusk het volgende:
daarvoor hebben we goto :)
Jaja, in PHP >:) :P :+

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


  • Robinski
  • Registratie: September 2000
  • Laatst online: 15-09 21:10

Robinski

A.K.A. RHarmsen

ik zelf maak gewoon gebruik van includes
vind ik wel zo handig (die hele site bestaat zowat uit includes)
PHP:
1
2
3
4
5
<?
$db = mysql_connect("$host", "$user", "$pass") or die( include("teinculdenfile.php"));

.....
?>

10xAXItec AC-265P = 2,650kWp @ SolarEdge SE2200 - PVOutput


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 17:15

Kees

Serveradmin / BOFH / DoC
register_shutdown_function is ook erg handig voor dit soort dingen :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op donderdag 27 december 2001 20:31 schreef bramvrzt het volgende:
Jaja, in PHP >:) :P :+
Hmmm, PHP heeft idd geen goto :+ Hehe :)

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Topicstarter
Op vrijdag 28 december 2001 00:16 schreef Kees het volgende:
register_shutdown_function is ook erg handig voor dit soort dingen :)
Daar had ik ook aan gedacht, maar helaas:
The registered shutdown functions are called after the request has been completed (including sending any output buffers), so it is not possible to send output to the browser using echo() or print(), or retrieve the contents of any output buffers using ob_get_contents().

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


Verwijderd

Ben ik nou van de pot afgepleurd, of bestaat er niet zoiets als error handling in PHP? |:(

Zie ook http://www.php.net/manual/en/ref.errorfunc.php

/me zucht

Vind je het gek dat er zoveel bagger software wordt gemaakt als mensen nieteens gebruik maken van error handling? Waar denk je dat het voor gemaakt is? Niet voor de sier ofzo ...

  • straat
  • Registratie: Augustus 2000
  • Laatst online: 30-08 20:00
Op vrijdag 28 december 2001 00:43 schreef MrX het volgende:
Ben ik nou van de pot afgepleurd, of bestaat er niet zoiets als error handling in PHP? |:(

Zie ook http://www.php.net/manual/en/ref.errorfunc.php

/me zucht

Vind je het gek dat er zoveel bagger software wordt gemaakt als mensen nieteens gebruik maken van error handling? Waar denk je dat het voor gemaakt is? Niet voor de sier ofzo ...
Op die page staat steeds "error" enzo, ik denk dat ie niet goed werkt :+

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 30-08 10:27

Wacky

Dr. Lektroluv \o/

Op zaterdag 29 december 2001 00:51 schreef Straat het volgende:

[..]

Op die page staat steeds "error" enzo, ik denk dat ie niet goed werkt :+
:+

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Straat:
Op die page staat steeds "error" enzo, ik denk dat ie niet goed werkt :+
*proest* rotflol

</flauw>


die is ranzig!

Is helemaal niet nodig. Gewoon wrappen in een class of functie en allemaal netjes afhandelen in plaats van op te geven na een fout, wat die in feite doet.
or die maakt gewoon een loser, een quitter van je programma!
"Als het niet lukt, val ik wel gewoon dood op de grond neer"

zo punt is wel duidelijk geloof ik :+

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1