alert

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : alert

par Hermès » 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).

par jojolapine » 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

par naholyr » 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) ?

par albat » 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

par Cyrano » 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.

par jojolapine » 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

par Invité » 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...

par Cyrano » 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
}
?>

alert

par jojolapine » 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