Bonjour tout le monde,
Voilà mon problème : je fais une soumission de formulaire dans un fichier à part. Il met à jour la base de données et en fonction du résultat "calcule" un message et retourne sur la page du formulaire. Ce fichier s'appelle process.php.
Donc vous l'aurez compris la toute dernière ligne de process.php est :
Où $TGT (le target) est l'url de destination, la cible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part header('Location: '.$TGT);
Le problème qui arrive est que, la redirection ne se fait pas. Et seul Edge matérialise dans le code source de la page un caractère bizarroïde, FF colorie le doctype en rouge (sans raison) et Chrome n'affiche rien.
Donc je suppose qu'un caractère parasite le résultat et comme quelque chose s'affiche, ça fait planter la fonction Header.
Questions (eh oui pluriel) :
n°1 comment retrouver ce caractère et l'éliminer sachant que : je n'ai aucun "echo" ou "print" dans les fichiers, que j'ai effacé toutes les tabulations et espaces inutiles (ligne vides ou espaces en bout d'instruction). Quand je dis retrouver, si on peut me refiler un bout de code qui afficher ce PU#@1 de code Ascii, ce sera déjà bien.
n°2 comment forcer la redirection : sachant que la fin de mon process.php est :
Bout de code récupéré de php.net mais qui ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 header('Location: '.$TGT); exit; if( !headers_sent() ){ echo '<script type="text/javascript">'; echo 'window.location.href="'.$TGT.'";'; echo '</script>'; echo "Merci de patienter <br/>"; echo '<noscript>'; echo '<meta http-equiv="refresh" content="0;url='.$TGT.'" />'; echo '</noscript>'; }
Pour info : mon serveur est un linux équipé de PHP 7.
Pour info (le retour) : il est impératif de soumettre le formulaire vers un process de soumission séparé sinon, en cas de ralentissement et au cas où l'utilisateur actualise à outrance, il peut créer plusieurs fois le même enregistrement et foirer la base de données.
Pour info (Le retour de la vengeance) : les fichiers sont sauvegardés en UTF-8 avec BOM (testé sans BOM et c'est le même résultat).
D'avance merci de vos réponses.
Partager