Location: PHPKode > projects > Give One. Get Two. > give1get2/paiement/pay/status_report_filtre.php
<?php 

	//status_report_filtre


	//Es ce que la source est valide ?
	
	if(isset($IPMoneybookers)){
		if($_SERVER["REMOTE_ADDR"] != $IPMoneybookers){ // IP incorrecte
			$valide = false;
			//echo "<p class='erreur'>Tentative d'intrusion détécté : $_SERVER["REMOTE_ADDR"]</p>";
		}
	}
	
	// Es ce que tout les champs sont renseignés ?
	// Es ce que tout les champs ont le bon type ?
	// Es ce que tout les champs ont la bonne longeur ?
	// Es ce que tout les champs ont les bonnes données ?
	
	if( !isset($pay_to_email,$pay_from_email,$merchant_id,$mb_transaction_id,$mb_amount,$mb_currency,$status,$md5sig,$amount,$currency) ){
		$valide = false;
		//echo "<p class='erreur'>Il manque un champs</p>";
	}
	

		
		// mb_transaction_id
		
		if( isset($mb_transaction_id) and !ctype_digit($mb_transaction_id) ){
				$valide = false;
				//echo "<p class='erreur'>L'id de la transaction MB est d'un type invalide.</p>";
		}
		
		// status
		
		if($status != '2' and $status != '1' and $status != '0' and $status != '-1' and $status != '-2' and $status != '-3' ){
			$valide = false;
			//echo "<p class='erreur'>Le status de la transaction est d'un type invalide.</p>";
		}else{
			// Le status final de la transaction MB
			/*			
			echo "<h4 class='info'>Etat de la transaction moneybookers</h4>";

			if('2' == $status){    echo "<h4 class='reussi'>Status : Fini.</h4>"; }
			if('1' == $status){  echo "<h4 class='reussi'>Status : Test réussi.</h4>"; }
			if('0' == $status){  echo "<h4 class='info'>Status : En attente.</h4>"; }
			if('-1' == $status){  echo "<h4 class='info'>Status : Annulé.</h4>"; }
			if('-2' == $status){  echo "<h4 class='erreur'>Status : Echoué.</h4>"; }
			if('-3' == $status){  echo "<h4 class='erreur'>Status : Retour arrière.</h4>"; }
			* */
		}
		
		// transaction_id
		
		if( !isset($transaction_id) ){
				$valide = false;
				//echo "<p class='erreur'>L'id de la transaction marchante n'est pas défini.</p>";
		}else{
			if( isset($transaction_id) and !ctype_digit($transaction_id) ){
				$valide = false;
				//echo "<p class='erreur'>L'id de la transaction marchante est d'un type invalide.</p>";
			}
			/// Es ce que la transaction existe en interne ?
		}
		
		// pay_from_email
		
		if( !isset($pay_from_email) ){
				$valide = false;
				//echo "<p class='erreur'>pay_from_email n'a pas été envoyé au serveur.</p>";
		}else{
			if (!strpos($pay_from_email, '@') or !strpos($pay_from_email, '.')) {  // si le mail ne contient pas un @ et un point
				$valide = false;
				//echo "<p class='erreur'>pay_from_email est d'un format invalide.</p>";
			}
		}
		
		// merchant_id 
		
		if( isset($merchant_id) and !ctype_digit($merchant_id) ){
				$valide = false;
				//echo "<p class='erreur'>Le merchant_id est d'un type invalide.</p>";
		}else{
			//vérifier que le merchant_id est le même que l'ordre
		}
			
		// pay_to_email
		
		if( !isset($pay_to_email) ){
				$valide = false;
				//echo "<p class='erreur'>pay_to_email n'a pas été envoyé au serveur.</p>";
		}else{
			if (!strpos($pay_to_email, '@') or !strpos($pay_to_email, '.')) {  // si le mail ne contient pas un @ et un point
				$valide = false;
				//echo "<p class='erreur'>pay_to_email est d'un format invalide.</p>";
			}
		}
		
		// amount : vérifier float

		if( isset($amount) and $amount <= 0 ){ //vérifier entier 		
				$valide = false;
				//echo "<p class='erreur'>L'amount est d'un format invalide.</p>";
		}
		
		// currency : la devise de départ figure parmi les devises acceptés ?
		
		$TabDevisesMoneybookers = array("EUR","USD","GBP","CZK","HKD","HUF","SGD","SKK","JPY","EEK","CAD","BGN","AUD","PLN","CHF","ISK","DKK","INR","SEK","LVL","NOK","KRW","ILS","ZAR","MYR","RON","NZD","HRK","TRY","LTL");
		$NbDevisesMoneybookers = count($TabDevisesMoneybookers) -1;
		$i = -1;
		$trouvedevise = false;
		do{
			$i++;
			
			if($currency == $TabDevisesMoneybookers[$i]){
				$trouvedevise = true;
			}
			
		}while($trouvedevise != true and $i < $NbDevisesMoneybookers); //pas trouve ou pas fini
		
		if($trouvedevise == false){
			$valide = false;
			//echo "<p class='erreur'>La devise n'a pas été trouvé par la liste des devises figurant dans le tableau.</p>";
		}else{
			//echo "<p class='erreur'>La devise a été trouvé : $TabDevisesMoneybookers[$i].</p>";
		}
		
		// mb_amount 
		
		if( isset($mb_amount) and $mb_amount <= 0 ){ //vérifier entier 		
				$valide = false;
				//echo "<p class='erreur'>Le mb_amount est d'un format invalide.</p>";
		}
		
		// mb_currency
		
		if("EUR" != $mb_currency){
			$valide = false;
			//echo "<p class='erreur'>La monnaie du PSP est incorrecte.</p>";
		}
	
		// md5sig
		
		/*	$SecretWord = strtoupper("test"); //le SecretWord ne doit pas exceder 10 caracteres
    		$VerifMd5Sig = strtoupper(md5($merchant_id.$transaction_id.$SecretWord.$mb_amount.$mb_currency.$status)); 	*/
    	
    	if( !ctype_xdigit($md5sig) or 32 != strlen($md5sig) or $md5sig != strtoupper($md5sig) ){ //type, longeur donnée
    		$valide = false;
			//echo "<p class='erreur'>Type, Longueur ou forme du md5 invalide</p>";
		}
    
    	/*
    	if($VerifMd5Sig != $md5sig){
    		$valide = false;
    		echo "<p class='erreur'>Le Md5 est incorrect.</p>";
		}
    	*/
		
		/*	
		if( true == $valide ){
			$valide = false;
			echo "<p class='erreur'>A approfondir.</p>";
		}		
		*/

?>
Return current item: Give One. Get Two.