Ma syntaxe heredoc ne fonctionne pas

Invité
Invité n'ayant pas de compte PHPfrance

08 juin 2006, 13:52

Bonjour,
j'ai une erreur dans la fonction ecrire_formulaire(); mais je ne vois pas la coquille

Code : Tout sélectionner

Parse error: syntax error, unexpected $end in C:\apachefriends\xampp\htdocs\projet\ajout_saisie.php on line 80
<!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>ajout de l'utilisateur</title>
  <style type="text/css">
  @import "#.css";
  </style>
<script type="text/javascript"></script>
</script>
</head>
<body>
<?php
if (!empty($_REQUEST['sexe']) && !empty($_REQUEST['domaine'])
 && !empty($_REQUEST['mail']) && !empty($_REQUEST['nom']) && !empty($_REQUEST['projet'])) 
 {
		 // on vérifie la saisie des utilisateur à cette endroit !
		 $erreurbdd="";
		 $ret=ajout_dans_base ($_REQUEST['domaine'], $_REQUEST['sexe'],
		 $_REQUEST['mail'], $_REQUEST['nom'], $_REQUEST['projet'], $erreurbdd);
		 if (!$ret) {
			print "erreur: $erreurbdd<br />\n";
	} else {
		print "Merci beaucoups<br />";
		}
	} else {
		ecrire_formulaire();
}
include ("inc/connexion.inc.php");
function ajout_dans_base($domaine, $sexe, $mail, &$erreurbdd) {
$domaine=mysql_real_escape_string($domaine); //Protège les caractères spéciaux d'une commande SQL
$sexe=mysql_real_escape_string($sexe);
$nom=mysql_real_escape_string($nom);
$projet=mysql_real_escape_string($projet);
$mail=mysql_real_escape_string($mail);
$lien=mysql_connect($serveur, $login, $mdp);
if (!$lien) {
	$erreurbdd=mysql_error();
	return false;
	}
if (!mysql_select_db($db1, $lien)) {
	$erreurbdd=mysql_error();
	return false;
}
$requete="insert into latable(domaine, sexe, mail, nom, projet) values
 ('$domaine', '$sexe', '$mail', '$nom', '$projet')";
 if(!mysql_query($requete, $lien)) {
	$erreurbdd=mysql_error();
	return false;
	}
	return true; 
}


function ecrire_formulaire() {
		print <<<FORM
			<form method="post" action="{$_SERVER['PHP_SELF']}">
			<p><input type="text" name="domaine" />
			Le domaine que vous aimeriez avoir</p>
			<p>
			<input type="text" name="mail" />
			Votre adress e-mail
			</p>
			<p>
			<input type="text" name="nom" />
			Votre nom
			</p>			
			<p><select name="sexe">
			<option value="F">Femme</option>
			<option value="M">Homme</option>			
			</select></p>
			<p>
			<input type="text" name="projet" />
			Votre projet
			</p>			
			<p><input type="submit" value="Envoyer la came !" /></p>
			</form>
			FORM;
			}				
?>
</body></html>
Merci d'avance.[/code]

Mammouth du PHP | 601 Messages

08 juin 2006, 14:09

c'est bien la syntaxe heredoc puisque j'ai mis un print et sa marche
function ecrire_formulaire() {
		print "
			<form method=\"post\" action=\"$PHP_SELF\">
			<p><input type=\"text\" name=\"domaine\" />
			Le domaine que vous aimeriez avoir</p>
			<p>
			<input type=\"text\" name=\"mail\" />
			Votre adress e-mail
			</p>
			<p>
			<input type=\"text\" name=\"nom\" />
			Votre nom
			</p>			
			<p><select name=\"sexe\">
			<option value=\"F\">Femme</option>
			<option value=\"M\">Homme</option>			
			</select></p>
			<p>
			<input type=\"text\" name=\"projet\" />
			Votre projet
			</p>			
			<p><input type=\"submit\" value=\"Envoyer la came !\" /></p>
			</form>
			"; }	
J'ai poster sans m'apreçevoir que j'étais inscrit, dsl.
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 juin 2006, 14:51

Essaye de coller ton FORM; fermant le heredoc au début de la ligne (vire tout ce qui est espace où tabulation)

J'avais eu un problème similaire en shell, les tabulations qui précédaient l'empêchait de trouver la fin des commandes, peut être est-ce la même chose pour toi :)

Mammouth du PHP | 601 Messages

08 juin 2006, 15:17

Sa passe pas, je laisse tomber, merci.
edit :
Mais bon si sa marche les possibilité sont cool, j'ai un script de langue sa m'aurrait permit de metre la trduction dans les variavles sa aurrai été pas mal ;-((
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 19672 Messages

08 juin 2006, 20:27

Ce sont les espace en début de ligne qui mettent la zone : proposition de corrigé :
function ecrire_formulaire() {
    print <<<FORM
<form method="post" action="{$_SERVER['PHP_SELF']}">
  <p><input type="text" name="domaine" />
  Le domaine que vous aimeriez avoir</p>
  <p>
  <input type="text" name="mail" />
  Votre adress e-mail
  </p>
  <p>
  <input type="text" name="nom" />
  Votre nom
  </p>            
  <p><select name="sexe">
    <option value="F">Femme</option>
    <option value="M">Homme</option>            
  </select></p>
  <p>
  <input type="text" name="projet" />
  Votre projet
  </p>            
  <p><input type="submit" value="Envoyer la came !" /></p>
</form>
FORM;
}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 601 Messages

08 juin 2006, 21:05

Terrible :)
Merci
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"