IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Problème PHP & pop up


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 40
    Points
    40
    Par défaut [PHP-JS] Problème PHP & pop up
    Bonjour,

    Dans une page web, j'ai créé un lien qui ouvre un popup pour s'authentifier afin de modifier des données personnelles dans la base mysql.
    Dans ce popup, il y a les 2 champs identifiant et mot de passe + le bouton valider.

    Lorsque l'on clique sur ce bouton, la page login.php est appelée.
    Voici le script php présent dans cette page:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    if(isset($_POST['Modifier']))
    {
    $pseudo = sqlVar($_POST['email_mod']);
    $passe = sqlVar($_POST['passe_mod']);
     
    $sql = "SELECT * FROM membre WHERE email_membre='$pseudo' AND passe='$passe' AND accept='true'";
    $requete=@mysql_db_query($db, $sql);
    if(@mysql_num_rows($requete)==0)
    {
    header("Location: accueil.php");
    exit;
    }else{
    $email = sqlVar($_POST['email_mod']);
    $sql = "SELECT id_membre FROM membre WHERE email_membre='$email'";
    $requete=@mysql_db_query($db, $sql);
    $rs=mysql_fetch_object($requete);
    $id_user = $rs->id_membre;
    mysql_close($dblk);
     
    // Vérifie que l'id_user est correct sinon redirige vers la page d'accueil
    if($id_user == '')
    {
    ?>
    <script type="text/javascript"> alert("L'email n'existe pas.");
    document.location.href = "accueil.php";
    </script>
    <?
    }else{
    header("Location: inscription.php?cat=1&id_user=$id_user");
    }
    }
    }
    Mon problème est que lorsque je tape un identifiant et mot de passe, ma fenetre inscription.php?cat=1&id_user=$id_user s'ouvre dans le pop up et non pas dans ma page principale ou dans une nouvelle page de taille normale.

    De même, si je ne saisis rien dans les champs et que je clique sur le bouton valider, mon message d'alerte s'affiche bien mais la fenêtre pop up reste derrière avec un message d'erreur dedans: Notice: "trying to get property of non-object in"

    Merci pour votre aide.

  2. #2
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    utilise le php pour afficher le javascript.
    ca vient peut etre de la :

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     echo "<script language='Javascript'>";
     echo "<!--\n";
     echo "location.href = '$page';\n";
     echo "// -->";
     echo "</script>\n";

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    merci pour ta réponse joe.
    malheureusement, la page php cible s'ouvre toujours dans la fenetre pop up.

  4. #4
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    Citation Envoyé par creatchy
    merci pour ta réponse joe.
    malheureusement, la page php cible s'ouvre toujours dans la fenetre pop up.
    une question, si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(!empty($id_user ))
    à la place de

    (et tu inverse les codes comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if(!empty($id_user ))
    {
    ?>
    header("Location: inscription.php?cat=1&id_user=$id_user");
    <?php
    }else{
    <script type="text/javascript"> alert("L'email n'existe pas.");
    document.location.href = "accueil.php";
    </script>
    }
    pour tester si il ouvre toujours le popup vu qu'il est dans le else maintenant !

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Joe, j'ai réadapté le premier code que tu m'as fourni avec la commande echo, ce qui donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    if(isset($_POST['Modifier']))
    {
    	$pseudo = sqlVar($_POST['email_mod']);
    	$passe  = sqlVar($_POST['passe_mod']);
     
    	$sql = "SELECT id_membre FROM membre WHERE email_membre='$pseudo' AND passe='$passe' AND accept='true'";
    	$requete=@mysql_db_query($db, $sql);
    	$rs=mysql_fetch_object($requete);
    	$id_user = $rs->id_membre;
    	mysql_close($dblk);
     
    	// Vérifie que l'id_user est correct sinon redirige vers la page d'accueil
    	if($id_user == '')
    	{
    	?>
    		<script type="text/javascript"> alert("L'email n'existe pas.");
    		// window.opener.location.href='accueil.php';
    		window.close();
    		</script>
    	<?
    	}else{
     
     echo "<script language='Javascript'>";
     echo "<!--\n";
     echo "window.opener.location.href='inscription.php?cat=1&id_user=$id_user';\n";
     echo "window.close()";
     echo "// -->";
     echo "</script>\n";
     
    		}
    }
    ça fonctionne bien. La page inscription.php s'affiche dans la fenetre mère du pop up, avec les champs préremplis.

    Par contre, j'ai toujours mon souci avec le message d'erreur lorsque je ne saisis rien dans les champs et que je clique sur le bouton valider.

    Mon message d'alerte en javascript s'affiche bien mais la fenêtre pop up reste derrière avec ce message d'erreur dedans: Notice: "trying to get property of non-object in" jusqu'à ce que je clique sur le bouton OK. Ce n'est pas esthétique.

    N'y aurais t il pas un moyen de fermer le pop up avant que le message d'alerte apparaisse par exemple ?

    En attendant, merci pour ton aide

  6. #6
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    C'est parce que tu appelles mal ton popup !

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Mon popup est appelé comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <A id="clic" href='javascript:PopupCentrer("popup.php",665,140,"status=yes, directories=no, toolbar=no, location=no, menubar=no, scrollbars=no, resizable=no")'>cliquez ici</A>
    Et la fonction est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function PopupCentrer(page,largeur,hauteur,options) {
      var top=(screen.height-hauteur)/2;
      var left=(screen.width-largeur)/2;
      window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
    }

  8. #8
    Membre averti Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Points : 388
    Points
    388
    Par défaut
    et si tu faisais un controle javascript sur ton champs pour éviter qu'il soit vide ?
    tu fais "controle formulaire javascript " suos google et tu auras plei nde résultats !

    ++

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    ok, je vais jeter un oeil. merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problème PHP/Mysql mon php n'exécute pas la requête
    Par matew dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/04/2007, 13h01
  2. [PHP][XSLT] problème caractères accentués
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 29/05/2006, 09h29
  3. [PHP-JS] Problème php-javascript (suite)
    Par nicoaix dans le forum Langage
    Réponses: 4
    Dernier message: 21/12/2005, 10h47
  4. [PHP - MSSQL] Problème d'upload / binaire
    Par noiserie dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 25/07/2005, 18h03
  5. [Class/PHP/Postgres] Problème de modélisation...
    Par k-reen dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 27/02/2003, 08h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo