alert

ViPHP
ViPHP | 3607 Messages

15 mars 2006, 16:44

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

Mammouth du PHP | 19672 Messages

15 mars 2006, 17:04

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
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

15 mars 2006, 17:34

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...

ViPHP
ViPHP | 3607 Messages

15 mars 2006, 17:46

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

Mammouth du PHP | 19672 Messages

15 mars 2006, 18:10

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

15 mars 2006, 20:52

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

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

16 mars 2006, 01:46

$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) ?

ViPHP
ViPHP | 3607 Messages

16 mars 2006, 12:01

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

Eléphant du PHP | 312 Messages

16 mars 2006, 12:11

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).