Page 1 sur 1

header();

Posté : 22 févr. 2006, 16:54
par sylvie
bonjour, j'ai un probleme :

je voudrai si le mail est ok faire un header pour le rediriger vers une autre page te de meme pour la sortie ... Mais y veux pas y me met des warning ...

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at c:\documents and settings\stagiere\bureau\dit simplification programme\salessubmit.php:30) in c:\documents and settings\stagiere\bureau\dit simplification programme\salessubmit.php on line 77
il s'agit de la ligne if($_POST['mail'] et de mon header mit dans la partie sortir ... comment faire? quelqu'un a une idee???
if($_POST['Mail'] == "Envoyer un mail & Sauver") 
{
	 if ($mail!='')
   {$result=mail($mail, "Votre ...");
    if ($result)
     {
              
     	echo "Mail Envoyé Avec Succès<br>";
     }
   }
   else 
   {
   	echo "ATTENTION IL N'Y A PAS D'ADRESSE E-MAIL POUR CE CLIENT !!!!!!";
   } 
}
 
 elseif ($_POST['Out'] == "Sortie de la machine")
 {
 	$sortir=1;
 	$requ= "UPDATE intervention SET sortir=$sortir where idinter='".$_GET['var']."' ";
 	$rep = mysql_query($requ) or die('Erreur SQL');
 	

 	
 	if (!$rep)

 	{
        echo "L'enregistrement de vos données a échoué. Essayez plus tard.";
    } 
    else 
    {  
                header("Location: statut2.php");
    	echo "Machine sortie avec succes";
         
    
    }
 
 
 }



?>

MErci mille fois d'avance

Posté : 22 févr. 2006, 17:05
par mario
Sylvie,
en lisant la F.A.Q tu pourras comprendre pourquoi le message d'erreur apparait :?: http://www.phpfrance.com/forums/voir_sujet-47.php

cette ligne de code:
$result=mail($mail, "Votre ...");
if ($result) {
peut se résumer de cette facon
if ( $result = mail($mail,"Votre ...", "Texte") ){
Pour la requete:
$requ= "UPDATE intervention SET sortir=$sortir where idinter='".$_GET['var']."' ";
Il n'est pas utile de mettre des quotes (') pour les champs numériques (INT par exemple).
Le politiquement correcte voudrait que la chaine $requ ressemble à ça:
$requ = "UPDATE intervention
SET sortir = '".$sortir."'
WHERE idinter = ".$_GET['var'];

Posté : 22 févr. 2006, 17:11
par Invité
il me met aussi une erreur ici : Notice: Undefined index: Mail in c:\documents and settings\stagiere\bureau\dit simplification programme\salessubmit.php on line 34

ce qui est logique, si je clique sur le boutton sortir, je n'envoye pas de mail, donc il n'as rien, comment faire pour ne plus l'avoir???

Posté : 22 févr. 2006, 17:26
par mario
Ton formulaire est peut etre mal conçu.
Tu peux utiliser les champs de type HIDDEN (champ caché) pour transmettre de facon invisible des actions à effectuer

exemple, dans le formulaire :

Code : Tout sélectionner

<input type='hidden' name='type_demande' value='mail_et_sauver'/>
et

Code : Tout sélectionner

<input type='hidden' name='type_demande' value='sortie_machine'/>
dans le traitement du formulaire:
<?php
if ( $_POST['type_demande'] == 'mail_et_sauver'){ 
   if ( !empty($_POST['Mail'] ) {
      echo ( mail($email, 'Votre ...', 'Contenu') ) ? "Mail envoyé avec succès<br/>" : "Echec de l'envoi" ;
   } 
   else 
   { 
       echo "ATTENTION IL N'Y A PAS D'ADRESSE E-MAIL POUR CE CLIENT !!!!!!"; 
   } 
} 
elseif ($_POST['type_demande'] == 'sortie_machine') 
{ 
    $sortir=1; 
    $requ= "UPDATE intervention SET sortir=".$sortir."
    WHERE idinter = ".$_GET['var']; 
    $rep = mysql_query($requ) or die('Erreur SQL'); 
    
    if (mysql_affected_rows === 0){ 
        echo "L'enregistrement de vos données a échoué. Essayez plus tard."; 
    } 
    else 
    {   
       header("Location: statut2.php"); 
    } 
} 
?>