acces au site vérouillé

6 messages dans ce sujet

Posté(e) · Signaler ce message

bonjour

peel 6.3.1

je souhaiterai bloquer l’accès a l'un de mes sites par un numéros de siret comme ceci :

1) la personne arrive obligatoirement sur l'accueil du site quelque soit l'endroit d'ou elle viens et ne doit rien pouvoir faire (bloquer sur l'accueil)

2) la personne entre son siret dans un champ défini si celui ci est reconnu comme : conforme

3) la personne peut accéder au site

4) si siret erroné "message erreur"

j'ai pour la vérification des siret le script que voici :


<?php

/******************************

ALGORITHME DE LA CLEF DE LUHN

********************************/

function Luhn($numero,$longueur){ // On passe &#224; la fonction la variable contenant le num&#233;ro &#224; v&#233;rifier

								 // et la longueur qu'il doit imp&#233;rativement avoir

		if ((strlen($numero)==$longueur) && ereg("[0-9]{".$longueur."}", $numero)){ // si la longueur est bonne et que l'on n'a que des chiffres

				/* on d&#233;compose le num&#233;ro dans un tableau  */

				for ($i=0;$i<$longueur;$i++){

						$tableauChiffresNumero[$i]=substr($numero,$i,1);

				}

				/* on parcours le tableau pour additionner les chiffres */

				$luhn=0; // clef de luhn &#224; tester

				for ($i=0;$i<$longueur;$i++){

						if ($i%2==0){ // si le rang est pair (0,2,4 etc.)

								if(($tableauChiffresNumero[$i]*2) > 9){ // On regarde si son double est > &#224; 9

										$tableauChiffresNumero[$i]=($tableauChiffresNumero[$i]*2)-9; //si oui on lui retire 9

																								// et on remplace la valeur

																								// par ce double corrig&#233;

								}

								else{

										$tableauChiffresNumero[$i]=$tableauChiffresNumero[$i]*2; // si non on remplace la valeur

																						// par le double

								}

						}

						$luhn=$luhn+$tableauChiffresNumero[$i]; // on additionne le chiffre &#224; la clef de luhn

				}

				/* test de la divition par 10 */

				if($luhn%10==0){

						return true;

				}

				else{

						return false;

				}

		}

		else{

				return false; // la valeur fournie n'est pas conforme (caract&#232;re non num&#233;rique ou mauvaise longueur)

		}

}

?>

qui fonctionne avec ce formulaire :

<?php

include("luhn.inc.php");

$mode=$HTTP_POST_VARS['mode'];

$numero=$HTTP_POST_VARS['numero'];

$longueur="14";//$HTTP_POST_VARS['longueur'];

if($mode=="verifier"){

		if(Luhn($numero,$longueur)){

				echo "<center>votre siret est correct</center><br></br>";

   echo("<center><a href=\"asc.php\"/>cliquez ici pour Continuer</a></center>");

  }


		else{

				echo "Le num&#233;ro de siret n'est pas bon</font><br>";

		}

	   // echo "<form action=\"".$PHP_SELF."\" method=\"POST\">\n";

		//echo "\r\r<input type=\"submit\" value=\"essayer de nouveau\">\n";

		//echo "</form>";

}

else{

?>


<!--------------------Formulaire---------------------->


<center>

<form action="<?php $PHP_SELF; ?>" method="POST">

<!--Longueur attendue : <input type="text" name="longueur" size="3"> (14 pour un siret, 16 pour une CB etc.)<br>-->

  <font color="#21449c" size="4">entrez votre num&#233;ros de siret :</font>

  </br>

  <input type="text" name="numero" size="16" maxlength="16">

  </br>

  <input type="hidden" name="mode" value="verifier">

  <input type="submit" value="verifier">

</form>

</center>

<?php

}

?>

quel fichier faut t'il modifier et est ce que je peut me servir de ce script avec PEEL

cordialement

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Vous pouvez placer ce script dans le fichier configuration.inc.php.

Si le siret est correct, vous pouvez créer une variable de session qui servira à exécuter votre script qu'une seul fois ($_SESSION['session_utilisateur']['siret_valide'] par exemple):


<?php
if(empty($_SESSION['session_utilisateur']['siret_valide'])) {
include("luhn.inc.php");
$mode=$HTTP_POST_VARS['mode'];
$numero=$HTTP_POST_VARS['numero'];
$longueur="14";//$HTTP_POST_VARS['longueur'];
if($mode=="verifier"){
if(Luhn($numero,$longueur)){
echo "<center>votre siret est correct</center><br></br>";
echo("<center><a href=\"asc.php\"/>cliquez ici pour Continuer</a></center>");
$_SESSION['session_utilisateur']['siret_valide'] = true;
}

else{
echo "Le num&#233;ro de siret n'est pas bon</font><br>";

$_SESSION['session_utilisateur']['siret_valide'] = false;
}
// echo "<form action=\"".$PHP_SELF."\" method=\"POST\">\n";
//echo "\r\r<input type=\"submit\" value=\"essayer de nouveau\">\n";
//echo "</form>";
}
else{
?>

<!--------------------Formulaire---------------------->

<center>
<form action="<?php $PHP_SELF; ?>" method="POST">
<!--Longueur attendue : <input type="text" name="longueur" size="3"> (14 pour un siret, 16 pour une CB etc.)<br>-->
<font color="#21449c" size="4">entrez votre num&#233;ros de siret :</font>
</br>
<input type="text" name="numero" size="16" maxlength="16">
</br>
<input type="hidden" name="mode" value="verifier">
<input type="submit" value="verifier">
</form>
</center>
<?php
}
}
?>
[/CODE]

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

bonjour Simon

je vien de mettre le code ci dessous dans configuration.inc.php au alentour de la ligne 306


if(empty($_SESSION['session_utilisateur']['siret_valide'])) {


include($dirroot . '/modules/siret/luhn.inc.php');


$mode=$_POST['mode'];

$numero=$_POST['numero'];

$longueur="14";

if($mode=="verifier"){


   if(Luhn($numero,$longueur)){


	  echo ("<center>votre siret est correct</center></br>");

	  echo ("<center>vous avez acces au site</center>");


	  $_SESSION['session_utilisateur']['siret_valide'] = true;

  }

else{

	  echo ("Le numero de siret n'est pas bon");


	  $_SESSION['session_utilisateur']['siret_valide'] = false;

   }

}

}

/*Formulaire pour numero de siret*/


echo ('

		   <center>

		   <form action=" ' . $PHP_SELF . ' " method="POST">

			  <p>entrez votre numero de siret :</p>

			  </br>

			  <input type="text" name="numero" size="16" maxlength="16">

			  </br>

			  <input type="hidden" name="mode" value="verifier">

			  </br>

			  <input type="submit" value="verifier">

			</form>

			</center>

	   ');

quand je vais sur le site

le formulaire apparaît mais

voici les erreurs :

Notice: Undefined index: mode in C:\Program Files\EasyPHP-5.3.8.0\www\centrale\configuration.inc.php on line 312

Notice: Undefined index: numero in C:\Program Files\EasyPHP-5.3.8.0\www\centrale\configuration.inc.php on line 313

Notice: Undefined variable: PHP_SELF in C:\Program Files\EasyPHP-5.3.8.0\www\centrale\configuration.inc.php on line 338

la ligne 312 correspond a : $mode=$_POST['mode'];

la ligne 313 correspond a : $numero=$_POST['numero'];

la ligne 338 correspond a : <form action=" ' . $PHP_SELF . ' " method="POST">

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Vos erreurs correspondent au fait que $_POST n'est pas rempli si formulaire pas envoyé => utilisez la fonction vb($_POST['....'])

Par ailleurs, sur votre serveur register_globals n'est pas activé, donc vous devez utiliser $_SERVER['PHP_SELF'] à la place de $PHP_SELF

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

bonjour

merci pour ces corrections

apparemment il manque a mettre quelque chose dans haut.php

Warning: Cannot modify header information - headers already sent by (output started at /homepages/1/d361017153/htdocs/centrale_peel/gros/configuration.inc.php:376) in /homepages/1/d361017153/htdocs/centrale_peel/gros/modeles/peel6/haut.php on line 22

et quant je tape un mauvais numeros de siret

j'ai un ecran blanc avec seulement :

Le numéro de siret n'est pas bon

Warning: Cannot modify header information - headers already sent by (output started at /homepages/1/d361017153/htdocs/centrale_peel/gros/modules/siret/luhn.inc.php:51) in/homepages/1/d361017153/htdocs/centrale_peel/gros/lib/fonctions/fonctions.php on line 918

Warning: Cannot modify header information - headers already sent by (output started at /homepages/1/d361017153/htdocs/centrale_peel/gros/modules/siret/luhn.inc.php:51) in/homepages/1/d361017153/htdocs/centrale_peel/gros/lib/fonctions/fonctions.php on line 920

Warning: Cannot modify header information - headers already sent by (output started at /homepages/1/d361017153/htdocs/centrale_peel/gros/modules/siret/luhn.inc.php:51) in/homepages/1/d361017153/htdocs/centrale_peel/gros/lib/fonctions/fonctions.php on line 922

-------------------------------------------------------------------------------------------

quant je tape un bon siret

j'ai un ecran blanc avec seulement :

votre siret est correct

Warning: Cannot modify header information - headers already sent by (output started at /homepages/1/d361017153/htdocs/centrale_peel/gros/modules/siret/luhn.inc.php:51) in/homepages/1/d361017153/htdocs/centrale_peel/gros/lib/fonctions/fonctions.php on line 918

Warning: Cannot modify header information - headers already sent by (output started at /homepages/1/d361017153/htdocs/centrale_peel/gros/modules/siret/luhn.inc.php:51) in/homepages/1/d361017153/htdocs/centrale_peel/gros/lib/fonctions/fonctions.php on line 920

Warning: Cannot modify header information - headers already sent by (output started at /homepages/1/d361017153/htdocs/centrale_peel/gros/modules/siret/luhn.inc.php:51) in/homepages/1/d361017153/htdocs/centrale_peel/gros/lib/fonctions/fonctions.php on line 922

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Pour un numéro de SIRET valide :

ajouter die(); sous le bloc


echo "<center>votre siret est correct</center><br></br>";
echo("<center><a href=\"\"/>cliquez ici pour Continuer</a></center>");
$_SESSION['session_utilisateur']['siret_valide'] = true;[/CODE] [/code]

[b]Pour un numéro de SIRET non valide :[/b]

Déplacer votre formulaire pour numéro de SIRET sous la ligne

echo ("Le numero de siret n'est pas bon");

[font=arial,helvetica,sans-serif]ajouter[font=courier new,courier,monospace] [font=arial,helvetica,sans-serif]ensuite[/font] die();[font=arial,helvetica,sans-serif] en dessous[/font][/font][/font].

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping