5568 sujets

Sémantique web et HTML

Bonjour à tous,

Dès le premier affichage de la page web dont le code source (réduit à sa plus simple expression) suit, le champ QAFld de type textarea apparemment vide contient sept caractères de tabulation (X'09') intempestifs (révélés par simple copy+paste de ceux-ci dans n'importe quel éditeur permettant l'affichage en hexa-décimal).
Merci à celui qui m'aidera à trouver l'erreur.

Jo VD.


<?PHP
	// QAFld, sbmBtnTxt :
	if(!isset($_POST['QAFld'])) $_POST['QAFld'] = ""; else $_POST['QAFld'] = substr($_POST['QAFld'], 0, 256);
	print strlen($_POST['QAFld']); // Temporaire (déboggage).
	if(!isset($_POST['sbmBtnTxt'])) $_POST['sbmBtnTxt'] = "Soumettre";
	$msg = "";

	if ($_POST['sbmBtnTxt'] == 'Soumettre') {
		if ($_POST['QAFld'] != "") {
			if (!mysql_connect('localhost', 'root', 'mysql'))
				$msg = "Impossible de se connecter &agrave; la base de donn&eacute;es foo_db !" . mysql_error();
			else if (!mysql_select_db('foo_db')) {
				mysql_close();
				$msg = "Impossible de s&eacute;lectionner la base de donn&eacute;es foo_db ! " . mysql_error();
				}
			else {
				mysql_query("SET NAMES UTF8");
				$sql = "INSERT INTO qae_list VALUES (now(),0,NULL,NULL,'".$_POST['QAFld']."','','')";
				$result = mysql_query($sql);
				if (!$result) $msg = "Erreur SQL (" . $sql . "): " . mysql_error();
				else {
					$_POST['QAFld'] = 'Cette question a &eacute;t&eacute; enregistr&eacute;e sous la date de cr&eacute;ation '.date("Y-m-d H:i:s").'.';
					$_POST['sbmBtnTxt'] = "Nouvelle question";
					}
				mysql_close(); //	mysql_free_result($result);
				}
			}
		}
	else { // if ($_POST['sbmBtnTxt'] == 'Nouvelle question'
		$_POST['QAFld'] = "" ;
		$_POST['sbmBtnTxt'] = "Soumettre";
		}
?>
 
<!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="en" lang="en">
	<head>
		<title>FOO</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta http-equiv="Content-Style-Type" content="text/css" />
		<style type="text/css">
			.center{text-align: center;}
			.red{color: red;}
			.right{text-align: right;}
		</style>
	</head>
	<body>
		<p><b>Proposition de nouvelle question: </b> </p>
		<p>La pr&eacute;sente page vous permet de poser une question longue de 256 caract&egrave;res au maximum.</p> <br />
		<form action="Textarea_test.php" method="post" class="center">
			<textarea name="QAFld" id="QAFld" rows="4" cols="80" onchange="this.value = this.value.slice(0, 256)"
				onKeyUp="remLen.value = 256 - this.value.length; this.value = this.value.slice(0, 256)" />
				<?php print $_POST['QAFld']; ?>
			</textarea> <br /><br />
			<input readonly type="text" name="remLen" size="3" maxlength="2" value="256" class="right" /> caract&egrave;re(s) restant(s).<br /><br />
			<input type="submit" name="sbmBtnTxt" id="sbmBtnTxt" value="<?php print $_POST['sbmBtnTxt']; ?>" /> &nbsp; 
			<input type="button" name="PrevPgBtn" value="Page pr&eacute;c&eacute;dente" onclick="history.back();" /><br />
		</form>
		<p class="red"><?php echo $msg; ?></p>
	</body>
</html>

Modifié par JoVD (09 Feb 2010 - 19:45)
Hello,

Ton code, avec les tabulations notées "»":
»»»<textarea />
[#red]»»»»[/#]<?php print $_POST['QAFld']; ?>
[#red]»»»[/#]</textarea>

Sept tabulations en trop, le compte est bon.
Tu as aussi un / qui traine...

La solution, si jamais ci-dessus ce n'est pas clair:
<textarea><?php print $_POST['QAFld']; ?></textarea>

Modifié par Florent V. (03 Feb 2010 - 21:26)
Bonjour Florent V,
Les 7 tabulations 'de clarté' que tu mentionnes dans mon code source étaient en effet la cause de cette erreur. MERCI BEAUCOUP.
Merci aussi de m'avoir signalé le '/' en trop dans ma balise <textarea>.
Au plaisir.
Jo VD.