Door
Frans Piter Schaap
op 21-08-2012 15:51
gewijzigd op 21-08-2012 15:58
1.338 views
Op het moment ben ik bezig met een website waarbij ik moet checken of de ingevulde gegevens een FTP server kunnen bereiken.
Met de code:
<?php
$ftpconnect = @ftp_connect($server);
if(!$ftpconnect){
//error
}
?>
Kom je een heel eind als de gegevens kloppen, echter geven een Warning regel 1 als ze niet kloppen. Hoe is dit te voorkomen? Vaak wordt bij zulke connecties gebruikt "OR die('Connectie niet mogelijk')", alleen dit wil ik voorkomen...
Dat is wat ik ook verwachtte, echter kreeg en krijg ik deze error:
Fouttype: 2: WARNING
Error omschrijving:
ftp_connect(): php_network_getaddresses: getaddrinfo failed: No address associated with hostname
Error_reporting(E_ALL) staat aan met eigen report functie.
<?php
$ftpconnect = @ftp_connect($ftpserver);
if($ftpconnect===FALSE){
$error = true;
}
?>
Hetzelfde geldt voor mysqli_connect functie...
<?php
try{
if(!mysqli_connect($dbhost,$dbuser,$dbpass,$dbname)){
throw new Exception("Kon geen connectie maken met de database");
}
}
catch(Exception $e){
$error = $e->getMessage();
}
?>
Levert ongeveer zelfde soort foutmelding op.
Dat kan kloppen, want als de hostname niet klopt wordt er op netwerk niveau een foutmelding gegenereerd, dit moet je dus inderdaad dan in een try catch blok afvangen.
Hoe zou je zo'n try...catch block kunnen bouwen? Ik heb al meerdere dingen geprobeerd/gezocht, echter kan er niet helemaal uitkomen. Ik heb weinig ervaring met try & catch.
<?php
try{
$dbconnect = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
}
catch(Exception $e){
$error=true;
}
?>
Bovenstaande (deze + vorige post) werken niet.
Ik hoef alleen te weten of er connectie kan worden gemaakt; er worden geen queries verstuurd.
@Eddy Erkelens: De $server variabele is leeg => '' of enig ander user input. Het gaat om een input field waarin de $ftpserver is ingevuld. Het is ook niet erg dat het niet werkt, het moet alleen een 'false' teruggeven. Nu geeft het een PHP-error. Bovenstaande is niet echt gerelateerd, samengevat:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
set_error_handler("error_handler");
/* Ophalen & Controleren van alle ingevulde waarden alle $_POST */