header qui pose problème

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : header qui pose problème

Re: header qui pose problème

par xTG » 29 févr. 2012, 15:31

C'est que tu as un autre affichage.
Et le message d'erreur te l'indique : C:\Program Files\EasyPHP-5.3.8.0\www\cms_garage\admin\_ajout_marques_modeles.php à la ligne 122.

Re: header qui pose problème

par banban55 » 29 févr. 2012, 15:12

oui aucun changement ...

Re: header qui pose problème

par moogli » 29 févr. 2012, 14:59

a tu essayé d'inverser les deux lignes ? ^^

Re: header qui pose problème

par banban55 » 29 févr. 2012, 14:29

Oui ok je comprend le principe, mais alors comment je peux mettre une redirection " header('refresh:3;url=_gestion_marque.php'); " à la fin de ma condition sans avoir le message d'erreur ?

Re: header qui pose problème

par xTG » 29 févr. 2012, 09:33

Tu n'as semble-t-il pas compris.
Par exemple ceci dans ton code :
echo '<div id="avertissement">Marques supprimer</div>';
header('refresh:3;url=_gestion_marque.php');
est incorrect, tu envoies quelque chose en sortie avant de faire un header.

Re: header qui pose problème

par banban55 » 29 févr. 2012, 09:01

Bonsoir,

RTFM :D
http://php.net/manual/fr/function.header.php
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

D'accord mais que veulent t'ils dire par espace ou ligne vide ? je comprend pas car j'ai une autre page identique qui traite une autre table, celle-ci fonctionne parfaitement.

Re: header qui pose problème

par cydelic » 28 févr. 2012, 23:02

Bonsoir,

RTFM :D
http://php.net/manual/fr/function.header.php
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

header qui pose problème

par banban55 » 28 févr. 2012, 22:51

Bonsoir à tous

Je suis face à un nouveau problème très étrange. L'effacement a bien lieu, le code fonctionne mais je pense que le problème vient du header.
J'ajoute que j'utilise un code "identique" pour une autre page et celui-ci ne pose aucun problème bizarrement.


message erreur:

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\EasyPHP-5.3.8.0\www\cms_garage\admin\_ajout_marques_modeles.php:122) in C:\Program Files\EasyPHP-5.3.8.0\www\cms_garage\admin\_listing_marques.php on line 31

Voici les pages en question:

Page _listing_marques.php
<?php
	//connection à la base de données
	require_once '../_inc/_connexion.php';
	if (isset($_GET['id_marque']))
		{
		// effacement de la marque et du modele
		$sql_delete = ('DELETE FROM marques, modeles 
						
						USING marques, modeles
						
						WHERE marques.id = '.$_GET['id_marque'].'
						
						AND id_marque = '.$_GET['id_marque'].'
						
						');
		$sql_suppr_marque = mysql_query($sql_delete) or die('Erreur SQL !<br />'.$sql_delete.'<br />'.mysql_error());
		
		echo '<div id="avertissement">Marques supprimer</div>';
		header('refresh:3;url=_gestion_marque.php');
		}	
	elseif (isset($_GET['id_modele']))
		{
		// effacement du modele
		$sql_delete = ('DELETE FROM modeles 
												
						WHERE modeles.id = '.$_GET['id_modele'].'
						');
		$sql_suppr_marque = mysql_query($sql_delete) or die('Erreur SQL !<br />'.$sql_delete.'<br />'.mysql_error());
		
		echo '<div id="avertissement">Modeles supprimer</div>';
		header('refresh:3;url=_gestion_marque.php');
		}	
	else
		{
		
		if (isset($_GET['tri']))
			{
			// listing des marques et modeles da la base de données
			$req_marque = ('SELECT R.id AS id_marque, SR.id AS id_modele, R.marque, SR.modele
							FROM marques AS R
							INNER JOIN modeles AS SR ON R.id = SR.id_marque
							WHERE marque LIKE "'.$_GET['tri'].'%"
							ORDER BY marque ASC ');
			
			$resu_marque = mysql_query($req_marque) or die("raté") ;
			$oldrub = "" ;
			
			echo '<p style="text-align:center;">Listes des marques qui commence par la lettre '.$_GET['tri'].'</p></br>';
			$i=0;
				while ($ligne_marque = mysql_fetch_array($resu_marque) ) 
                                {
                                if($i!=0 && $ligne_marque['marque'] != $oldrub) echo'</ul>';
                                if ($ligne_marque['marque'] != $oldrub) echo '<h4><a href="_gestion_marque.php?id_marque='.$ligne_marque['id_marque'].'">'.$ligne_marque['marque'].'</a></br></h4><ul class="option">' ;
                                echo '<li class="marque"><a href="_gestion_marque.php?id_modele='.$ligne_marque['id_modele'].'">'.$ligne_marque['modele'].'</a></li>' ;
                                $oldrub = $ligne_marque['marque'] ;
                                $i++;
                                }
                                echo '</ul>';
			}
		else
			{	
			$recherche_a = "A";
				// listing des marques et modeles da la base de données
			$req_marque = ('SELECT R.id AS id_marque, SR.id AS id_modele, R.marque, SR.modele
							FROM marques AS R
							INNER JOIN modeles AS SR ON R.id = SR.id_marque
							WHERE marque LIKE "'.$recherche_a.'%"
							ORDER BY marque ASC ');
			
			$resu_marque = mysql_query($req_marque) or die("raté") ;
			$oldrub = "" ;
			
			echo '<p style="text-align:center;">Listes des marques qui commence par la lettre '.$recherche_a.'</p></br>';
			$i=0;
				while ($ligne_marque = mysql_fetch_array($resu_marque) ) 
                                {
                                if($i!=0 && $ligne_marque['marque'] != $oldrub) echo'</ul>';
                                if ($ligne_marque['marque'] != $oldrub) echo '<h4><a href="_gestion_marque.php?id_marque='.$ligne_marque['id_marque'].'">'.$ligne_marque['marque'].'</a></br></h4><ul class="option">' ;
                                echo '<li class="marque"><a href="_gestion_marque.php?id_modele='.$ligne_marque['id_modele'].'">'.$ligne_marque['modele'].'</a></li>' ;
                                $oldrub = $ligne_marque['marque'] ;
                                $i++;
                                }
                                echo '</ul>';
			}
		}
?>

Page _ajout_marques_modeles.php
<?php
	//connection à la base de données
	require_once '../_inc/_connexion.php';
	
	$sql_recup_marque = ("SELECT * FROM marques ORDER BY marque ASC");
	$sql_query_marque = mysql_query($sql_recup_marque) or die('Erreur SQL !<br />'.$sql_recup_cat.'<br />'.mysql_error());
	
	if (isset($_POST['marque']) && isset($_FILES['avatar']))
		{
		$avatar = $_FILES['avatar'];
		$avatar_name = $avatar['name'];
		$ext = strtolower(substr(strrchr($avatar_name,'.'),1));
		$ext_aut = array('jpg','jpeg','png','gif');
									
		function check_extension($ext,$ext_aut)
			{
				if(in_array($ext,$ext_aut))
					{
					return true;
					}
			}
									
		$valid = (!check_extension($ext,$ext_aut)) ? false : true;
		$erreur = (!check_extension($ext,$ext_aut)) ? 'Veuillez charger une image' : '';
									
		if($valid)
			{
			$max_size = 20000000000;
			if($avatar['size']>$max_size)
				{
				$valid = false;
				$erreur = 'Fichier trop gros';
				}
			}
									
			if($valid)
				{
				if($avatar['error']>0)
					{
					$valid = false;
					$erreur = 'Erreur lors du transfert';
					}
				}
									
			if($valid)
				{
				$path_to_image = '../img_logos/';
				$path_to_min = '../img_logos/min/';
										
				$filename = sha1(uniqid($avatar_name));
										
				$source = $avatar['tmp_name'];
				$target = $path_to_image . $filename. '.'. $ext;
										
				move_uploaded_file($source,$target);
										
				if($ext == 'jpg' || $ext == 'jpeg') {$im = imagecreatefromjpeg($path_to_image.$filename.'.'.$ext);}
				if($ext == 'png') {$im = imagecreatefrompng($path_to_image.$filename.'.'.$ext);}
				if($ext == 'gif') { $im = imagecreatefromgif($path_to_image.$filename.'.'.$ext);}
										
				$ox = imagesx($im);
				$oy = imagesy($im);
										
				$nx = 400;
				$ny = floor($oy *($nx/$ox));
										
				$nm = imagecreatetruecolor($nx,$ny);
										
				imagecopyresized($nm, $im, 0,0,0,0, $nx,$ny,$ox,$oy);
										
				imagejpeg($nm, $path_to_min.$filename.'.'.$ext);
										
				$nom_image = $filename.'.'.$ext;
				
				//connection à la base de données
				require_once '../_inc/_connexion5.php';
										
				$success = 'Photo ajouter avec succès';
				$req_ajout_marque = ('INSERT INTO marques (
								`id` ,
								`marque` ,
								`img_marque` 
								)
								VALUES (NULL , "'.$_POST['marque'].'", "'.$nom_image.'")');
				mysql_query($req_ajout_marque) or die('Erreur SQL !'.$req_ajout_marque.'<br>'.mysql_error());
				
				$resultat_sql = "Marque ajouter avec succès";
				}
		}
	elseif (isset($_POST['modele']) && isset($_POST['marque']))
		{
		$req_ajout_option = ('INSERT INTO modeles (
						`id` ,
						`id_marque` ,
						`rappel_marque` ,
						`modele`						
						)
						VALUES (NULL , "'.$_POST['marque'].'" , NULL , "'.$_POST['modele'].'")');
		mysql_query($req_ajout_option) or die('Erreur SQL !'.$req_ajout_option.'<br>'.mysql_error());
		}
	else
		{
		$erreur = "Formulaire incomplet";
		}

?>

<div id="aj_marques">
	<form id="ajout_marques" name="ajout_marques" method="post" enctype="multipart/form-data"  action="_gestion_marque.php">
		Marques du véhicule: <input type="text" name="marque" id="marque">
		Charger un logo :<input type="file" name="avatar" />
		<input type="submit" name="button" id="button" value="Ajouter">
	</form>
</div>
<div id="aj_modeles">
	<form id="ajout_modeles" name="ajout_modeles" method="post" action="_gestion_marque.php">
		<select name="marque">
		<?php
		
		while ($row_marque = mysql_fetch_array($sql_query_marque))
										{
										echo '<option id="marque" value="'.$row_marque['id'].'">'.$row_marque['marque'].'</option>';
										}
										
		?>
		</select>
		Modèle du véhicule: <input type="text" name="modele" id="modele">
		<input type="submit" name="button" id="button" value="ajouter">
	</form>

</div>