IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Cannot modify header information


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Cannot modify header information
    Voila j'ai créé un formulaire d'insertion de news sous dreamweaver 8
    mais j'ai un probleme au niveau de la redirection apres insertion
    Warning: Cannot modify header information - headers already sent in f:\program files\easyphp1-8\www\why.php on line 54
    Vous savez pourquoi ?
    Voila la code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <?php virtual('/Connections/news.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
     
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
     
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }
     
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
      $insertSQL = sprintf("INSERT INTO news (titre, `date`, texte, auteur, image, alt) VALUES (%s, %s, %s, %s, %s, %s)",
                           GetSQLValueString($_POST['titre'], "text"),
                           GetSQLValueString($_POST['date'], "text"),
                           GetSQLValueString($_POST['texte'], "text"),
                           GetSQLValueString($_POST['auteur'], "text"),
                           GetSQLValueString($_POST['image'], "text"),
                           GetSQLValueString($_POST['alt'], "text"));
     
      mysql_select_db($database_news, $news);
      $Result1 = mysql_query($insertSQL, $news) or die(mysql_error());
     
      $insertGoTo = "/news.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
    ?>
    Ce que je ne comprend pas c'est qu'avec dreamweaver 7 sa marchais tout bien

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Tout simplement tu as envoyé des données vers le navigateur avant d'utiliser la directive header

    Cela peut-être un espace, un echo

    Vérifies que tu ne fais pas d'echo avant un header().
    Tu peux vérifier également que tout tes scripts php ont bien <? comme premier caractères

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    De ce coté la tout parrait ok, j'ai déja consulté plusieurs forums ou j'ai vu de supprimé tout les espaces, retours chariot en trop, ce que j'ai fais, je ne vois vraiment pas d'ou sa peux venir

  4. #4
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Tu as aussi vérifié dans le fichier inclus : news.php

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Ouai, je vois vraiment pas d'ou sa vien, sous DMW 2004 tout marchait et avec la 8 non :S

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Voila le code de la page ou sont afficher les enrgistrements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <?php virtual('/Connections/news.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
     
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    }
     
    mysql_select_db($database_news, $news);
    $query_news = "SELECT * FROM news ORDER BY id DESC";
    $news = mysql_query($query_news, $news) or die(mysql_error());
    $row_news = mysql_fetch_assoc($news);
    $totalRows_news = mysql_num_rows($news);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
       <head>
           <title>Les news de Scripts Python</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <meta name="author" content="meltir" />
           <meta name="description" content="La page d'accueil de Scripts Python" />
           <meta name="keywords" content="scripts python, accueil scripts python, python" />
           <link rel="stylesheet" media="screen" type="text/css" title="style de base de la page" href="style.css" />
           <link rel="shortcut icon" type="image/x-icon" href="images/script_python.ico" />
       </head>
    <body>
                <?php do { ?>
      		<table width="100%" border="0">
              <tr>
                <td>  		<h5><?php echo $row_news['titre']; ?></h5>              <p class="news"><em class="auteur_news">Publi&eacute; le <?php echo $row_news['date']; ?> par <?php echo $row_news['auteur']; ?> <br/></em><img src="<?php echo $row_news['image']; ?>" class="float_news_image" alt="<?php echo $row_news['alt']; ?>" title="<?php echo $row_news['alt']; ?>"/>
                <?php echo $row_news['texte']; ?></p>
    			<h5><a href="/jqgdhfgssduyftg/new.php">Ajouter</a> - <a href="/jqgdhfgssduyftg/edit.php?id=<?php echo $row_news['id']; ?>">editer</a> - <a href="/jqgdhfgssduyftg/del.php?id=<?php echo $row_news['id']; ?>">supprimer</a> </h5>
    			</td>
                  </tr>
            </table>
    <?php } while ($row_news = mysql_fetch_assoc($news)); ?> 
      </body>
    </html>
    <?php
    mysql_free_result($news);
    ?>

  7. #7
    Membre confirmé Avatar de yjuliet
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Août 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 362
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par Belebostre
    De ce coté la tout parrait ok, j'ai déja consulté plusieurs forums ou j'ai vu de supprimé tout les espaces, retours chariot en trop, ce que j'ai fais, je ne vois vraiment pas d'ou sa peux venir
    En fait, non, tu n'as pas supprimé tous les retours chariot en trop !!!

    Citation Envoyé par Belebostre
    <?php virtual('/Connections/news.php'); ?>
    <?php
    ...
    Mais le problème semble plutôt venir de l'ensemble du code HTML présent au milieu de ton code PHP. Ce qui se passe quand PHP exécute ta page :
    1. il analyse l'ensemble de la syntaxe de la page
    2. il détecte qu'il y a un bloc HTML et envoie donc les entêtes
    3. il envoie le début du HTML qui doit être envoyé sans aucune condition
    4. il exécute le code PHP
    5. il plante parce que tu essayes d'envoyer des entêtes supplémentaires alors qu'une partie du corps de la page est déjà arrivé.


    si tu lui incluais le bout de HTML une fois toutes les entêtes persos envoyées, il n'y aurait plus de problème, mais ce qu'il faut surtout c'est éviter d'avoir des bouts de HTML au milieu de ton PHP si tu as besoin de modifier les entêtes.

  8. #8
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    et remplace virtual() par include() ou require()... .. .

    @ tchaOo°

  9. #9
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par yjuliet
    si tu lui incluais le bout de HTML une fois toutes les entêtes persos envoyées, il n'y aurait plus de problème, mais ce qu'il faut surtout c'est éviter d'avoir des bouts de HTML au milieu de ton PHP si tu as besoin de modifier les entêtes.
    Il est ou ce bout de code HTML ?

    Citation Envoyé par kankrelune
    et remplace virtual() par include() ou require()... .. .

    @ tchaOo°
    Quand je remplace je tombe sur une erreur
    Pour require
    Warning: main(/Connections/news.php): failed to open stream: No such file or directory in f:\program files\easyphp1-8\www\why.php on line 1

    Fatal error: main(): Failed opening required '/Connections/news.php' (include_path='.;F:/Program Files/EasyPHP1-8\php\pear\') in f:\program files\easyphp1-8\www\why.php on line 1
    Pour include la meme erreur mais je vois quand meme le forumlaire

  10. #10
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par Belebostre
    Il est ou ce bout de code HTML ?
    Là...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php virtual('/Connections/news.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php 
     
    virtual('/Connections/news.php');
     
    if (!function_exists("GetSQLValueString")) {
    Pour l'erreur avec le include (c'est peut être ça qui génère l'erreur) vérifis que le chemin vers news.php est bien le bon... essaye... .. .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require('Connections'.DIRECTORY_SEPARATOR.'news.php');
    @ tchaOo°

  11. #11
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par kankrelune
    Pour l'erreur avec le include (c'est peut être ça qui génère l'erreur) vérifis que le chemin vers news.php est bien le bon... essaye... .. .
    Effectivement l'erreur venais de là !
    Merci baucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CKEditor] pb fckeditor chez ovh !!!upload ok! erreur browser cannot modify header information
    Par damien40 dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 29/03/2007, 20h37
  2. Cannot modify header information
    Par nerixm dans le forum Langage
    Réponses: 4
    Dernier message: 19/09/2006, 22h29
  3. Réponses: 5
    Dernier message: 04/09/2006, 15h13
  4. Cannot modify header information
    Par rane dans le forum Langage
    Réponses: 5
    Dernier message: 29/03/2006, 14h32
  5. Warning: Cannot modify header information
    Par neXistPa dans le forum Langage
    Réponses: 9
    Dernier message: 16/02/2006, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo