Probleme php avec header

Fermé
imadhi Messages postés 95 Date d'inscription dimanche 12 avril 2009 Statut Membre Dernière intervention 18 juin 2010 - 25 avril 2010 à 18:04
imadhi Messages postés 95 Date d'inscription dimanche 12 avril 2009 Statut Membre Dernière intervention 18 juin 2010 - 25 avril 2010 à 19:35
Bonsoir,
Voila j'ai un petit probleme en ce qui concerne la fonction header.
Alors aprer avoir remplit tous les champs du formulaire sa doit rediriger vers la page d'acceuil :

$message = correct;
$mail = mysql_escape_string($_POST['mail']);
redirect('./index.php?message=$message&mail=$mail');


Mais tous se derouler bien avant que je n'ajoute un captcha (une image antibot), le header et desormer envoyer par l'image :

header("Content-type: image/png");
captcha();


Donc sa me met que le header est deja envoyer donc plus moyen de rediriger la page vers la page d'aceuil.

MErci pour votre aide. J'espere que j'ai bien expliquer mon probleme !!
A voir également:

2 réponses

Elsyfiryos Messages postés 83 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 septembre 2012 11
25 avril 2010 à 18:55
Salut, peut tu nous montrer ton script ?
0
imadhi Messages postés 95 Date d'inscription dimanche 12 avril 2009 Statut Membre Dernière intervention 18 juin 2010 18
25 avril 2010 à 19:35
Ok :

Page d'inscription :

<?php
session_start();
?>

<?php
	if (isset ($_POST['inscription']) && $_POST['inscription'] == 'Inscription')
	{
		if ((isset($_POST['login']) && !empty($_POST['login'])) && 
			(isset($_POST['password']) && !empty($_POST['password'])) && 
			(isset($_POST['password_confirm']) && !empty($_POST['password_confirm'])) &&
			(isset($_POST['mail']) && !empty($_POST['mail'])) &&
			(isset($_POST['mail_confirm']) && !empty($_POST['mail_confirm'])) &&
			(isset($_POST['captcha']) && !empty($_POST['captcha'])))
		{
			$mail = htmlentities($_POST['mail']);
			
			function VerifierFormatAdresseMail($mail)
			{
				$format = '#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
				if (preg_match($format, $mail))
					return true;
				
				else
					return false;
			}

			if ($_POST['password'] != $_POST['password_confirm'])
			{
				$erreur = 'Les 2 mots de passe sont différents.';
			}
			
			else if (VerifierFormatAdresseMail($mail) == false)
			{
				$erreur = 'Le format de votre adresse mail est invalide.';
			}
			
			else if ($_POST['mail'] != $_POST['mail_confirm'])
			{
				$erreur = 'Les 2 adresses mail sont différentes.';
			}
			elseif (isset($_SESSION['captcha']) && $_POST['captcha'] !== $_SESSION['captcha']) 
			{
			    $erreur = 'Le code que vous aver entrer n\'est pas bon';
		     }
			
	    else
			{
			  $faction = $_POST['faction'];
			  $bd = mysql_connect('localhost', 'root', '');
				mysql_select_db('TFW', $bd);
				
				           $message = correct;
					       $mail = mysql_escape_string($_POST['mail']);
					         redirect('./index.php?message=$message&mail=$mail');
				
			    if ($faction == cdp)
					 {
					   $sqlLogin = 'SELECT count(*) FROM cdp WHERE cdp_login="'.mysql_escape_string($_POST['login']).'"';
				       $requeteLogin = mysql_query($sqlLogin) or die('Erreur SQL !<br />'.$sqlLogin.'<br />'.mysql_error());
				       $donneesLogin = mysql_fetch_array($requeteLogin);
				
				       $sqlMail = 'SELECT count(*) FROM cdp WHERE cdp_mail="'.mysql_escape_string($_POST['mail']).'"';
				       $requeteMail = mysql_query($sqlMail) or die('Erreur SQL !<br />'.$sqlMail.'<br />'.mysql_error());
				       $donneesMail = mysql_fetch_array($requeteMail);
					   
					   if ($donneesLogin[0] == 0 and $donneesMail[0] == 0)
				         {
					   
					       $sql = 'INSERT INTO cdp VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['password'])).'", "'.mysql_escape_string($_POST['mail']).'", "'.mysql_escape_string($_POST['faction']).'", "0")';
					       mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
					
					       session_start();
					       $_SESSION['login'] = $_POST['login'];
					        exit();
					      }
						  
						else
				           {
					          $erreur = 'Un membre possède déjà ce pseudo ou cette adresse mail.';
				            }
			         }
				elseif ($faction == pirate)
					 {
					   $sqlLogin = 'SELECT count(*) FROM pirate WHERE pirate_login="'.mysql_escape_string($_POST['login']).'"';
				       $requeteLogin = mysql_query($sqlLogin) or die('Erreur SQL !<br />'.$sqlLogin.'<br />'.mysql_error());
				       $donneesLogin = mysql_fetch_array($requeteLogin);
				
				       $sqlMail = 'SELECT count(*) FROM pirate WHERE pirate_mail="'.mysql_escape_string($_POST['mail']).'"';
				       $requeteMail = mysql_query($sqlMail) or die('Erreur SQL !<br />'.$sqlMail.'<br />'.mysql_error());
				       $donneesMail = mysql_fetch_array($requeteMail);
					   
					   if ($donneesLogin[0] == 0 and $donneesMail[0] == 0)
				         {
					   
					       $sql = 'INSERT INTO pirate VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['password'])).'", "'.mysql_escape_string($_POST['mail']).'", "'.mysql_escape_string($_POST['faction']).'", "0")';
					       mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
					
					       session_start();
					       $_SESSION['login'] = $_POST['login'];
					        exit();
					      }
						  
						else
				           {
					          $erreur = 'Un membre possède déjà ce pseudo ou cette adresse mail.';
				           }
				     }
			     elseif ($faction == marine)
					 {
					   $sqlLogin = 'SELECT count(*) FROM marine WHERE marine_login="'.mysql_escape_string($_POST['login']).'"';
				       $requeteLogin = mysql_query($sqlLogin) or die('Erreur SQL !<br />'.$sqlLogin.'<br />'.mysql_error());
				       $donneesLogin = mysql_fetch_array($requeteLogin);
				
				       $sqlMail = 'SELECT count(*) FROM marine WHERE marine_mail="'.mysql_escape_string($_POST['mail']).'"';
				       $requeteMail = mysql_query($sqlMail) or die('Erreur SQL !<br />'.$sqlMail.'<br />'.mysql_error());
				       $donneesMail = mysql_fetch_array($requeteMail);
					   
					   if ($donneesLogin[0] == 0 and $donneesMail[0] == 0)
				         {
					   
					       $sql = 'INSERT INTO marine VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['password'])).'", "'.mysql_escape_string($_POST['mail']).'", "'.mysql_escape_string($_POST['faction']).'", "0")';
					       mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
					
					       session_start();
					       $_SESSION['login'] = $_POST['login'];
					        exit();
					      }
						  
						else
				           {
					          $erreur = 'Un membre possède déjà ce pseudo ou cette adresse mail.';
				           }
				     }
			}
		}
		
		else
		{
			$erreur = 'Tous les champs doivent être remplis.';
		}
	}
?>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<title>The Freedom's World - V1 - Inscription</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="index.css" />
	</head>
	<body>
		<div align="center">
			<img src="banniere.png" alt="Bannière" />
			
			<!-- Table principale du jeu (contient toutes les données) !-->
			<table width="1000" class="Site">
			
				<!-- Bandeau titre de la table principale !-->
				<tr bgcolor="#4682b4">
					<td colspan="2">
						<div align="center" class="Titre">The Freedom's World - V1</div>
					</td>
				</tr>
				
				<!-- Partie centrale de la table principale !-->
				<tr bgcolor="#b0c4de">
				
					<!-- Partie "Menu" de la partie centrale (colonne de gauche) !-->
					<td width="160" height="410" style="vertical-align:top" bgcolor="#bad2e1">
						<div align="center">
							<ul class="LienMenu">
								<li><a href="index.php">Accueil</a></li>
								<li><a href="">Forum</a></li>
								<li><a href="reglement.php">Règlement</a></li>
								<li><a href="">Histoire</a></li>
								<li><a href="">Livre d'or</a></li>
							</ul>
						</div>
					</td>
					
					<!-- Partie "Données" de la partie centrale !-->
					<td>
						<div align="center" class="Formulaire">
							<img src="banniereInscription.png" alt="Bannière Inscription" />
							<form action="inscription.php" method="POST">
								<table width="400" align="center" border="0" class="FormulaireDonnées" bgcolor="#bad2e1">
									<tr>
										<td width="235">
											<div align="right">Pseudo :</div>
										</td>
										<td width="165">
											<div align="center">
												<input type="text" name="login" value="	<?php
																							if (isset($_POST['login']))
																								echo htmlentities(trim($_POST['login']));
																						?>">
											</div>
										</td>
									</tr>
									<tr>
										<td>
											<div align="right">Mot de passe :</div>
										</td>
										<td>
											<div align="center">
												<input type="password" name="password" value="	<?php
																									if (isset($_POST['password']))
																										echo htmlentities(trim($_POST['password']));
																								?>">
											</div>
										</td>
									</tr>
									<tr>
									<tr>
										<td>
											<div align="right">Confirmation du mot de passe :</div>
										</td>
										<td>
											<div align="center">
												<input type="password" name="password_confirm" value="	<?php
																											if (isset($_POST['password_confirm']))
																												echo htmlentities(trim($_POST['password_confirm']));
																										?>">
											</div>
										</td>
									</tr>
									<tr>
										<td>
											<div align="right">Adresse mail :</div>
										</td>
										<td>
											<div align="center">
												<input type="text" name="mail" value="	<?php
																							if (isset($_POST['mail']))
																								echo htmlentities(trim($_POST['mail']));
																						?>">
											</div>
										</td>
									</tr>
									<tr>
										<td>
											<div align="right">Confirmation de l'adresse mail :</div>
										</td>
										<td>
											<div align="center">
												<input type="text" name="mail_confirm" value="	<?php
																									if (isset($_POST['mail_confirm']))
																										echo htmlentities(trim($_POST['mail_confirm']));
																								?>">
											</div>
										</td>
									</tr>
									<tr>
										<td>
											<div align="right">Faction :</div>
										</td>
										<td>
											<div align="center">
												 <select name="faction">
												     <option value="cdp">Chasseur de prime</option>
                                                     <option value="pirate">Pirate</option>
													 <option value="marine">Marine</option>
                                                 </select>
											</div>
										</td>
									</tr>
									<tr>
										<td>
											<div align="right">Recopier le code :</div>
										</td>
										<td>
											<div align="center">
												 <input type="text" name="captcha" id="captcha" />
											</div>
										</td>
									</tr>
									<tr>
										<td colspan="2">
											<div align="center"><br />
												<img src="captcha.php" />
											</div>
										</td>
									</tr>
									<tr>
										<td colspan="2">
											<div align="center"><br />
												<input type="submit" name="inscription" value="Inscription">
											</div>
										</td>
									</tr>
								</table>
							</form>
							<?php
								if (isset($erreur))
									echo '<br />', $erreur;
							?>
						</div>
					</td>
				</tr>
				
				<!-- Bandeau copyright de la table principale !-->
				<tr bgcolor="#4682b4">
					<td colspan="2">
						<div align="center" class="TitreBasPage">Tous droits réservés - The Freedom's World</div>
					</td>
				</tr>
			</table>
		</div>
	</body>
</html>


et celui du captcha :

<?php
session_start();

function nombre($n)
{
    return str_pad(mt_rand(0,pow(10,$n)-1),$n,'0',STR_PAD_LEFT);
}

function image($mot)
{
    $size = 32;
    $marge = 15;
    $font = 'angelina.ttf';
    
    $matrix_blur = array(
        array(1,1,1),
        array(1,1,1),
        array(1,1,1));
        
    $box = imagettfbbox($size, 0, $font, $mot);
    $largeur = $box[2] - $box[0];
    $hauteur = $box[1] - $box[7];
    $largeur_lettre = round($largeur/strlen($mot));
    
    $img = imagecreate($largeur+$marge, $hauteur+$marge);
    $blanc = imagecolorallocate($img, 255, 255, 255); 
    $noir = imagecolorallocate($img, 0, 0, 0);
    
    $couleur = array(
        imagecolorallocate($img, 0x99, 0x00, 0x66),
        imagecolorallocate($img, 0xCC, 0x00, 0x00),
        imagecolorallocate($img, 0x00, 0x00, 0xCC),
        imagecolorallocate($img, 0x00, 0x00, 0xCC),
        imagecolorallocate($img, 0xBB, 0x88, 0x77));

    for($i = 0; $i < strlen($mot);++$i)
    {
        $l = $mot[$i];
        $angle = mt_rand(-35,35);
        imagettftext($img,mt_rand($size-7,$size),$angle,($i*$largeur_lettre)+$marge, $hauteur+mt_rand(0,$marge/2),$couleur[array_rand($couleur)], $font, $l);    
    }
    
    
    imageline($img, 2,mt_rand(2,$hauteur), $largeur+$marge, mt_rand(2,$hauteur), $noir);
    imageline($img, 2,mt_rand(2,$hauteur), $largeur+$marge, mt_rand(2,$hauteur), $noir);
    

    imageconvolution($img, $matrix_blur,9,0);
    imageconvolution($img, $matrix_blur,9,0);
    
    imagepng($img);
    imagedestroy($img);
}


function captcha()
{
    $mot = nombre(5);
    $_SESSION['captcha'] = $mot;
    image($mot);
}

header("Content-type: image/png");
captcha();
?>


Voila !!
0