Ik zie dat veel mensen gebruik maken van sessies en merk dat dit
erg handig in gebruik is voor een hoop dingen.

Graag zou ik meer willen weten over het gebruik van sessies weet iemand een site waar ik dit kan leren of kan iemand mij vertellen waar sessie eigenlijk goed voor zijn!

Zo gebruik ik bijv. al jaren de volgende script om mijn database te connecten (heb ik van een vriend gehad) Maar heb eigenlijk geen idee hoe het werkt..


<?
    session_start();

                // database configuratie
                $dbname = "database_naam"; // database naam
                $user = "mysql_username"; // gebruikersnaam van mysql
                $pass = "mysql_password"; // wachtwoord van mysql
                $host = "localhost"; // host naar mysql

                // user configuratie
                $to = "[email protected]"; // jou email adres
                $subject = "Database Connectie Mislukt"; // onderwerp van de email
                $from = "From: Mark <[email protected]";

    if (!mysql_select_db($dbname, mysql_connect($host, $user, $pass)))
    {
        if (!$_SESSION["dberror"])
        {
            $msg = "============================================\n";
            $msg .= "Database connectie mislukt!\n";
            $msg .= "============================================\n\n";
            
            $msg .= "De connectie met de database is mislukt!\n\n";
            
            $msg .= "Datum: " . date("d.m.Y") . "\n";
            $msg .= "Tijd: " . date("H:i") . "\n";
            $msg .= "Ip addr: " . $_SERVER['REMOTE_ADDR'] . "\n\n";
            
            $msg .= "Mark\n";
            
            mail($to, $subject, $msg, $from);
            
            $dberror = 1;
            session_register(dberror);
        }
        
        echo "
        <html>
        <head>
        <title>Database connectie mislukt</title>
        </head>
        
        <body>
        
        <h1>De connectie met de database is mislukt.</h1>
        
        <p>Probeer het over enkele minuten opnieuw. Blijf niet de pagina herladen (refreshen). 
        Wanneer u dit wel doet wordt de database alleen nog maar meer belast. Er is een 
        e-mail gestuurd naar &eacute;&eacute;n van de administrators.</p>
        
        <p>Onze excuses en bedankt voor het begrip.</p>
        
        <p><i>Mark</i></p>
        
        </body>
        </html>";
        
        exit();
    }
?>


Kan iemand mij iets vertellen of verwijzen naar een goeie tutorial hier over??
Dat was inderdaad niet handig bedankt!

Meteen alles maar wijzigen haha!
<?php
if (!mysql_connect($host, $user, $pass)) {
if (!mysql_select_db($dbname)){
?>
Als het connecten niet lukt dan met de db verbinding maken?

Ik denk dat je het zo bedoelt:

<?php
if (mysql_connect($host, $user, $pass)) {
if (mysql_select_db($dbname)){

}else{
echo 'Kan niet verbinden met de database';
}
}else{
echo 'Kan geen verbinding maken met de server';
}
?>
En je weet ook wat het doet?

Want op [php]mysql_connect[/php] php.net kun je onder Return Values lezen wat de functie teruggeeft. In dit geval:
Returns a MySQL link identifier on success or FALSE on failure.

Als er een fout is zien we dus dat er FALSE teruggegeven wordt. Daarop kunnen we dus checken, is er iets anders dan false teruggegeven dan kun je gewoon doorgaan.
De functie [php]mysql_error[/php] bevat de error die omschrijft wat er fout is gegaan, toon deze niet aan je bezoekers, maar als je hem lokaal debugd is dit natuurlijk erg handig.
Oke duidelijk dus eigenlijk wat jij zegt is het nog het beste om er een mysql_error aan toe te voegen:

<?php
if (mysql_connect($host, $user, $pass)) {
    if (mysql_select_db($dbname)){

    }else{
        echo 'Kan niet verbinden met de database<br>';
        echo mysql_error(). "<br>\n";

    }
}else{
    echo 'Kan geen verbinding maken met de server<br>';
    echo mysql_error(). "<br>\n";
}
?>


is dat de dan de beste manier? Aangezien ik vooral op de site lees dat or die nooit meer gebruikt mag worden zoals bijv:

mysql_connect($host, $user, $pass)or die(mysql_error());


of zal ik hem zo laten zoals Nick aangaf??
Als je het script aan het maken bent, wat we de development fase/omgeving noemen, wil je natuurlijk zo veel mogelijk informatie zien om je fout zo snel mogelijk op te lossen.

Als de website online staat, wat we de production fase/omgeving noemen, wil je juist zo min mogelijk informatie tonen. Het maakt de gebruiker niet uit wat er fout gaat, alleen of er wat fout gaat. Tevens bevatten de foutmeldingen vaak gegevens zoals inlog gegevens of gegevens over hoe de tabellen en velden heten. Dit is natuurlijk heel handige informatie voor een hacker en dus is het gevaarlijk deze errors te tonen.

Wat je het beste kunt doen is in de production omgeving de error loggen in een bestand en in de development omgeving zoveel mogelijk tonen. Een voorbeeldje hoe ik het zal doen kun je vinden in SQL boilerplate, de link die ik je al eens eerder had gegeven.
Ik ga daar even rustig voor zitten daar zit duidelijk een hoop informatie waar ik verder mee kan.

Bedankt alvast nu eerst even brilletje op en gaan lezen maar.

Reageren