Probleme de sintaxe code php

Résolu/Fermé
brutalus Messages postés 16 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 10 septembre 2010 - 9 sept. 2010 à 14:46
brutalus Messages postés 16 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 10 septembre 2010 - 10 sept. 2010 à 18:21
j'ai une erreur de sintaxe au niveau de ma balise <script language="Javascript"> mais je ne vois pas laquelle,j'ai trouver cette même sintaxe un peu partout sur le net ..

<?php
<script language="Javascript">
if( ($_POST['date_livraison']) > (date('Y/m/d', strtotime('+7 day'))) )
return true;
else
{
alert('La date de livraison doit être dune semaine au plus tôt.');
return false;
}
</script>
?>

Merci d'avance.

A voir également:

7 réponses

varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 705
9 sept. 2010 à 15:31
Bonjour,

essaye de mettre des acolade a ton if:

<?php
	<script language="Javascript">
	if( ($_POST['date_livraison']) > (date('Y/m/d', strtotime('+7 day'))) )
	{
	return true;
	}
	else
	{
		alert('La date de livraison doit être dune semaine au plus tôt.');
		return false;
	}
</script>
?> 


sinon quel est le message d'erreur?
0
brutalus Messages postés 16 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 10 septembre 2010
9 sept. 2010 à 18:24
Merci du coup de main, alors j'ai essayer avec les accolades et le message d'erreur persiste, voici le message d'erreur :

Parse error: syntax error, unexpected '<' in C:\Program Files\EasyPHP-5.3.2i\www\cible.php on line 29

Et la ligne 29 correspond a la ligne <script language="Javascript">
0
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
9 sept. 2010 à 19:54
Salut,

Tu ne te rends pas compte de ce que tu as fais ^^ ?
Tu as écris du code JavaScript à l'intérieur de <?php ?> !!!
Le PHP est un langage, le JavaScript en est un autre. Là tu es en train d'essayer de faire exécuter du code JavaScript par le serveur, le hic c'est qu'il ne sait pas le lire ^^. tu dois écrire ton code JavaScript à l'extérieur de <?php ?> ou alors l'écrire dans le flux de sortie avec l'instruction echo par exemple :

<?php
  echo 'code html (oui car <script ...> c'est du html en revanche ce qui est dedans c'est bien du JavaScript)';
?>


c'est clair ?

Bye
0
bobox87 Messages postés 32 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 25 juillet 2011 1
9 sept. 2010 à 20:33
Salut essaye ça

<?php
if( ($_POST['date_livraison']) > (date('Y/m/d', strtotime('+7 day'))) )
return true;
else
{
echo 'alert(\'La date de livraison doit être dune semaine au plus tôt.\')';
return false;
}
?> 
0

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

Posez votre question
brutalus Messages postés 16 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 10 septembre 2010
9 sept. 2010 à 21:02
@Stouffi : Merci du coup de main, j'ai essayer ta solution maintenant sa me met une erreur au niveau des simples quotes :s

@bobox87 : On m'a dis qu'alert fesait parti du langage JS et donc qu'il fallait que je mette les balises comme je les ai mises, j'ai aussi essayer ta proposition mais sa ne marche toujours pas :s
0
Stouffi Messages postés 62 Date d'inscription mercredi 8 septembre 2010 Statut Membre Dernière intervention 8 janvier 2011 40
9 sept. 2010 à 22:27
@brutalus : Tu n'as pas bien exploité ma solution, voici le code équivalent au tien qui devrait fonctionner (en tout cas être exécuté côté php)

<?php
if( ($_POST['date_livraison']) > (date('Y/m/d', strtotime('+7 day'))) )  {
    return true; 
} else {
    ?>
<script type="text/javascript">
    alert('La date de livraison doit être dune semaine au plus tôt.');
</script>
    <?php
    return false; 
}
?>


là c'est bien écris (en considérant que seule la ligne alert... est en javascript).

Je le répète : Attention à bien séparer le langage serveur (PHP) interprété par la machine serveur, et les langages clients (HTML et JavaScript dans notre cas) interprété par la machine cliente (celle du visiteur et plus précisément par le navigateur internet). dans le code ci-dessus, on voit bien que le code HTML (+ JavaScript) est écrit hors des tags <?php ?> à l'intérieur de ces tags, ils ne doit y avoir que du PHP. l'alternative c'est d'écrire :

<?php
if( ($_POST['date_livraison']) > (date('Y/m/d', strtotime('+7 day'))) )  {
    return true; 
} else {
    echo '<script type="text/javascript">alert(\'La date de livraison doit être dune semaine au plus tôt.\');</script>';
    return false; 
}
?>


On n'oublie pas d'échapper les simple quotes du JavaScript sinon forcément ça met fin à la chaîne et PHP fait la tronche !

Dernière remarque : l'attribut de la balise script c'est type="text/javascript", l'attribut language que tu utilises est obsolète.
0
varfendell Messages postés 3256 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 705
10 sept. 2010 à 09:15
Pour ton probleme de simple quote et double quote, si tu met en debut de chaine et fin de chaine simple ou double quote, tu devra mettre à l'intérieur l'inverse.
0
bobox87 Messages postés 32 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 25 juillet 2011 1
Modifié par bobox87 le 9/09/2010 à 22:12
J'avais déjà fais un truc dans le genre mais c'était peut être bien avec le onclick en fait. Bon sinon remplace la ligne avec le alert par ça:

?><script>javascript:alert('La date de livraison doit être dune semaine au plus tôt.')</script><?php

Tu coupes le script php en 2 mais bon je pense pas que ça soit trop grave, et le <script language="Javascript"> n'est pas nécessaire.
0
brutalus Messages postés 16 Date d'inscription lundi 6 septembre 2010 Statut Membre Dernière intervention 10 septembre 2010
10 sept. 2010 à 18:21
Parfait Stouffi, en gros si je veux utiliser du JS il faut absolument que je le sépare du php merci bien.

Merci varfendell et bobox87 aussi pour votre coup de main, maintenant j'ai d'autres erreur mais je vais essayer de corriger sa tout seul merci a tous.
0