Formulaire qui bug pour certains internautes.

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 : Formulaire qui bug pour certains internautes.

par Invité » 03 oct. 2006, 13:00

Je fais déjà un contrôle en javascript sur mes champs obligatoire.
Mon soucie vient plutôt de mon script, certains intérnaute n'arrivent pas à envoyer le formulaire, du coup vu que je ne trouve pas d'où viens le problème je voudrais ne pas recevoir ces formulaires qui me reviennent vide et dont la pièce jointe n'est pas inséré dans ma base.

par Ryle » 03 oct. 2006, 12:27

Le javascript c'est bien mais ne voyez ça que comme du confort utilisateur (ça permet de lui dire tout de suite que son formulaire est mal rempli et évite un appel inutile au serveur, mais ca s'arrête là) Tout ce qui est "données sensibles ou nécessaire" envoyé par l'internaute (avec ou sans passage de javascript) est à contrôler sur le serveur quand plus personne ne peut y toucher :)

Le plus simple dans ton cas est de vérifier que les données importantes reçues sont présentes et ne sont pas vide :
if($nom!="") // le champ nom est il renseigné ?
// pas de test sur le prenom, on peut supposer celui non obligatoire du moment que les autres champs sont renseigné (?)
if($mail!="") // le champ mail est il renseigné ?
if(isSet($_FILES['fichier'])) // y a-t-il bien un fichier ?
...
Tu peux soit imbriquer ces différents if, soit les regrouper dans une seule condtion :
if($nom!="" && $mail !="" && isSet($_FILES['fichier']) ... ) {
  // je fais mon insertion
}
else {
  // renvoi un message d'erreur à l'utilisateur
}

par fred9999 » 03 oct. 2006, 12:07

salut

tu gère des champs obligatoires non ? alors si ils sont vides
adresse un message aux utilisateurs en javascript.

Formulaire qui bug pour certains internautes.

par pierrecalligaro » 03 oct. 2006, 11:55

Bonjour à tous,
J’ai fais un formulaire en ligne ou je demande à l’internaute de remplir 3 champs et de déposer son cv en pièce jointeau format word . J’envoie tout ça dans une base de donnée + un mail pour me prévenir de la réception d’une candidature.
Je vais ensuite dans mon BackOffice pour consulter la candidature.

Dans l’ensemble ça fonctionne plutôt bien sauf qu’il m’arrive de recevoir des candidatures vide. L’internaute rencontre un problème lors de l’envoie de sa candidature et je ne sais pas d’où ça viens.

Ma solution serait de ne pas insérer dans ma base et de ne pas recevoir d’email lorsque un internaute rencontre un problème.
Comment dois je m’y prendre ?

Voici mon code pour l’insertion dans la base de donnée et l’envoie du mail :
<?php
require_once("../SQL/param_connect.php");

include('class.mailer.php');

$nom=addslashes($_POST['nom']);
$prenom=addslashes($_POST['prenom']);


$intitule=stripslashes($_POST['intitule']);
$mail_reponse=$_POST['mail_reponse'];

$expertise=addslashes($_POST['expertise']);
$motivation=addslashes($_POST['motivation']);
$id_num=$_POST['id_num'];
$idcv=$_POST['idcv'];

$date = date("dmYHis");


// upload du cv
$content_dir = '../fichiers/'; // dossier où sera déplacé le fichier

$tmp_file = $_FILES['fichier']['tmp_name'];

// on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

    $toto=move_uploaded_file($tmp_file, $content_dir . $date . '_' . $name_file);


$chemin_cv="http://www.bla.com/fichiers/". $date . '_' . $name_file;

$r2="insert into candidature (nom, prenom, expertise, id_offre, motivation,date_depot, chemin_cv, type, lang)
                 values('$nom', '$prenom', '$expertise', '$id_num', '$motivation', NOW(), '$chemin_cv', '0', '0')";
$rq2=mysql_query($r2) or die("Erreur : ".mysql_error());

// Envoie mail
$subject = 'Candidature : Réponse à un poste';

$message  = "<html><body>";
$message .= "<p>Vous avez reçu une candidature pour un poste de : <b>{$intitule}</b> (candidature ARCOS (fr))</p>";
$message .= "<p>Cliquez-ici pour consulter cette candidature :<br />";
$message .= "<a href=\"http://www.bla.com/backoffice\">http://www.bla.com/backoffice</a></p>";
$message .= "</body></html>";

$mailer = new Mailer();

$mailer->set_from('[email protected]', 'Site Arco');
$mailer->set_address($mail_reponse);

$mailer->set_format('html');
$mailer->set_subject($subject);
$mailer->set_message(stripslashes($message));

if( !$mailer->send() )
{
    echo 'l\'email n\'a pu être envoyé';
}
?>
<!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>Candidature pour le poste de : <?php echo $idcv; ?></title>
    <link type="text/css" href="../css2/formStyles.css" rel="stylesheet"/>
</head>

<body>
  <div id="last">
<p>Votre candidature a bien été enregistrée.</p>
</div>
</body>

</html>

<?php



?>
Merci
pierre