1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| <?php
namespace controller;
require_once __DIR__ . '/../vendor/autoload.php';
use IBAN;
use model\WebService;
if(!empty($_GET)) {
//extract($_POST);//extrait les données du POST et permet de les pouvoir appeler les variables contenuent dans le POST $variable
$iban = $_GET['iban'];
$myIban = new IBAN($iban);
$errors = [];//Tableau qui contiendra les erreurs s'il y en a.
$valid = [];//Tableau qui contiendra les messages valides
//si le champs IBAN est vide, je mets le message d'erreur dans le tableau des erreurs
if(empty($iban)) {
array_push($errors, 'Vous devez rentrer votre IBAN!');
}
//Vérifiez un numéro IBAN. Tolère les espaces, les préfixes "IBAN ...", les tirets, les entrées en minuscules, etc.
if(!$myIban->Verify()) {
array_push($errors, 'IBAN invalide! Mauvais format!');
}
//Vérifier la somme de contrôle d'un IBAN - code modifié à partir de la classe Validate_Finance PEAR
if(!$myIban->VerifyChecksum()) {
array_push($errors, 'IBAN invalide! Erreur checksum!');
}
//Suggestion ou double suggestion si erreur ça dépend des cas et ça ne fonctionne pas toujours
$suggestions = $myIban->MistranscriptionSuggestions($iban);
if (is_array($suggestions)) {
if (count($suggestions) == 1) {
array_push($errors, "Vous voulez dire: " . $suggestions[0] . " ?");
} elseif (count($suggestions) > 1) {
array_push($errors, "ou peut-être: ");
$done = 0;
foreach ($suggestions as $suggestion) {
if ($done > 0) {
array_push($errors, "ou");
}
array_push($errors, "'" . $suggestion . "'");
$done++;
}
}
}
//si pas d'erreurs
if($myIban->Verify() === true) {
array_push($valid, "IBAN valide ");//S'il n'y a pas d'erreur
$pays = $myIban->Country();
if($pays=="BE") {//si l'IBAN commence par BE
$ws = new WebService;//Utilisation de ma class WebService
$bban = $ws->getBelgianBBAN($iban);//je le transforme en BBAN via la methode de ma class WebService
array_push($valid, 'BBAN: ' . $bban);//je pousse le BBAN dans le tableau de messages valides
}
}
//s'il y a des erreurs, je les stock dans une variable $response qui sera envoyée au navigateur
if(count($errors)) {
$response = ['errors'=>$errors];
echo json_encode($response);//j'encode la réponse au format JSON
exit;
}
//s'il y a des messages valides je les stock dans une variable $response qui sera envoyée au navigateur
if(count($valid)) {
$response = ['success'=>$valid];
echo json_encode($response);//j'encode la réponse au format JSON
exit;
}
} |