Page 1 sur 1

alert

Posté : 15 mars 2006, 16:44
par jojolapine
Bonjour à tous,
Comme vous vous en doutez, j'ai quelques soucis...
J'ai créer un petit formulaire, et lors de l'envoi au destinataire, j'ai voulu ouvrir une boite alerte, pour dire message envoyer, ou non...
bon voila une partie du code qui traite l'envoi:
if(mail($adress,'Site internet',$contenu)){
		<script language="javascript"><!--alert("Votre message %uFFFD bien %uFFFDt%uFFFD envoy%uFFFD...Merci")//--></script>
	} else {
		<script language="javascript"><!--alert("Erreur durant l'envoi du message...Veuillez ressayer")//--></script>
	}
et voila le message d'erreur que j'obtient:

Code : Tout sélectionner

Parse error: parse error, unexpected '<' in /home/smulliez/nouveausite/form_action.php on line 57
sachant que la ligne 57 correspond à celle-là:

Code : Tout sélectionner

<script language="javascript"><!--alert("Votre message %uFFFD bien %uFFFDt%uFFFD envoy%uFFFD...Merci")//--></script>
voila si vous pouviez m'aidez...
merci

Posté : 15 mars 2006, 17:04
par Cyrano
gros malin :P Si tu séparais correctement le PHP du html, peut-être bien que ça fonctionnerait ? :
<?php
if(mail($adress,'Site internet',$contenu))
{
?>
        <script language="javascript"><!--alert("Votre message %uFFFD bien %uFFFDt%uFFFD envoy%uFFFD...Merci")//--></script>
<?php
}
else
{
?>
        <script language="javascript"><!--alert("Erreur durant l'envoi du message...Veuillez ressayer")//--></script>
<?php
}
?>

Posté : 15 mars 2006, 17:34
par Invité
c'est vrai que c'est déja mieux mais ça marche toujours pas:
if(mail($adress,'Site internet',$contenu)){ ?>
        	<script language="javascript"><!--alert("Votre message %uFFFD bien %uFFFDt%uFFFD envoy%uFFFD...Merci")//--></script>
	<?php }else{ ?>
        	<script language="javascript"><!--alert("Erreur durant l'envoi du message...Veuillez ressayer")//--></script>
	<?php } ?>
message d'erreur:

Code : Tout sélectionner

Parse error: parse error, unexpected $ in /home/smulliez/nouveausite/form_action.php on line 60
la ligne 60, c'est la dernière...

Posté : 15 mars 2006, 17:46
par jojolapine
Bon vu que ça marche toujours pas, je met le code complet...:
<?php
session_start();
?>
<html>
<head></head>
<body>
<?php
$er=0;
if (!(preg_match("#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#", $_POST['email'])) || $_POST['email']==''){
	$_SESSION['erreuremail']="E-mail non valide.";
	header("Location: contact.php");
	$er=1;
} else {
	$email=$_POST['email'];
}
$_SESSION['nom']=$_POST['nom'];
$nom=$_POST['nom'];
$_SESSION['email']=$_POST['email'];
$adresse=$_POST['adresse'];
$_SESSION['adresse']=$_POST['adresse'];
$codepostal=$_POST['codepostal'];
$_SESSION['codepostal']=$_POST['codepostal'];
$ville=$_POST['ville'];
$_SESSION['ville']=$_POST['ville'];
$pays=$_POST['pays'];
$_SESSION['pays']=$_POST['pays'];
if (isset($_POST['statut'])==TRUE){
	$statut=$_POST['statut'];
	$_SESSION['statut']=$_POST['statut'];
} else {
	$_SESSION['erreurradio']="Vous devez cocher une case...";
	header("Location: contact.php");
	$er=1;
}
if ($_POST['question']!="Posez votre question ici..."){
	$question=$_POST['question'];
	$_SESSION['question']=$_POST['question'];
} else {
	$_SESSION['erreurquestion']="Que d%uFFFDsirez-vous savoir?";
	unset($_SESSION['question']);
	header("Location: contact.php");
	$er=1;
}

if ($er==0){
	$contenu="Message envoy%uFFFD apr%uFFFDs avoir consult%uFFFD la page: ".$page."\n";
	$contenu.="Exp%uFFFDditeur: ".$email." \n";
	$contenu.="Nom et Pr%uFFFDnom: ".$nom."\n";
	$contenu.="--------------\nAdresse: \n".$adresse."\n";
	$contenu.=$codepostal." ";
	$contenu.=$ville."\n";
	$contenu.=$pays."\n---------------\n";
	$contenu.="Statut: ".$statut."\n";
	$contenu.="Question:  \n".$question;
	$contenu=stripslashes($contenu);
	$a1='a';$a2='t';$a3='e';$a4='l';$a5='i';$a6='e';$a7='r';$a8='@';$a9='m';$a10='u';$a11='l';$adress='';
	$a12='l';$a13='i';$a14='e';$a15='z';$a16='-';$a17='l';$a18='s';$a19='.';$a20='c';$a21='o';$a22='m';
	for ($i=1;$i<=22;$i++){
		$adress.=${'a'.$i};
	}
	if(mail($adress,'Site internet',$contenu)){ ?>
		<script language="javascript"><!--alert("Votre message à bien été envoyé...Merci")//--></script>
		<?php header("Location: index.html");
		}else{ ?>
        	<script language="javascript"><!--alert("Erreur durant l'envoi du message...Veuillez ressayer")//--></script>
		<?php header("Location: contact.php"); } ?>
	</body>
	</html>
le message d'erreur concerne toujours la dernière ligne:

Code : Tout sélectionner

Parse error: parse error, unexpected $ in /home/smulliez/nouveausite/form_action.php on line 68

Posté : 15 mars 2006, 18:10
par Cyrano
Remise en ordre du même code, essaye comme ceci:
<?php
session_start();
?>
<html>
<head></head>
<body>
<?php
$er=0;
if (!(preg_match("#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#", $_POST['email'])) || $_POST['email']=='')
{
    $_SESSION['erreuremail']="E-mail non valide.";
    header("Location: contact.php");
    $er=1;
}
else
{
    $email=$_POST['email'];
}
$_SESSION['nom']=$_POST['nom'];
$nom=$_POST['nom'];
$_SESSION['email']=$_POST['email'];
$adresse=$_POST['adresse'];
$_SESSION['adresse']=$_POST['adresse'];
$codepostal=$_POST['codepostal'];
$_SESSION['codepostal']=$_POST['codepostal'];
$ville=$_POST['ville'];
$_SESSION['ville']=$_POST['ville'];
$pays=$_POST['pays'];
$_SESSION['pays']=$_POST['pays'];
if (isset($_POST['statut'])==TRUE)
{
    $statut=$_POST['statut'];
    $_SESSION['statut']=$_POST['statut'];
}
else
{
    $_SESSION['erreurradio']="Vous devez cocher une case...";
    header("Location: contact.php");
    $er=1;
}
if ($_POST['question']!="Posez votre question ici...")
{
    $question=$_POST['question'];
    $_SESSION['question']=$_POST['question'];
}
else
{
    $_SESSION['erreurquestion']="Que d%uFFFDsirez-vous savoir?";
    unset($_SESSION['question']);
    header("Location: contact.php");
    $er=1;
}

if ($er==0)
{
    $contenu  = "Message envoy%uFFFD apr%uFFFDs avoir consult%uFFFD la page: ".$page."\n";
    $contenu .= "Exp%uFFFDditeur: ".$email." \n";
    $contenu .= "Nom et Pr%uFFFDnom: ".$nom."\n";
    $contenu .= "--------------\nAdresse: \n".$adresse."\n";
    $contenu .= $codepostal." ";
    $contenu .= $ville."\n";
    $contenu .= $pays."\n---------------\n";
    $contenu .= "Statut: ".$statut."\n";
    $contenu .= "Question:  \n".$question;
    $contenu = stripslashes($contenu);
    $a1='a';
    $a2='t';
    $a3='e';
    $a4='l';
    $a5='i';
    $a6='e';
    $a7='r';
    $a8='@';
    $a9='m';
    $a10='u';
    $a11='l';
    $a12='l';
    $a13='i';
    $a14='e';
    $a15='z';
    $a16='-';
    $a17='l';
    $a18='s';
    $a19='.';
    $a20='c';
    $a21='o';
    $a22='m';
    $adress='';
    for ($i = 1; $i <= 22; $i++)
    {
        $adress .= ${'a'. $i};
    }
    if(mail($adress, 'Site internet', $contenu))
    {
        ?>
        <script language="javascript">
        <!--
        alert("Votre message à bien été envoyé...Merci");
        //-->
        </script>
        <?php
        header("Location: index.html");
    }
    else
    {
        ?>
        <script language="javascript">
        <!--
        alert("Erreur durant l'envoi du message...Veuillez ressayer")
        //-->
        </script>
        <?php
        header("Location: contact.php");
    }
}
?>
</body>
</html>
Je te signale quand même que si le JavaScript ne fonctionne pas, les fonctions header() placées comme elles le sont vont générer une erreur.

Posté : 15 mars 2006, 20:52
par albat
Curieux, cette allergie aux espaces... :-k

Si tu ne sépares pas ta balise de commentaire <!-- de la fonction javascript alert(),
celle-ci pourra ne pas être identifiée correctement. :roll:
<!--alert("Erreur durant l'envoi du message...Veuillez ressayer")//-->         // MAL
 <!-- alert("Erreur durant l'envoi du message... Veuillez réessayer."); //-->   // BIEN

Posté : 16 mars 2006, 01:46
par naholyr
$a1='a';$a2='t';$a3='e';$a4='l';$a5='i';$a6='e';$a7='r';$a8='@';$a9='m';$a10='u';$a11='l';$adress='';
$a12='l';$a13='i';$a14='e';$a15='z';$a16='-';$a17='l';$a18='s';$a19='.';$a20='c';$a21='o';$a22='m';
for ($i=1;$i<=22;$i++){
$adress.=${'a'.$i};
}
Je ne vois pas bien ce que tu veux faire avec cette section... pourquoi pas simplement "$adress = '[email protected]';" (j'ai un peu peur de la réponse, mais je la pose quand-même) ?

Posté : 16 mars 2006, 12:01
par jojolapine
Ben en fait je fait se site pour mon père et il a "peur" des spams, donc pour lui faire plaisir j'ai fait ça mais ça sert à rien je sais car php est un langage côté serveur donc onverra rien de tout ça...
sinon pour le javascript, j'ai rediriger avec un
header("Location: contact.php?formulaire=ok/*ou no*/")
et je test sur la page...
ça marche!
merci

Posté : 16 mars 2006, 12:11
par Hermès
Ton code ne marchait pas à cause de l'oubli de la dernière accolade fermante.

Le token "$" correspond à la fin de ligne. Autrement dit, il arrive à la fin de la ligne de la dernière ligne du fichier et ne s'attend pas à trouver $ mais une accolade fermante, d'où l'erreur.

Pour ton anti-spam, ça marchera pas, les script de spam voyent le résultat html, pas le code source, et le résultat html est écrit normalement.

Et pour les header, à partir du moment où tu as écrit du html plus haut, ça ne fonctionnera pas (il va te sortir une erreur "Header already sent"). Tu ne peux utiliser ce système que si tu n'écris rien (et quand je dis écrire, ça veut pas dire que ça n'affiche rien, ça veut dire qu'il ne peut même pas y avoir une balise "<HTML>" ou un commentaire html).