pbl avec serveur apache

pbl avec serveur apache - PHP - Programmation

Marsh Posté le 20-06-2006 à 12:48:10    

Voila g une page qui permet d'insérer des enregistrements dans une table tout fonctionne parfaitement lorsque je le met sur le serveur dévaluation mais voila lorsque je le test en local sur serveur apache la redirection ne fonctionne pas, cependant l'enregistrement lui marche tres bien.(code générer par dreamweaver   :whistle:  
Y a til un petit truc a modifier su rla config du serveru apache??
Ereur suivante  Warning: Cannot modify header information - headers already sent by  
merci de vos renseignements

Reply

Marsh Posté le 20-06-2006 à 12:48:10   

Reply

Marsh Posté le 20-06-2006 à 12:52:32    

layotfab a écrit :


Y a til un petit truc a modifier su rla config du serveru apache??
Ereur suivante  Warning: Cannot modify header information - headers already sent by  
merci de vos renseignements


C'est ecrit dans le message d'erreur : tu as une sortie avant ton header (HTML, retour a la ligne, autre) et ca empeche la redirection
 
Il ne doit rien y avoir en sortie avant le header ! (Tu peux avoir du code php qui ne fait aucun echo, mais pas d'HTML)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 20-06-2006 à 13:39:37    

Il n'y a rien avant c que du php, je te met le code  
Et comment explique tu que ca fonctionne sur le serveur mais en local sur apache ca marche pas?
<?php require_once('../../Connections/fab.php'); ?>
 

Code :
  1. <?php
  2. if(isset($_POST['submit'])){
  3. /*$annee1 = substr($date1, 6, 9);  
  4. $mois1 = substr($date1, 3, 2);  
  5. $jour1 = substr($date1, 0, 2);   
  6. $date1 = $annee1 . '-' . $mois1 . '-' . $jour1;
  7. $annee2 = substr($date2, 6, 9);  
  8. $mois2 = substr($date2, 3, 2);  
  9. $jour2 = substr($date2, 0, 2);   
  10. $date2 = $annee2 . '-' . $mois2 . '-' . $jour2;  
  11. */}
  12. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "" )
  13. {
  14.   $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
  15.   switch ($theType) {
  16.     case "text":
  17.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  18.       break;   
  19.     case "int":
  20.       $theValue = ($theValue != "" ) ? intval($theValue) : "NULL";
  21.       break;
  22.    case "date":
  23.       $theValue = ($theValue != "" ) ? "'" . $theValue . "'" : "NULL";
  24.       break;
  25.   }
  26.   return $theValue;
  27. }
  28. $editFormAction = $_SERVER['PHP_SELF'];
  29. if (isset($_SERVER['QUERY_STRING'])) {
  30.   $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
  31. }
  32. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1" )) {
  33.   $insertSQL = sprintf("INSERT INTO agenda (id, texte,titre, date1, date2, choix1, choix2, principal) VALUES (%s, %s, %s, %s, %s, %s, %s, %s)",
  34.                        GetSQLValueString($_POST['id'], "int" ),
  35.                        GetSQLValueString($_POST['texte'], "text" ),
  36.        GetSQLValueString($_POST['titre'], "text" ),
  37.                        GetSQLValueString($_POST['date1'], "date" ),
  38.                        GetSQLValueString($date2, "date" ),
  39.                        GetSQLValueString($_POST['choix1'], "text" ),
  40.                        GetSQLValueString($_POST['choix2'], "text" ),
  41.           GetSQLValueString($_POST['principal'], "text" ));
  42.   mysql_select_db($database_fab, $fab);
  43.   $Result1 = mysql_query($insertSQL, $fab) or die(mysql_error());
  44.   $insertGoTo = "agenda.php";
  45.   if (isset($_SERVER['QUERY_STRING'])) {
  46.     $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
  47.     $insertGoTo .= $_SERVER['QUERY_STRING'];
  48.   }
  49.   header(sprintf("Location: %s", $insertGoTo));
  50. }
  51. mysql_select_db($database_fab, $fab);
  52. $query_Recordset1 = "SELECT * FROM agenda";
  53. $Recordset1 = mysql_query($query_Recordset1, $fab) or die(mysql_error());
  54. $row_Recordset1 = mysql_fetch_assoc($Recordset1);
  55. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  56. ?>

Reply

Marsh Posté le 20-06-2006 à 13:45:59    

Tu as peut etre un probleme sur ta requete en locale ou je ne sais quoi
 
mais l'erreur elle dit que tu as une sortie avant ton header


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 20-06-2006 à 17:42:04    

mais il fonctionne parfaitement sur le serveur distant, c quand meme bizarre, est ce que le serveur apache fonctionnerait différement?

Reply

Marsh Posté le 20-06-2006 à 17:46:50    

layotfab a écrit :

mais il fonctionne parfaitement sur le serveur distant, c quand meme bizarre, est ce que le serveur apache fonctionnerait différement?


PHP peut etre configurer pour ne pas afficher les messages d'erreur en prod (serveur distant) du coup tu n'a aucune sortie et la redirection marche
 
Ce n'est pas le cas en local, tu te tape une erreur, ca ne marche plus en local.
 


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 20-06-2006 à 19:53:46    

justement g rajouter un fichier htaccess pour avoir les erreur et il n'y a pas

Reply

Marsh Posté le 20-06-2006 à 19:57:04    

layotfab a écrit :

justement g rajouter un fichier htaccess pour avoir les erreur et il n'y a pas


 
 [:theepsilon] Je vois pas le rapport.
 
Après le 'by' du message d'erreur, il y a quoi ?
 
essays de mettre dans une page juste

Code :
  1. <?php
  2. header('Location: unedresse.html');
  3. ?>


 
Si ça marche, ton serveru web marche très bien, et donc c'est bien que tu as une fonction qui gènere une erreur au dessus de ton header (genre tes mysql_query, ou bien une variable non déclaré ou autre)
 
 
(tu as peut être oublié un exit apres ton header je viens de me dire)


Message édité par zapan666 le 20-06-2006 à 19:59:18

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 20-06-2006 à 20:12:16    

Apres l'erreur il y a ca :
(output started at c:\program files\easyphp1-8\www\immo\admin\batiment\info_pro.php:26) in c:\program files\easyphp1-8\www\immo\admin\batiment\info_pro.php on line 53
 
Pour le htacces j'ai mi ca de dedans pour voir les erreurs :  
php_flag display_errors on

Reply

Marsh Posté le 20-06-2006 à 20:26:07    

La gestion des erreurs PHP ca se fait dans php.ini. Active les toutes dans ton php locale, tu auras un beau print d'un warning.
 
Cf plus haut, ton serveur en prod à sans doute tout les messages de php sur off, question de sécurité.

Reply

Marsh Posté le 20-06-2006 à 20:26:07   

Reply

Marsh Posté le 20-06-2006 à 20:31:00    

layotfab a écrit :

Apres l'erreur il y a ca :
(output started at c:\program files\easyphp1-8\www\immo\admin\batiment\info_pro.php:26) in c:\program files\easyphp1-8\www\immo\admin\batiment\info_pro.php on line 53
 
Pour le htacces j'ai mi ca de dedans pour voir les erreurs :  
php_flag display_errors on


 
et y'a quoi ç la ligne 26 du fichier indiquer ?  
c:\program files\easyphp1-8\www\immo\admin\batiment\info_pro.php:26


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 20-06-2006 à 20:32:52    

Je ve que mon code fonctionne en local il faut que je le presente :pt1cable:

Reply

Marsh Posté le 20-06-2006 à 20:34:27    

bah non, mais bon, ça sera a toi de trouver le problème.
 
pour moi le problème viens de la ligne 26 du fichier machin.
 
Je pense que l'erreur est assez explicite pour que ça soit ça le problème


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 20-06-2006 à 20:38:57    

ok je vais voir ca, merci de votre aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed