[SPIP Zone] Plugins vérifier et siren_siret

Bonjour,

En voulant faire :
if ($siret = _request(‹ siret ›) AND $erreur_siret = $verifier($siret, ‹ siren_siret ›, array(‹ mode ›=>‹ siret ›)))
$erreurs[‹ siret ›] = $erreur_siret;

Je me retrouve avec :

PHP Fatal error: Maximum execution time of 30 seconds exceeded in /plugins/verifier/verifier/siren_siret.php on line 92

En dirait que le while ne s’arrête pas, une idée ?

Merci

Le 06/01/2017 à 14:22, Pierre KUHN a écrit :

En voulant faire :
    if ($siret = _request('siret') AND $erreur_siret = $verifier($siret, 'siren_siret', array('mode'=>'siret')))
        $erreurs['siret'] = $erreur_siret;

Je me retrouve avec :
PHP Fatal error: Maximum execution time of 30 seconds exceeded in /plugins/verifier/verifier/siren_siret.php on line 92

En dirait que le while ne s'arrête pas, une idée ?

C'est probablement autre chose.
Peut être est ce ton code qui boucle sur cet appel aussi...
As tu mis des logs ou testé la fonction de vérification hors contexte dans un simple fichier de test php ?
JL

Le 06/01/2017 à 14:22, Pierre KUHN a écrit :

Bonjour,

En voulant faire :
    if ($siret = _request('siret') AND $erreur_siret = $verifier($siret,
'siren_siret', array('mode'=>'siret')))
        $erreurs['siret'] = $erreur_siret;

Je me retrouve avec :
PHP Fatal error: Maximum execution time of 30 seconds exceeded in
/plugins/verifier/verifier/siren_siret.php on line 92

En dirait que le while ne s'arrête pas, une idée ?

Oui tu as raison. S'il entre dans le premier if de ce while, ça boucle infiniment car le $i n'est pas augmenté dedans.
Je ne sais pas quel est le comportement attendu réellement.

Mais ma supposition serait que le code devrait déplacer le $i+2 en dehors du if/else tel que :

    while ($i < 14) {
      if ((2*$valeur[$i])>9) {
        $somme += (2*$valeur[$i])-9;
      } else {
        $somme += 2*$valeur[$i];
      }
      $i+=2;
    }

MM.

Le 07/01/2017 à 15:52, Matthieu Marcillaud a écrit :

Le 06/01/2017 à 14:22, Pierre KUHN a écrit :

En dirait que le while ne s'arrête pas, une idée ?

Oui tu as raison. S'il entre dans le premier if de ce while, ça boucle
infiniment car le $i n'est pas augmenté dedans.
Je ne sais pas quel est le comportement attendu réellement.

Mais ma supposition serait que le code devrait déplacer le $i+2 en
dehors du if/else tel que :

        while ($i < 14) {
            if ((2*$valeur[$i])>9) {
                $somme += (2*$valeur[$i])-9;
            } else {
                $somme += 2*$valeur[$i];
            }
            $i+=2;
        }

Note que j'aperçois le même problème ligne 53.

MM.

Bonjour,

je voyais cela avec un for et non un while aussi, je me trompe ?