[php] générer du code html

Fermé
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 27 juin 2007 à 11:41
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 27 juin 2007 à 16:59
Bonjour a tous .
Voila je recois dans ma page .php certaines variables recupérées dans le formulaire de la page précédente ( avec $_POST)

Je souhaite avec cela générer du code html .
Voila ma solution :

<html>
<head></head>
<body>
	<?
	
	echo "<textarea cols='100' rows='15' name='code' readonly>";
	echo "<?php include('session_verif.php'); ?>
<html>
	<head>
		<title>QCM </title>
		<link rel='stylesheet' type='text/css' href='../css/css.css'>
		<script type='text/javascript'>
		function confirmation(frm)
		{
			var nom = document.quiz.monnom.value;
			var prenom = document.quiz.monprenom.value;
			var mess = '';
			if (nom == '') mess += 'ERREUR : Renseignez correctement votre nom. \n';
			if (prenom == '') mess += 'ERREUR : Renseignez correctement votre prénom. \n';
			if (mess != '') 
			{
					alert (mess);
					return false;
			}	
			else
			{
					return true;	
			}
		}
		
		</script>
	</head>

	<body>
	<div id='formulaire'>
		<table>
			<tr>
				<td><img src='../images/logo_greta.jpg'</td>
				<td><center><font face='Comic sans MS' size='6' color='green'><p />Questionnaire à Choix Multiples<br /><br /></font>
				Avant de répondre aux questions, entrez votre nom et votre prénom ci-dessous.<p /></center></td>
			</tr>
		</table>
		<form action='reponse.php' method='post' name='quiz' class='text' onsubmit='return confirmation(this)'>
		<p />
		<center><table class='cadre_rouge>
			<tr valign=middle'>
				<td>
					NOM    : <input type='text' name='monnom'><br />
				</td>
				<td>
					PRENOM : <input type='text' name='monprenom'><br />
				</td>
			</tr>
		</table></center>
		<br /><br />";
		for($i=1;$i<=$nombre_de_questions;$i++)
		{
			$question = $_POST['question'.$i];
			echo '<dt><h2><b>'.$i.'. '.$question.' </b></h2>';
			for($j=1;$j<=$nombre_de_reponses;$j++)
			{
				$reponse = $_POST['reponse'.$j];
				echo '<dd><input type=radio name=q['.$i.'] value='.$j.'>'.$reponse.'<br />';
			}
			echo '<br /><br />';
		echo '</textarea>';
	echo "</form></body></html>";
	?>
	</body>
</html>


Resultat dans firefox :Parse error: parse error in c:\program files\easyphp1-8\www\genere_qcm\code.php on line 70
( la ligne 70 etant la derniere ligne de mon fichier ...)

Voila je pense que c'est la partie en gras qui pose soucis .
Puis qu'il s'agit de php a interpreter et non a ecrire dans mon textarea .
une idée pour que ca marche ?
A voir également:

11 réponses

on dirai que la guillemet du FOR n'est pas fermée ...
0
oops, pas guillemet mais accolade { }
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
27 juin 2007 à 11:46
salut,

tu n'as pas refermé le
for($i=1;$i<=$nombre_de_questions;$i++)

<edit>croisé avec edertef</edit>
par ailleurs tu ouvres deux fois <html> et <head>.
<edit>tu as aussi mis un <textarea> dans le <head></edit>
0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
27 juin 2007 à 11:54
je crois pas quetu ai compris ce que fait ce fichier .
ce fichier genere en fait le code d'une page html .
donc je vois pas trop ou tuvois un textarea dans un head ...
mais merci pour les acolade je vais voir si c 'est ca :)
0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
27 juin 2007 à 11:58
bon ca va mieux, je n'ai plus d'erreur généré, par contre du coup j'ai une nouvelle question .

Je remplis un formulaire avec 2 variables .
Ces deux variables sont recupérées avec $_POST dans la page suivante .
Mais cette nouvelle page redirige elle meme vers une autre page .
Et dans cette derniere page (donc la 3eme), j'aimerai utiliser la variable récupérées dans la premiere page .
C'est faisable ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
27 juin 2007 à 12:06
oui avec les variables de session.
à chaque début de script :
session_start();

pour assigner :
$_SESSION['mavariable'] = $var;

pour utiliser :
$var = $_SESSION['mavariable'];

pour tester :
if (isset($_SESSION['mavariable'])){ }
0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
27 juin 2007 à 12:07
Lorsqu'il y a des histoires de session, il n'y a aucune relation avec base de données sql ?
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
27 juin 2007 à 12:35
non, si tu veux c'est l'équivalent d'un cookie mais les données sont stockées sur le serveur et détruite en fin de session ou au bout du temps de vie de la session (180 minutes par défaut, je crois).

plus d'infos
0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
27 juin 2007 à 13:12
bon donc j'ai testé .
Pour récapitulatif :
index.php -> generateur.php -> code.php
generateur.php recup les variables grace à $_POST
je veux maintenant utiliser ces meme variables dans code.php

donc dans generateur.php j'ai rajouté :

 $nombre_de_questions = $_POST['nb_questions'];
	$nombre_de_reponses = $_POST['nb_rep_par_questions'];
	session_start();
	$_SESSION['nb_questions'] = $nombre_de_questions;


et dans code.php j'ai rajouté :

 session_start();
	$nombre_de_questions = $_SESSION['nb_questions'];


Résultat :

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\program files\easyphp1-8\www\genere_qcm\code.php:4) in c:\program files\easyphp1-8\www\genere_qcm\code.php on line 5

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\genere_qcm\code.php:4) in c:\program files\easyphp1-8\www\genere_qcm\code.php on line 5

Notice: Undefined index: nb_questions in c:\program files\easyphp1-8\www\genere_qcm\code.php on line 6

Voila le bad :s
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
27 juin 2007 à 13:42
attention il faut un 'session_start()' pour un chargement de page.
donc si tu fais des 'include()' le deuxième et le troisième script n'ont pas besoin de 'session_start()'.
0
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 143
27 juin 2007 à 13:59
erf excuse moi de faire le boulet mais je suis pas une star du php comme tu as du le constater ^_^ donc un peu de mal a te suivre .
Dans mon index.php, c'est a dire la ou je demande d'entrer les deux variables, il s'agit de menus déroulants, donc des inputs type select .
Cette page ne contien aucun code php donc si je comprends bien, ta solution serait de rajouter du php dans cette page, avec donc un session_start() et un $_SESSION = ???
Puis dans les autres page je fais un include, mais include de quoi ???

Désolé mais j'ai un peu de mal ... :)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
27 juin 2007 à 16:59
oups pardon !

non garde tes pages comme elles sont !
donc une page html plus deux ou trois script en php, c'est ça ?

au premier script, en première ligne tu mets ton 'session_start()'. et ailleurs il ne doit pas y en avoir besoin.

en fait il n'en faut qu'un par chargement de page si tu veux.
0