Php:probleme dans le refresh de la page ????

Fermé
manoula - 7 févr. 2011 à 10:57
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 - 11 févr. 2011 à 00:43
Bonjour, à vous tous

J'ai une partie admin service ,qui contient les emails envoyer par les citoyen , tu doit d'abord identifier par le nom de service le login et mot de passe ---> GesmailService.php: la liste des emails sélectionner par le service en suite pour répondre à un mail -->GesmailDetail.php : formulaire pour repondre au email et enregistre dans la base avec refresh(Gesmail_enregisaisie.pfp) en fin affichage des email aprés mis à jours dans GesmailService.php.

En faite mon probleme c que quand je fait l'enregistrement de la réponse et la redirection dans la page GesmailService.php où il y a tt la liste des email :des msg d'erreur apparaissent:

Notice: Undefined index: service in c:\xxx\xxx\gesmailsservice.php on line 11

Notice: Undefined index: login in c:\xxx/xxx/\gesmailsservice.php on line 12

Notice: Undefined index: password_serv in c:\xxx\gesmailsservice.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at c:\xxx\gesmailsservice.php:11) in c:\xxx\gesmailsservice.php on line 31

Merci de me répondre

A voir également:

5 réponses

hardmehdi Messages postés 154 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 18 août 2011 21
7 févr. 2011 à 11:02
Bonjour,

J'ai rencontré ce problème plusieurs fois ... Parce que je mettais la fonction header() au milieu de la page, sachant que les headers sont déjà envoyé.

Je te conseille de faire une redirection en Javascript ou HTML ça te posera moins de problèmes.
0
Merci hardmehdi mais mon grand souci c au niveau :
Notice: Undefined index:service in c:\xxx\xxx\gesmailsservice.php on line 11

Notice: Undefined index: login in c:\xxx/xxx/\gesmailsservice.php on line 12

Notice: Undefined index: password_serv in c:\xxx\gesmailsservice.php on line 13
0
hardmehdi Messages postés 154 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 18 août 2011 21
7 févr. 2011 à 11:08
Ce que je peux te dire à propos de ces 3 erreurs, c'est que tu les appelles mais eux elles existent pas, alors vérifie l'ordre de ton script, et vérifie comment tu les envois de page à page.
0
si je les ai utiliser dans mes 3 page en utilisant le type hiden !!!!
0
Alors mes amis???
0
hardmehdi Messages postés 154 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 18 août 2011 21
7 févr. 2011 à 14:38
Je pense qu'il faut soumettre ton formulaire avant de faire la redirection ! C'est pour ça que les variables $service $login $password n'existent pas, essaie de soumettre en Javascript ton formulaire et après rediriger ... Sinon envoi les infos dans un lien que tu récupères avec $_GET[], ou enfin, utilise les $_SESSION[].
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
7 févr. 2011 à 14:51
Salut,

Si tes problemes sont les

Notice: Undefined index:service in c:\xxx\xxx\gesmailsservice.php on line 11

Notice: Undefined index: login in c:\xxx/xxx/\gesmailsservice.php on line 12

Notice: Undefined index: password_serv in c:\xxx\gesmailsservice.php on line 13

Ce n'est "pas tres grave", cela veut juste dire que tu ne vérifies pas s'il y a quelque chose dans tes variables cf : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index

Tu peux aussi désactiver les Notice en modifiant ton php.ini en mettant : error_reporting = E_ALL & ~E_NOTICE

Mais ce n'est pas propre.. il vaut mieux les corriger.
0
voila la page GesMailService.php:
<?php
// Ligne pour la compatibilit avec l'ancienne version de php installe sur le serveur

if (!isset($_POST)) $_POST=$HTTP_POST_VARS;
if (!isset($_GET)) $_GET=$HTTP_GET_VARS;

	require("../xx.xx.php"); 
	require("../xx/db_connect.inc.php");
	require_once('../xx/xxx.php');
	
    $services=$_POST["service"];
    $loginPost=$_POST["login"];
    $MdpPost=$_POST["password_serv"];
   
    $connexion=db_connexion();
	
    $resultat = "SELECT * FROM services WHERE id_serv='$services' and password_serv='$MdpPost' and login_serv='$loginPost'";
    $Inscrit=mysql_query($resultat);
	$ligne = mysql_num_rows($Inscrit);
	if ($ligne != 0) { 
	    $row_Inscrit=mysql_fetch_array($Inscrit);
		$login = $row_Inscrit["login_serv"]; 
		$mdp = $row_Inscrit["password_serv"];
		$services= $row_Inscrit["id_serv"];
	    $query ="SELECT contact.*,services.lib_serv_fr From contact,services where contact.id_serv=services.id_serv and contact.id_serv='".$services."'";
	    $result=mysql_query($query) or die("query failed");
				
	 }
	
   else{
 header("Location: erreurlogin.html");
 }
		 
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="Espace d'administration" />
<link rel="stylesheet" type="text/css" href="xx/administration.css" />
<title> - Espace d'administration</title>
<style type="text/css">
<!--
.Style1 {
	color: #26c;
	font-size: 14px;
	font-weight: bold;
}
-->
</style>
</head>


<style type="text/css">
<!--
.warning { color: red; }
.Sommaire {font-family: Verdana ;font-size: 18px}
-->
</style>

<body>
<div id="main">
  <div id="logo"> 
    <h1><a href="index.php" accesskey="4"><img src="img/logo.gif" border="0" width="190" height="120" /></a></h1>
  </div>
<div id="intro">
<h2><a id="maincontent"></a> <br /><br /><br /><br /> &nbsp;&nbsp;Espace d'administration <br /><br /></h2>
<p></p>
</div><div class="clear"></div>

<link href="css/administration.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.Style1 {color: #26c}
-->
</style>
<h4 style="text-align:left; padding-left:5px; color:#0066FF">Nombre de visiteurs  partir du 28 Octobre 2010 :<span style="font-weight:bold">
<?php
$fp = fopen("../compteur.txt","r+"); // 1.On ouvre le fichier en lecture/criture
$nbvisites = fgets($fp,11);       // 2.On rcupre le nombre dans le fichier
          // 5.On crit dans le fichier le nouveau nb
fclose($fp);                      // 6.On ferme le fichier
echo("$nbvisites");    // 7.On affiche le compteur  l'cran
?></span>
</h4>

<h3 class="headerstyle" align="left">  Gestion des E-mails </h3>

<table width="880" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
      <td align="left" style=" xpadding:20px">
	   <?php  $ligne = mysql_num_rows($result);
	   
	    //  echo "".$ligne;
	          if ($ligne != 0) {  ?>
    <table width="880" border="0" align="center" cellpadding="0" cellspacing="0">
	  <thead id="thead">
              <tr>
			
                <td width="15%" align="center" valign="middle">Date d'enregistrement</td>
				<td width="10%" align="center" valign="middle">Service</td>
                <td width="10%" align="center" valign="middle">Nom </td>
                <td width="11%" align="center" valign="middle">Prnom</td>
                <td width="14%" align="center" valign="middle">E_mail</td>
                <td width="11%" align="center"  valign="middle">Objet</td>
                <td width="14%" align="center" valign="middle">Message</td>
				<td></td>
                <td width="16%" align="center" valign="middle">Etat<br />
                  (valide/non valide)</td>
                <td width="6%" align="center" valign="middle">&nbsp;</td>
                <td width="3%" align="center" valign="middle"></td>
              </tr>
            </thead>
			

			<tbody>
	<?php
		   $i = 0 ;
   while ($Enreg=mysql_fetch_array($result)) {

         $dateEnregistrement=$Enreg['date_enregistrement'];
		 
		
 		if ($i % 2 == 0)	$bgColor = "";
		else				$bgColor = "#CCCCCC";
		$i++;

   ?>          
 	          <tr>
                <td align="center" valign=middle><?=date("d/m/Y",strtotime($dateEnregistrement))?></td>
				<td align="center" valign=middle><?php print $Enreg["lib_serv_fr"];?></td>
                <td align="center" valign=middle><?php print $Enreg["nom"];?></td>
                <td align="center" valign=middle><?php print $Enreg["prenom"];?></td>
                <td align="center" valign=middle><?php print nl2br($Enreg["email"]); ?></td>
                <td align="center" valign=middle><?php print $Enreg["objet"]; ?></td>
                <td align="center" valign=middle><?php print $Enreg["message"]; ?></td>
				
			    <td> <input type="hidden" name ="reponse" value="<?php $Enreg["reponse"];?>"></td>
				<?php /*?><input type="hidden" name ="id" value="<?php $Enreg["id"];?>"><?php */?>
				 
				 <input type="hidden" name ="services" value="<?php $_POST["service"];?>">
				 <input type="hidden" name ="loginPost" value="<?php $_POST["login"];?>">
				 <input type="hidden" name ="MdpPost" value="<?php $_POST["password_serv"];?>">
			   
   
				<td align="center" valign=middle><?php print Etat($Enreg["etat"]); ?></td>
			    <td><a href="GesMails_Details.php?Num=<?php print $Enreg["id"];?>"><img src="img/voir.gif" border=0 /></a></td>
			    <td><a href="GesMails_Supprime.php?Num=<?php print $Enreg["id"];?>" onclick="return confirm('Voulez-vous supprimer ce mail ?')"><img src="img/supprimer.gif" border=0 /></a></td>  
		 </form>
              </tr><br>
			 </tbody>
           <?php
		    }
		  ?>
          </table>
		   <?php  } else { echo "
        <b>Il n'y a aucun mail dans ce service.</b> ";
      }?>
	  </td>
    </tr>
  </table>
	
 <p>&nbsp;</p>

<div align="center"><p class="internallink"><a class="liendeco" href="deconnexion.php">Déconnexion</a>
</p>
</div>
</div>

</body>
</html>
<p> </p>
</div>

</body>
</html>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
7 févr. 2011 à 15:46
Si tu n'as plus l'erreur du header already sent modifie juste la partie php par


<?php
// Ligne pour la compatibilit avec l'ancienne version de php installe sur le serveur

if (!isset($_POST)) $_POST=$HTTP_POST_VARS;
if (!isset($_GET)) $_GET=$HTTP_GET_VARS;

	require("../xx.xx.php"); 
	require("../xx/db_connect.inc.php");
	require_once('../xx/xxx.php');

if (isset($_POST["service"]) && isset($_POST["login"]) && isset($_POST["password_serv"]))
{
    $services=$_POST["service"];
    $loginPost=$_POST["login"];
    $MdpPost=$_POST["password_serv"];
   
    $connexion=db_connexion();
	
    $resultat = "SELECT * FROM services WHERE id_serv='$services' and password_serv='$MdpPost' and login_serv='$loginPost'";
    $Inscrit=mysql_query($resultat);
	$ligne = mysql_num_rows($Inscrit);
	if ($ligne != 0) { 
	    $row_Inscrit=mysql_fetch_array($Inscrit);
		$login = $row_Inscrit["login_serv"]; 
		$mdp = $row_Inscrit["password_serv"];
		$services= $row_Inscrit["id_serv"];
	    $query ="SELECT contact.*,services.lib_serv_fr From contact,services where contact.id_serv=services.id_serv and contact.id_serv='".$services."'";
	    $result=mysql_query($query) or die("query failed");
				
	 }
	
   else{
 header("Location: erreurlogin.html");
 }
		 
?>


Par contre j'espere que c'est que du local et que c'est pas un site de prod.. car niveau securite et injection SQL tu peux pas faire pire..

Pense a protéger tes variables $_POST avec des addslashes etc..
0
Merci chico200987 j'ai utilisé les isset mais l'erreur existe encore !!!
NB j'ai utilisé le type hidden dans les 3 page php
<input type="hidden" name ="services" value="<?php $_POST["service"];?>">
<input type="hidden" name ="loginPost" value="<?php $_POST["login"];?>">
<input type="hidden" name ="MdpPost" value="<?php $_POST["password_serv"];?>">
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
Modifié par chico200987 le 7/02/2011 à 16:59
Dans ce cas :

<input type="hidden" name ="services" value="<?php (isset($_POST['service'])) ? $_POST['service'] : ''; ?>" /> 
<input type="hidden" name ="loginPost" value="<?php (isset($_POST['login'])) ? $_POST['login'] : ''; ?>" /> 
<input type="hidden" name ="MdpPost" value="<?php (isset($_POST['password_serv'])) ? $_POST['password_serv'] : ''; ?>" /> 



Devrait passer..

Par contre encore une fois, pas tres sécurisé de ramener le password au formulaire \surtout s'il est en clair meme si le champs est cache il sera parfaitement lisible dans le code source ;)
0
non pour le moment je travail en local et je suis pas trop professionnel pour développer en php
mais j'essaye de faire un chose Merci encore :)
bon j'ai mis les isset en hidden mais :( malheuresement sa na pas fonctionner
pffff je suis dans se probleme depuis 3 jrs .
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
7 févr. 2011 à 17:15
C'est quoi qui ne marche pas exactement ?

C'est bien la suppression des notices undefine index ou tu as toujours le "header already sent" ?
0
je veux dire les erreur sont tjrs là meme le :Warning: Cannot modify header information - headers already sent by (output started
0