[Résolu] page blanche et formulaire

Petit nouveau ! | 8 Messages

08 janv. 2010, 23:48

Bonsoir,

J'ai un petit soucis concernant une de mes pages php, elle est censée m'afficher le résultat de ce qu'à saisi l'utilisateur (en plus de rajouter les données dans une BDD). Sauf que je n'ai qu'une page blanche :(

Voilà le code. J'ai effectué des echos, y a rien de rien, pourtant j'ai bien les données de l'utilisateur enregistrées dans la base de données.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
 <head>
 <title> Pages en localhost </title>
 <link href="style.css" rel="stylesheet"/>
 </head>
 
<body>
<?php

$nom =  $_POST['nom'];
	$prenom = $_POST['prenom'];
	$jour = $_POST['jour'];
	$mois = $_POST['mois'];
	$annee = $_POST['annee']; 
	$email = $_POST['email'];
	$dpt = $_POST['departement'];
	$profession = $_POST['profession'];

	if ($nom == NULL)
		$nom = 'Clapton';

	if ($prenom == NULL)
		$prenom = 'Eric';

	if($jour == NULL)
		$jour = '30';
		
	if ($mois == NULL)
		$mois = '03';
		
	if ($annee == NULL)
		$annee = '1945';

	if ($email == NULL)
		$email = 'ericclaplton&#64;clapton.com';
?>

<p>
<a href="fichier.html">Retour à la fiche</a><br />
<a href="index.html" >Retour à l'index</a>
</p>


	<h1 class="centrer">Mise à jour de la fiche.</h1>
	
	<table class="none" width="50%" border="1" cellspacing="1" cellpadding="1" >
	
		<tr>
			<td rowspan="3"><img src="photo.png" alt="Photo" /></td>
			<td>Nom : <?php echo "$prenom $nom" ?></td>
		</tr>
		<tr>
			<td>Date de naissance : <?php echo "$jour/$mois/$annee"?></td>
		</tr>
		<tr>
			<td>Email : <?php echo "$email" ?></td>
		</tr>
		<tr>
			<td>D&eacute;partement :</td>
			<td>Informatique</td>
		</tr>
		<tr>
			<td>Grade :</td>
			<td><?php echo "$profession" ?></td>
		</tr>
		<tr>
			<td>Badge :</td>
			<td>3r1C&&#64;pt0n</td>
		</tr>
	
	</table>
	
<?php
	mysql_connect("localhost", "root", "");
	mysql_select_db("test");

	mysql_query("INSERT INTO fiche(nom, prenom, jour, mois, annee, email, dpt, grade) VALUES('$nom', '$prenom', '$jour', '$mois', '$annee', '$email', '$dpt', '$profession')");
	mysql_close();
?>

</body>
</html>
Merci d'avance pour votre aide !
Modifié en dernier par hyperyon le 09 janv. 2010, 16:59, modifié 1 fois.

ViPHP
ViPHP | 1996 Messages

09 janv. 2010, 01:10

Euh $_POST est un retour de formulaire, et il est où ce formulaire sur une autre page ? Qui pointe bien sur cette page ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Petit nouveau ! | 8 Messages

09 janv. 2010, 12:15

Oui bien évidemment qu'il y a une autre page. Elle se contente juste d'envoyer les saisies de l'utilisateur sur cette page.

Tu veux que je te le poste ?

Il y a un truc qui cloche mais je ne trouve vraiment pas pourquoi j'ai cette page blanche u__u

Par contre si j'enlève ce bout de code, il y a bien quelque chose qui s'affiche...
<?php
        mysql_connect("localhost", "root", "");
        mysql_select_db("test");

        mysql_query("INSERT INTO fiche(nom, prenom, jour, mois, annee, email, dpt, grade) VALUES('$nom', '$prenom', '$jour', '$mois', '$annee', '$email', '$dpt', '$profession')");
        mysql_close();
?>
Modifié en dernier par hyperyon le 09 janv. 2010, 12:42, modifié 1 fois.

ViPHP
ViPHP | 2291 Messages

09 janv. 2010, 12:39

Et un
echo '<pre>';
print_r($_POST);
echo '</pre>';
donne quoi ?
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 8 Messages

09 janv. 2010, 12:45

Rien qui ne s'affiche :?

ViPHP
ViPHP | 2291 Messages

09 janv. 2010, 12:46

Poste le code de ton formulaire .
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 8 Messages

09 janv. 2010, 12:48

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head> 
<link href='style.css' rel='stylesheet'>
<script language="javascript">

function verifierFormulaire(email, annee, nom, prenom){

	var verif = true;

	if (checkName(nom)){
		//alert("ok1");

		if (checkName(prenom)){
			//alert("ok2");		

			if(checkAnnee(annee)){
				//alert("ok3");
				if(checkMail(email))
					verif = false;
					document.forms.formulaire.submit();
			}		
		}

	}

	if (verif)
		alert("Un ou plusieurs champ(s) non(s) correct(s) !");
		
}


function checkMail(email) {
	if ((email.indexOf("@")>=0)&&(email.indexOf(".")>=0)) {
		alert("ok !");
		return true;
	}

	else {
		alert("Mail invalide !");
		return false;
	}
}

function checkAnnee(annee){

	var maReg = new RegExp ( "[^0-9]", "gi" ) ;
	
	if ( annee.search( maReg ) == -1 ){

		if ((annee > 1943)&&(annee < 1992)) {
			return true;
		} 
		
		else if (annee <= 1943){
			//alert("Vous etes trop vieux !");
			return false;
		}
		
		else{
			//alert("Vous etes trop jeune !");
			return false;
		}
	}
	
	else
	alert("date erronne");
}



function checkName( nom, prenom )
{
	var maReg = new RegExp ( "[^a-zA-Z-çéèàïëöüîêôû]", "gi" ) ;
	
	 if (nom.indexOf("")>=0){
		if ( nom.search( maReg ) == -1 ){
			//alert( "nom et prenom ok !!" ) ;
			return true;
	
		}
		

		else if (nom.search ( maReg ) != -1 ){
			//alert ( "errorr !" ) ;
			return false;
		}
	}
}

</script>

</head>
<body>
<h1 class="centrer">Fichier</h1>

<a href="index.html">Retour page d'accueil</a>
<table class="none" width="50%" border="1" cellspacing="1" cellpadding="1" >
	<tr>
	<td rowspan="3"><img src="photo.png" alt="Photo" /></td>
	<td>Nom : Eric Clapton</td>
	</tr>

	<tr>
	<td>Date de naissance : 30/03/1945</td>
	</tr>

	<tr>
	<td>Email : [email protected]</td>
	</tr>

	<tr>
	<td>D&eacute;partement :</td>
	<td>Informatique</td>
	</tr>

	<tr>
	<td>Grade :</td>
	<td>Technicien</td>
	</tr>

	<tr>
	<td>Badge :</td>
	<td>3r1C&&#64;pt0n</td>
	</tr>


</table>
<br />

<form name="formulaire" class="centrer" method="post" action="try.php">
	<fieldset class="champ1" class="centrer">
	<legend>Modification de la fiche</legend>
		<p>
		<label for="nom">Votre nom :</label>
		<input type="text" name="nom" id="nom" /><br />

		<label for="prenom">Votre pr&eacute;nom :</label>
		<input type="text" name="prenom" id="prenom" /><br />

		<label for="jour">Date de naissance :</label>

			<select  name="jour" id="jour" />
			<option value="01">1</option>
			<option value="02">2</option>
			<option value="03">3</option>
			<option value="04">4</option>
			<option value="05">5</option>
			<option value="06">6</option>
			<option value="07">7</option>
			<option value="08">8</option>
			<option value="09">9</option>
			<option value="10">10</option>
			<option value="11">11</option>
			<option value="12">12</option>
			<option value="13">13</option>
			<option value="14">14</option>
			<option value="15">15</option>
			<option value="16">16</option>
			<option value="17">17</option>
			<option value="18">18</option>
			<option value="19">19</option>
			<option value="20">20</option>
			<option value="21">21</option>
			<option value="22">22</option>
			<option value="23">23</option>
			<option value="24">24</option>
			<option value="25">25</option>
			<option value="26">26</option>
			<option value="27">27</option>
			<option value="28">28</option>
			<option value="29">29</option>
			<option value="30">30</option>
			<option value="31">31</option>
			</select>

			<select name="mois" id="mois" />
			<option value="01">Janvier</option>
			<option value="02">F&eacute;vrier</option>
			<option value="03">Mars</option>
			<option value="04">Avril</option>
			<option value="05">Mai</option>
			<option value="06">Juin</option>
			<option value="07">Juillet</option>
			<option value="08">Aout</option>
			<option value="09">Septembre</option>
			<option value="10">Octobre</option>
			<option value="11">Novembre</option>
			<option value="12">D&eacute;cembre</option>
			</select>

		<input type="text" style="width:40px" name="annee" id="annee" /><br />

		<label for="email">Saisir email :</label>
		<input type="text" name="email" id="email"/><br />

		<label for="departement">D&eacute;partement</label>
		<select name="departement" id="departement">
			
			<option value="Informatique">Informatique</option>
			<option value="Sciences">Sciences</option>
			<option value="Arts">Arts</option>
			
		</select>

<br />
		

		<label for="profession">Profession :</label>
		<select name="profession" id="profession">

			<optgroup label="Informatique">
			<option value="Technicien">Technicien</option>
			<option value="Analyste programmeur">Analyste programmeur</option>
			<option value="Chef de projet">Chef de projet</option>				
			<option value="Administrateur">Administrateur</option>
			<option value="Webmaster">Webmaster</option>
			<optgroup label="M&eacute;decine">
			<option value="M&eacute;decin">M&eacute;decin</option>
			<option value="Infirmier">Infirmier</option>
			<option value="Dentiste">Dentiste</option>
			<option value="Chirurgion">Chirurgien</option>
		<optgroup label="Musique">
			<option value="Muscien">Musicien</option>
			<option value="Chanteur">Chanteur</option>
		</select>
		<br /><br />
		<input  type="button" value="Valider" onClick="verifierFormulaire(
		this.form.email.value, 
		this.form.annee.value,
		this.form.nom.value,
		this.form.prenom.value
		)" />  
		<input type="reset" value="Effacer"/>

		</p>
	</fieldset>
</form>




</body></html>

ViPHP
ViPHP | 2291 Messages

09 janv. 2010, 13:19

Avec un type submit tu a déjà essayé :?: :wink:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 8 Messages

09 janv. 2010, 13:50

J'ai essayé, marche pas non plus.
		<input  type="submit" value="Valider" onClick="submit()"/>  
		<input type="reset" value="Effacer"/>
J'ai même enlevé l'appel au script Javascript.

ViPHP
ViPHP | 2291 Messages

09 janv. 2010, 14:09

Place ta requete juste après tes controles :idea:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 8 Messages

09 janv. 2010, 14:32

C'est-à-dire ? J'ai pas trop compris

ViPHP
ViPHP | 2291 Messages

09 janv. 2010, 14:49

Essaye comme ceic peut-être :?:
Et prend comme habitude de proteger test variable, et de faire une vérification de ton formulaire en PHP en plus de java :wink:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
 <head>
 <title> Pages en localhost </title>
 <link href="style.css" rel="stylesheet"/>
 </head>

<body>
<?php

        $nom     =  $_POST['nom'];
        $prenom  = $_POST['prenom'];
        $jour    = $_POST['jour'];
        $mois    = $_POST['mois'];
        $annee   = $_POST['annee'];
        $email   = $_POST['email'];
        $dpt     = $_POST['departement'];
        $profession = $_POST['profession'];


        $SqlNom    = ((iSset($nom) && ($nom != '')) ?  mysql_real_escape_string($nom) : 'Clapton');
        $SqlPrenom = ((iSset($prenom) && ($prenom != '')) ?  mysql_real_escape_string($prenom) : 'Eric');
        $SqlJour   = ((iSset($jour) && ($jour != '')) ?  mysql_real_escape_string($jour) : '30');
        $SqlMois   = ((iSset($mois) && ($mois != '')) ?  mysql_real_escape_string($mois) : '03');
        $SqlAnnee  = ((iSset($annee) && ($annee != '')) ?  mysql_real_escape_string($annee) : '1945');
        $SqlMail   = ((iSset($email) && ($email != '')) ?  mysql_real_escape_string($email) : 'ericclaplton&#64;clapton.com');





       mysql_connect("localhost", "root", "");
       mysql_select_db("test");

       mysql_query("INSERT INTO fiche(nom, prenom, jour, mois, annee, email, dpt, grade) VALUES('".$SqlNom."', '".$SqlPrenom."', '".$SqlJour."', '".$SqlMois."', '".$SqlAnnee."', '".$SqlMail."', '".mysql_real_escape_string($dpt)."', '".mysql_real_escape_string($profession)."')");


?>

<p>
<a href="fichier.html">Retour à la fiche</a><br />
<a href="index.html" >Retour à l'index</a>
</p>


        <h1 class="centrer">Mise à jour de la fiche.</h1>

        <table class="none" width="50%" border="1" cellspacing="1" cellpadding="1" >

                <tr>
                        <td rowspan="3"><img src="photo.png" alt="Photo" /></td>
                        <td>Nom : <?php echo "$prenom $nom" ?></td>
                </tr>
                <tr>
                        <td>Date de naissance : <?php echo "$jour/$mois/$annee"?></td>
                </tr>
                <tr>
                        <td>Email : <?php echo "$email" ?></td>
                </tr>
                <tr>
                        <td>D&eacute;partement :</td>
                        <td>Informatique</td>
                </tr>
                <tr>
                        <td>Grade :</td>
                        <td><?php echo "$profession" ?></td>
                </tr>
                <tr>
                        <td>Badge :</td>
                        <td>3r1C&&#64;pt0n</td>
                </tr>

        </table>


</body>
</html>
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 8 Messages

09 janv. 2010, 15:41

Oui je sais qu'il faut protéger son script mais je l'ai fait justement pour y faire des injections sql et autres dessus :D (d'où l'absence totale de protection).

J'ai apparemment trouvé le coupable de ma page blanche (comme la neige dehors :lol: ) qui est :
mysql_close();
Normalement c'est toujours mieux d'y mettre cette instruction non ? est-ce vraiment grave de ne pas la mettre ?

ViPHP
ViPHP | 2291 Messages

09 janv. 2010, 16:02

ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.