Redirection par header après une commande SQL fait ralentir

Petit nouveau ! | 7 Messages

18 avr. 2012, 22:51

Bonjour,

J'envois une commande SQL avec mysql_query() et ensuite je redirige le navigateur avec header(). Depuis quelques temps, le site devient mort pendant 32 secondes l'exécution de ce script. On est redirigé à la page voulu et le navigateur continu a exécuter quelque chose mais je ne vois pas quoi.

Si ça vous dit quelque chose ou vous avez une piste ou solution de piste, s'il vous plait m'en faire part.

Merci

ViPHP
ViPHP | 2287 Messages

18 avr. 2012, 23:12

Bonsoir,

Une piste : il faut savoir qu'une redirection par header() n'interrompt pas l'éxécution du script (et de tout ce qu'il peut contenir). Il faut terminer l'éxécution explicitement, avec un die() ou autre, pour s'en assurer.
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Petit nouveau ! | 7 Messages

19 avr. 2012, 16:47

Dans mon exécution, j'insère quelque des données dans une table dans la base de donnée et puis je redirige vers une autre page PHP.

Je vois que la page se redirige et rendu à la deuxième page, un temps de lag d'environ 23 secondes...

Je fais rouler la même commande SQL dans mon interface de base de donnée et ça lui prend moins d'une seconde. Qu'est-ce qui expliquerait ça?

Petit nouveau ! | 7 Messages

19 avr. 2012, 17:05

Je viens de faire un autre test. J'ai exécuté le même script en ayant ouvert une page avec la table de la base de données ouverte. Quand j'ai exécuté le script, je suis tout de suite allé voir si la ligne s'était ajouté dans la table et c'est le cas. Mais le site était mort pendant les 20-30 secondes tout de même.

ViPHP
ViPHP | 1380 Messages

20 avr. 2012, 23:08

On t'a donné une piste plus haut. Toujours un exit après une redirection car sinon ton script continuera de tourner après avoir envoyé la redirection.
header('Location: redirection.php'); exit;
ripat

Petit nouveau ! | 7 Messages

25 avr. 2012, 18:09

J'ai essayé ce que vous m'avez dis et rien n'a changé :(

ViPHP
ViPHP | 1380 Messages

25 avr. 2012, 20:45

Dans ce cas, recette habituelle: les logs apache, MySQL et augmenter le error_reporting de php avec un error_reporting(E_ALL). As-tu accès aux logs? (dédié? machine de dvp?) Sinon, vérifie bien que ton script php ne rentre pas dans une boucle. Tu peux t'en assurer en envoyant des echo à chaque INSERT.
ripat

Eléphant du PHP | 275 Messages

26 avr. 2012, 10:44

Ton problème se produit quand tu arrive sur la page vers laquelle tu est redirigée ? Dans ce cas ça n'a rien a voir avec ta requete, mais avec la page en question.

Petit nouveau ! | 7 Messages

08 mai 2012, 21:53

Ce que je vois c'est quand on je fais une insertion ou modification à ma table en question, c'est la que tout arrête de fonctionner. Je dis bien "la table en question", parce qu'une autre table, tout fonctionne bien... Mais je ne vois pas ce que cette table a comme problème.