Petit soucis PHP


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Petit soucis PHP

Message le Jeu Sep 28, 2006 14:38

Bonjour,

j'ai une page index.php avec un formulaire les données de ce formulaire son récupérées dans une seconde page index2.php dans cette meme page il y à un include de la page procedure.php

je vais vous exposer mon code ça sera plus simple :

Code: Tout sélectionner
<?php
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());

      mysql_select_db('test',$db)  or die('Erreur de selection '.mysql_error());
   
if(isset($_POST['magasin']))         $magasin=$_POST['magasin'];
else      $magasin="";

if(isset($_POST['nom']))       $nom=$_POST['nom'];
else      $nom="";

if(isset($_POST['prenom']))      $prenom=$_POST['prenom'];
else      $prenom="";

if(isset($_POST['teldom']))      $teldom=$_POST['teldom'];
else      $teldom="";

if(isset($_POST['telmob']))       $telmob=$_POST['telmob'];
else      $telmob="";

if(isset($_POST['mdp']))      $mdp=$_POST['mdp'];
else      $mdp="";

if(isset($_POST['horraires']))      $horraires=$_POST['horraires'];
else      $horraires="";

if(isset($_POST['dat']))      $dat=$_POST['dat'];
else      $dat="";

if(isset($_POST['fonction']))      $fonction=$_POST['fonction'];
else      $fonction="";

if(isset($_POST['rempl']))      $rempl=$_POST['rempl'];
else      $rempl="";

if(isset($_POST['login']))      $login=$_POST['login'];
else      $login="";

if(isset($_POST['mdpsup']))      $mdpsup=$_POST['mdpsup'];
else      $mdpsup="";


if(empty($magasin) OR empty($nom) OR empty($prenom) OR empty($fonction) OR empty($teldom) OR empty ($telmob) OR empty ($mdp) OR empty ($horraires) OR empty ($dat) OR empty ($rempl) OR empty ($login) OR empty ($mdpsup))
    {
    echo '<center><font color="red" size ="14">Merci de renseigner tous les champs!<br><a href="javascript:history.go(-1)">Retour au formulaire</a></font></center>';
       }
$sql= "SELECT * from superviseurs WHERE login='$login'AND mdpsup='$mdpsup'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);
if ($data['mdpsup'] != $mdpsup) {
echo '<center><font color="red" size ="14">Mauvais Login ou Mot de Passe<br><a href="javascript:history.go(-1)">Retour au formulaire</a></font></center>';
}
else{
  $mail = new MyMailer;
// configuration pour le mail
$mail->IsHTML(true);
$mail->AddAddress("moadresse@mail.com", "toto");
$mail->Subject = "le sujet";
$mail->Body    = "le corps du message";
}
if(!$mail->Send()){

  echo '<br><br><br><center><font color="white" size ="14">Erreur envoi</font></center>';
  }
  else{
  include ('procedure.php');
  }
   ?>



voila mon soucis c'est que même lorsque le login ou le mot de passe est érronné il m'affiche la page procedure.php et m'envoi un mail.
Ce que je cherche à faire c'est faire en sorte qu'il n'envoi pas de mail et n'affiche pas la page procedure.php tant que l'identification n'a pas eu lieu.

pouvez vous m'aider?


e-kiwi
Modérateur
Modérateur
 
Messages: 15544
Inscription: 23 Déc 2003

Message le Jeu Sep 28, 2006 14:55

et si tu met :
---------------------------------------
if(!$mail->Send()){

echo '<br><br><br><center><font color="white" size ="14">Erreur envoi</font></center>';
}
else{
include ('procedure.php');
}
---------------------------------------

avant le '}' de ton else ?


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Jeu Sep 28, 2006 14:57

ou exactement de quel else tu parles?


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Message le Jeu Sep 28, 2006 15:01

Code: Tout sélectionner
<?php


if(empty($magasin) OR empty($nom) OR empty($prenom) OR empty($fonction) OR empty($teldom) OR empty ($telmob) OR empty ($mdp) OR empty ($horraires) OR empty ($dat) OR empty ($rempl) OR empty ($login) OR empty ($mdpsup))
{
   echo '<center><font color="red" size ="14">Merci de renseigner tous les champs!<br><a href="javascript:history.go(-1)">Retour au formulaire</a></font></center>';
}

$sql= "SELECT * from superviseurs WHERE login='$login' AND mdpsup='$mdpsup'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
if(mysql_num_rows($req)<1){
   echo '<center><font color="red" size ="14">Mauvais Login ou Mot de Passe<br><a href="javascript:history.go(-1)">Retour au formulaire</a></font></center>';
}else{
   $mail = new MyMailer;
   // configuration pour le mail
   $mail->IsHTML(true);
   $mail->AddAddress("moadresse@mail.com", "toto");
   $mail->Subject = "le sujet";
   $mail->Body    = "le corps du message";
   if(!$mail->Send()){
      echo '<br><br><br><center><font color="white" size ="14">Erreur envoi</font></center>';
   }else{
      include ('procedure.php');
   }
}

?>


un mauvais placemeent de tes conditions à la fin (le test si le mail a bien été envoyé ne se fait que si la personne s'est authentifié

retza
WRInaute discret
WRInaute discret
 
Messages: 58
Inscription: 16 Fév 2005

Message le Jeu Sep 28, 2006 15:05

Bonjour,

Si je me trompe pas, la ligne :
$sql= "SELECT * from superviseurs WHERE login='$login'AND mdpsup='$mdpsup'";
te permets de vérifier si tu as une correspondance Nom/Pass
Donc, si tu as 0 réponse, on retourne à la page d'authentification :
if (mysql_num_rows($req)==0)
{ On retourne à la page de login }
else
{ On envoi le mail et on affiche procedure.php }

J'espere t'avoir aidé
A+


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Jeu Sep 28, 2006 15:05

Super merci beaucoup sureau je galèrais depuis pas mal de temps


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Jeu Sep 28, 2006 15:09

un autre soucis se pose l'identification à lieu mais le formulaire n'est pas rempli la page procédure s'affiche quand même et le mail s'envoie également


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Message le Jeu Sep 28, 2006 16:00

Code: Tout sélectionner
<?php


if(empty($magasin) OR empty($nom) OR empty($prenom) OR empty($fonction) OR empty($teldom) OR empty ($telmob) OR empty ($mdp) OR empty ($horraires) OR empty ($dat) OR empty ($rempl) OR empty ($login) OR empty ($mdpsup))
{
   echo '<center><font color="red" size ="14">Merci de renseigner tous les champs!<br><a href="javascript:history.go(-1)">Retour au formulaire</a></font></center>';
}else{

   $sql= "SELECT * from superviseurs WHERE login='$login' AND mdpsup='$mdpsup'";
   $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
   if(mysql_num_rows($req)<1){
      echo '<center><font color="red" size ="14">Mauvais Login ou Mot de Passe<br><a href="javascript:history.go(-1)">Retour au formulaire</a></font></center>';
   }else{
      $mail = new MyMailer;
      // configuration pour le mail
      $mail->IsHTML(true);
      $mail->AddAddress("moadresse@mail.com", "toto");
      $mail->Subject = "le sujet";
      $mail->Body    = "le corps du message";
      if(!$mail->Send()){
        echo '<br><br><br><center><font color="white" size ="14">Erreur envoi</font></center>';
      }else{
        include ('procedure.php');
      }
   }
}
?>


juste un else si les champs sont bien remplis


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Jeu Sep 28, 2006 16:03

en fait la structure n'est pas génial

faut faire des fonctions qui renvoient true/false

rog


webac
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 373
Inscription: 4 Mar 2005

Message le Jeu Sep 28, 2006 16:39

ça fonctionne à merveille merci beaucoup


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Jeu Sep 28, 2006 17:28

arf

non seulement t'as pas lu ce que je t'ai dit mais en plus t'as codé à ON

rog

en plus faut savoir que les globales sont directement accessibles par les fonctions


sureau
WRInaute discret
WRInaute discret
 
Messages: 195
Inscription: 7 Mar 2005

Message le Ven Sep 29, 2006 8:20

Tu ne vas pas en faire une fonction si il n'est appelé qu'une seule fois sur le site.


rog
WRInaute passionné
WRInaute passionné
 
Messages: 1662
Inscription: 21 Sep 2006

Message le Ven Sep 29, 2006 8:40

ce n'est pas seulement pour le nombre de fois appelées mais surtout pour la clareté du code ainsi que pour son évolution

sur un code long, ça permet aussi de ne pas par des variables temporaires surcharger puisque celles produites par les fonctions sont (en théorie) détruites après les executions de fonctions

rog


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : JotSpot

  • Analyser le référencement Google
    Cet outil vous donne un petit résumé de l'état de référencement de votre site dans Google.
  • Détection de pages similaires
    Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité