aan alle goede dingen komt een eind, webmasterplein.net 2003 - 2013
wij danken jullie voor al mooie momenten die dankzij dit forum ontstonden - Derk, Rutger en Stef

php/mysql foutmelding tonen met opmaak

Je komt er niet helemaal uit bij het scripten? Übergoede functie geschreven? Alles met betrekking tot scripting, kun je hier terecht.

php/mysql foutmelding tonen met opmaak

Berichtdoor Daan » 05 jan 2009 15:10

Hallo,

Ik ben bezig met een website die volledig gebruik maakt van MySQL. Nu komt het wel eens voor dat er een fout zit in een query. Nu heb ik een pagina gemaakt en error_mysql.php genoemd. De inhoud van deze pagina is:
Code: Selecteer alles
<html>
   <head>
      <title>MySQL fout</title>
      <style type="text/css">

      body {
         background-color:   #fff;
         margin:            40px;
         font-family:      Lucida Grande, Verdana, Sans-serif;
         font-size:         12px;
         color:            #000;
      }

      #content  {
         border:            #999 1px solid;
         background-color:   #fff;
         padding:         20px 20px 12px 20px;
      }

      h1 {
         font-weight:      normal;
         font-size:         14px;
         color:            #990000;
         margin:          0 0 4px 0;
      }
      
      b {
            font-weight:      bolder;
         font-size:         12px;
         color:            #990000;
         margin:          0 0 4px 0;
      }
      </style>
   </head>
<body>
   <div id="content">
      <h1>Er is een fout opgetreden in MySQL</h1>
      <br />De volgende foutmelding retourneerde MySQL bij het uitvoeren van een query:
      <br /><br />
      <b>Foutmelding:</b>
      
      <br /><br />
      Mocht deze foutmelding blijven komen, dan kunt u het beste contact opnemen met de webmaster.
   </div>
</body>
</html>


Nu wil ik graag dat achter <b>Foutmelding:</b> de MySQL fout komt te staan. Ik weet alleen niet echt hoe ik dit moet realiseren.
Alvast bedankt en nog de beste wensen voor 2009!

Daan
Daan
wmpr
 
Berichten: 100
Geregistreerd: 07 aug 2006 17:42

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor libia » 05 jan 2009 17:01

je kunt die pagina aanroepen op deze manier: error_mysql.php?error=[HIER DE ERROR]

dan zet je daar dit stukje code:
Code: Selecteer alles
<?php
if(!empty($_GET['error'])) //bij empty hoef je geen isset te gebruiken ;)
{
echo $_GET['error'];
}
else
{
echo 'geen error';
}
?>


nu kan het dat iemand ipv de error html code invult, maar dat geeft geen problemen alleen ziet het er voor hem anders uit ;)
Avatar gebruiker
libia
wmpr
 
Berichten: 4149
Geregistreerd: 23 okt 2005 14:14
Woonplaats: Alphe!!

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor Daan » 05 jan 2009 17:50

Dit werkt nu. Om het te testen heb ik ffkes een scriptje gemaakt:
Code: Selecteer alles
<?php

$sql = "SELECT * FROM daan"; // tabel bestaat niet + er is geen connectie met db
$query = mysql_query($sql);
if(!$query)
{
   $mysqlerror = (mysql_error());
   header("Location:error_db.php?error=$mysqlerror");
}

?>


Nu wil ik hetzelfde doen voor php. Bij MySQL was het makkelijk omdat je in mysql de error kan opvragen via (mysql_error());. Ik weet niet of er in php ook zoiets zit. Het liefst heb ik bij php ook zoiets als:
Foutmelding: Syntax error..........................
Bestand: hierkomtdaneenleukebestandsnaamwaarinduseenfoutzit.php

Weet iemand of dit ook mogelijk is?
Daan
wmpr
 
Berichten: 100
Geregistreerd: 07 aug 2006 17:42

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor Remi » 05 jan 2009 17:55

http://www.olate.co.uk/articles/249
Tweede hit op google,
dit zal iets moeilijker gaan, maar het kan ook.
Avatar gebruiker
Remi
wmpr
 
Berichten: 3010
Geregistreerd: 04 apr 2006 15:22

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor Daan » 05 jan 2009 19:38

Oké heb even verder gekeken.

Ik heb nu de volgende code:
Code: Selecteer alles
// define custom handler
set_error_handler('myHandler');

// custom handler code
function myHandler($code, $msg, $file, $line) {
    header ("Location:error_php.php?code=$code&msg=$msg&file=$file&line=$line");
}


Echter worden fatale en parse fouten op deze manier niet weergegeven. Weet iemand hoe ik doe wel kan laten zien.?
Daan
wmpr
 
Berichten: 100
Geregistreerd: 07 aug 2006 17:42

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor libia » 05 jan 2009 19:57

Daan schreef:Echter worden fatale en parse fouten op deze manier niet weergegeven. Weet iemand hoe ik doe wel kan laten zien.?

zorgen dat je ze niet hebt ;) anders kan het niet ;)
Avatar gebruiker
libia
wmpr
 
Berichten: 4149
Geregistreerd: 23 okt 2005 14:14
Woonplaats: Alphe!!

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor Daan » 05 jan 2009 20:15

Dat is natuurlijk het ultieme antwoord:D.
Daan
wmpr
 
Berichten: 100
Geregistreerd: 07 aug 2006 17:42

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor Remi » 05 jan 2009 21:44

Daan schreef:[...]
Echter worden fatale en parse fouten op deze manier niet weergegeven. Weet iemand hoe ik doe wel kan laten zien.?

Ik denk dat dat niet kan, want zulke fouten zijn van der mate invloed op het script dat het niet meer kan draaien. En deze fouten zouden zoals al eerder gezegd ook niet voor mogen komen. Dan zit er echt een diepe fout in de programmatuur, en dit zijn niet errors die zo regelmatig voorkomen dat je daar een aparte layout voor nodig hebt.
Avatar gebruiker
Remi
wmpr
 
Berichten: 3010
Geregistreerd: 04 apr 2006 15:22

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor KillerSponge » 05 jan 2009 22:35

Bovendien zijn ze erg makkelijk op te sporen: gewoon naar het aangegeven regelnummer gaan en kijken waar je de ; vergeten bent ;)
Blabla en andere onzin - http://killersponge.nl
Avatar gebruiker
KillerSponge
Beheerder
Beheerder
 
Berichten: 14456
Geregistreerd: 24 aug 2004 13:05

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor Remi » 05 jan 2009 22:52

Ik kwam er net toevallig achter dat je toch ook fatal errors kan,
dit kan met trigger_error() ;
Avatar gebruiker
Remi
wmpr
 
Berichten: 3010
Geregistreerd: 04 apr 2006 15:22

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor libia » 06 jan 2009 15:29

Remi schreef:Ik kwam er net toevallig achter dat je toch ook fatal errors kan,
dit kan met trigger_error() ;

Dit is een ander soort fatal error, je kunt alleen de 'USER' errors opvangen ;)
Avatar gebruiker
libia
wmpr
 
Berichten: 4149
Geregistreerd: 23 okt 2005 14:14
Woonplaats: Alphe!!

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor Derk » 06 jan 2009 16:16

Een fatale error wil zeggen dat er iets goed fout is. Alles stopt dan direct. Dit is onmogelijk af te vangen.

Haakje vergeten is een mooi voorbeeld. Is niet af te vangen.
Afbeelding
Avatar gebruiker
Derk
Beheerder
Beheerder
 
Berichten: 12634
Geregistreerd: 27 nov 2003 19:50
Woonplaats: Houten

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor KillerSponge » 07 jan 2009 17:30

Dat zijn meestal parse-fouten: php wordt gewoon niet wijs uit de syntax, dan valt er ook niet veel uit te voeren ;)
Blabla en andere onzin - http://killersponge.nl
Avatar gebruiker
KillerSponge
Beheerder
Beheerder
 
Berichten: 14456
Geregistreerd: 24 aug 2004 13:05

Re: php/mysql foutmelding tonen met opmaak

Berichtdoor libia » 07 jan 2009 17:44

en daarom heet het dus parse fout! :) php fouten zijn niet zo moeilijk als veel mensen denken :D
Avatar gebruiker
libia
wmpr
 
Berichten: 4149
Geregistreerd: 23 okt 2005 14:14
Woonplaats: Alphe!!


Keer terug naar PHP, ASP, SQL



cron