Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2006, 18h25   #1
Invité régulier
 
Inscription : septembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 18
Points : 7
Points : 7
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
Citation:
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 :
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
Belebostre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 20h31   #2
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
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
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 20h35   #3
Invité régulier
 
Inscription : septembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 18
Points : 7
Points : 7
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
Belebostre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2006, 20h54   #4
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Tu as aussi vérifié dans le fichier inclus : news.php
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 13h55   #5
Invité régulier
 
Inscription : septembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 18
Points : 7
Points : 7
Ouai, je vois vraiment pas d'ou sa vien, sous DMW 2004 tout marchait et avec la 8 non :S
Belebostre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2006, 17h56   #6
Invité régulier
 
Inscription : septembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 18
Points : 7
Points : 7
Voila le code de la page ou sont afficher les enrgistrements
Code :
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);
?>
Belebostre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 11h00   #7
Membre éprouvé
 
Avatar de yjuliet
 
Homme Yvan
Consultant informatique
Inscription : août 2006
Messages : 360
Détails du profil
Informations personnelles :
Nom : Homme Yvan
Âge : 32
Localisation : France

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

Informations forums :
Inscription : août 2006
Messages : 360
Points : 402
Points : 402
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.
yjuliet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 13h01   #8
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
et remplace virtual() par include() ou require()... .. .

@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 18h25   #9
Invité régulier
 
Inscription : septembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 18
Points : 7
Points : 7
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
Citation:
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
Belebostre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2006, 23h56   #10
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Citation:
Envoyé par Belebostre
Il est ou ce bout de code HTML ?
Là...

Code :
1
2
3
4
<?php virtual('/Connections/news.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
Code :
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 :
1
2
 
require('Connections'.DIRECTORY_SEPARATOR.'news.php');
@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2006, 09h05   #11
Invité régulier
 
Inscription : septembre 2006
Messages : 18
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 18
Points : 7
Points : 7
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
Belebostre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h48.


 
 
 
 
Partenaires

Hébergement Web