Ga naar inhoud


Gastenboek php vraag


Hasselt

Aanbevolen berichten

Ja ja, nog een vraagje waar ik niet uit kom.

 

Ik wil een php gastenboek installeren en koppelen aan mijn mysql4 database.

 

hieronder staat de "instal.php"

Echter hij blijft zeggen "kan niet connecten" vreemdgenoeg.

 

<?php

 

//##################### Database vars #########################################

 

$mysql['host'] = "mysql4.xxxxxxxxxxxx.nl";

$mysql['gebruikersnaam'] = "1";

$mysql['wachtwoord'] = "xxxxxx";

$mysql['database'] = "database_1";

 

@mysql_connect($mysql['host'],$mysql['gebruikersnaam'],$mysql['wachtwoord']) or die("Kan niet verbinden met de database, controleer de gegevens.");

@mysql_select_db($mysql['database']) or die("Kan database niet selecteren") ;

 

//###############################################################################

 

?>

 

Volgens de help van de hostingprofider moet geen "host" worden ingevuld bij host, maar mqsql4.websitenaam.nl

 

Ik heb een database aangemaakt op de hostingserver die ik database_1 genoemd heb, username en ww spreken voor zich.

Link naar reactie
Delen op andere sites


Je mysql host moet zijn "localhost"

Tenzij je provider iets anders gebruikt.

 

Veel eenvoudiger is een functie gebruiken voor de database connectie.

Je hoeft die maar één keer te schrijven en je kan hem in de ganse site gebruiken.

 

Zet onderstaande code in een apart php document en noem het functions.php.inc

 

Daarin plaats je onderstaande functie

Php Code:

<?phpfunction DB_Connect(){$host = "localhost"; // of wat je provider gebruikt$gebruiker = "xxxxxx";$ww_db = "xxxxxxx";$database = "database1";$link = mysql_connect("$host", "$gebruiker", "$ww_db");mysql_select_db ("$database");}?>

 

Op iedere pagina waar je de database nodig hebt roep je nu die functie aan.

 

Php Code:
// Eén maal bovenaan de pagina de functie aanroepenrequire("functions.php.inc");DB_Connect();/*daarna kan je query's uitvoeren zonder telkens de database gegevens te moet opgeven */$query = "SELECT * FROM tabel";blablabla 

 

Succes

 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

@Puch;

 

Als je een functie schrijft voor dit soort taken dan moet je toch minimaal aan fout afhandeling gaan doen.

Dus zoiets:

Code:
function connectdb () {  # This function connects to the database.  # Set $user, $pass and $host to the appropiate values  # These values might end up in a seperate .conf.inc file.    $user = "gebruikersnaam";  $pass = "wachtwoord";  $host = "localhost"; // localhost is correct in 99% van de gevallen  $dbname = "databasenaam";  global $dbcon;  $dbcon = mysql_connect($host, $user, $pass);  if (!$dbcon) {      echo "Unable to connect to DB: " . mysql_error();      exit;  }    if (!mysql_select_db($dbname)) {      echo "Unable to select database " . mysql_error();      exit;  }}

 

En als je dan toch bezig gaat met error afhandeling;

Code:
<?php# Error handler# Adapted from example in user manual# File should be included as the FIRST file on the page. Then error reporting will work best.error_reporting(0);$old_error_handler = set_error_handler("ErrorHandler");function ErrorHandler($errno, $errmsg, $filename, $linenum, $vars) {	$errlog = "error.log"; // Hier de juiste naam opgeven...    // timestamp for the error entry    $dt = date("Y-m-d H:i:s (T)");    // define an assoc array of error string    // in reality the only entries we should    // consider are E_WARNING, E_NOTICE, E_USER_ERROR,    // E_USER_WARNING and E_USER_NOTICE    $errortype = array (                E_ERROR              => 'Error',                E_WARNING            => 'Warning',                E_PARSE              => 'Parsing Error',                E_NOTICE             => 'Notice',                E_CORE_ERROR         => 'Core Error',                E_CORE_WARNING       => 'Core Warning',                E_COMPILE_ERROR      => 'Compile Error',                E_COMPILE_WARNING    => 'Compile Warning',                E_USER_ERROR         => 'User Error',                E_USER_WARNING       => 'User Warning',                E_USER_NOTICE        => 'User Notice',                E_STRICT             => 'Runtime Notice',                E_RECOVERABLE_ERROR  => 'Catchable Fatal Error'                );    // set of errors for which a var trace will be saved    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);        $err = $dt." | file: ".basename($filename)." | line: ".$linenum." | ".$errmsg;    if (in_array($errno, $user_errors)) {        $err .= " | tracedata: ".wddx_serialize_value($vars, "Variables");    }    $err .= "\n";    error_log($err, 3, $errlog);}?>

Op deze manier kan je dus een mooie errorlog gaan bijhouden van de specifieke site/pagina's. Zorg ervoor dat dit bovenstaande script als eerste op een pagina ge-include wordt.

Je kan zelfs het script uitbreiden zodat het script je een email stuurt bij een fout melding.

 

En nog een stukje code voor het uitvoeren van een query:

Code:
function query ($sql) {  $res = mysql_query($sql);  if (!$res) {    $errmsg = "Could not successfully run query [ $sql ] from DB: ".mysql_error();    ErrorHandler(0, $errmsg, __FILE__, __LINE__, "");	echo "Database error!";    exit;  }  $rescount=0;  if ($res === TRUE) {    $ret = TRUE;   } else {    if (mysql_num_rows($res)==1) {	  $ret=mysql_fetch_assoc($res);	} else {      if (mysql_num_rows($res)>0) {        while ($row = mysql_fetch_assoc($res)) $ret[$rescount++]=$row;        mysql_free_result($res);      }	}  }  if (!isset($ret)) $ret = FALSE;  return $ret;}

Deze functie geeft je een (multi dimensionaal) array terug indien noodzakelijk en een boolean FALSE als de query een leeg resultaat geeft.

Je kan natuurlijk veel verder gaan, ik heb een kleine library aan database functies liggen die ik zelf geschreven heb, maar die zijn over het algemeen iets minder universeel.

 

Deze code draait al tijden prima op een paar sites van mij.

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Rustig Big fellow, black out is een php beginner. :D

Daarom heb ik het eenvoudig gehouden.

 

Je hebt uiteraard gelijk qua error afhandeling in de db connect. Die had ik nog moeten insteken, maar de rest gaat black out zijn petje te boven gaan me dunkt

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...