bepimaco Festina lente | Je rencontre un bug que je n'arrive pas à comprendre.
J'ai un fichier PHP de traitement de données qui alimente une base MySQL puis se redirige vers une autre page. Ce fichier marche très bien si un des include de la page est remplacé par sa source. Dans le cas contraire, le traitement est bien effectué (mise à jour de la base), mais le header ne fonctionne pas, ce qui me donne une page vierge de tout code, donc blanche.
Ci dessous le code, et celui du fichier inclus.
include '../general/securisation.php';
Script PHP
Code :
- <?php
- /* Ce script permet le traitement des données sans affichage
- * d'écrans intermédiaires. En cas d'erreur, une page affiche
- * l'erreur en question*/
- // Déclaration du niveau d'autorisation requis pour cette page
- $autorisation = 4;
- $url = 'x.php';
- include '../general/securisation.php';
- // Déclaration des paramètres de connexion
- include '../general/connexion.php';
- // Connexion au serveur
- mysql_connect(hote, utilisateur, motdepasse) or die("erreur de connexion au serveur" );
- mysql_select_db(bdd) or die("erreur de connexion a la base de donnees" );
- // Récupération des paramètres
- $action = $_GET["action"] ;
- $id = $_GET["id"] ;
- // Suppression
- if ($action == 'supprimer'){
- $requete ='DELETE from adherents WHERE id='.$id;
- $resultat = mysql_query($requete);
- if(!$resultat) {
- echo 'Erreur lors de la suppression dans la base de
- données. />';
- }
- else {
- mysql_close();
- header('location: listes.php');
- exit();
- }
- }
- // Archivage
- if ($action == 'archiver'){
- // Sélection des informations dans la première table
- $requete = 'SELECT id, nom, prenom, unite, numad, naissance, adresse,
- cp, ville, tel1, tel2, tel3, email, email2, commentaires
- FROM adherents WHERE id="'.$id;
- $resultat = mysql_query($requete);
- while($ligne = mysql_fetch_array($resultat)){
- $id = $ligne[0];
- $nom = $ligne[1];
- $prenom = $ligne[2];
- $unite = $ligne[3];
- $numad = $ligne[4];
- $naissance = $ligne[5];
- $adresse = $ligne[6];
- $cp = $ligne[7];
- $ville = $ligne[8];
- $tel1 = $ligne[9];
- $tel2 = $ligne[10];
- $tel3 = $ligne[11];
- $email1 = $ligne[12];
- $email2 = $ligne[13];
- $commentaires = $ligne[14];
- }
- // Insertion des informations dans la table d'archive
- $requete1 = "INSERT INTO archivead (nom, prenom, unite, numad, naissance,
- adresse, cp, ville, tel1, tel2, tel3, email, email2, commentaires)
- VALUES ( '$nom', '$prenom', '$unite', '$numad', '$naissance', '$adresse',
- '$cp', '$ville', '$tel1', '$tel2', '$tel3', '$email1', '$email2','$commentaires')";
- $requete2 ='DELETE from adherents WHERE id='.$id;
- $resultat1 = mysql_query($requete1);
- $resultat2 = mysql_query($requete2);
- if(!$resultat1 || !$resultat1) {
- echo 'Erreur lors de l\'insertion dans la base de
- données. />';
- }
- else {
- mysql_close();
- header('location: listes.php');
- exit();
- }
- }
|
Fichier inclus
Code :
- <?php
- session_start();
- if(!isset($_SESSION['login'])) {
- header('location: id.php?url='.$url);
- exit;
- }
- $niveau = ($_SESSION['niveau']);
- if($niveau < $autorisation) {
- header('location: red.php?url='.$url);
- exit;
- }
- ?>
|
Je précise que sur les scripts PHP ne faisant pas appel à la fonction header tout se passe sans problèmes Message édité par bepimaco le 08-11-2005 à 22:43:12 ---------------
Bepimaco
|