envoyer infos page

Statut
N'est pas ouverte pour d'autres réponses.

alan

Elite
comment je pourrai envoyer des informations d'une page a une autre sans que surfeur aie a faire qqch ....
 

QwesT

Elite
pourrais tu un peu préciser ? :?
 
1er
OP
alan

alan

Elite
ben voila j'ai un formulaire pour me logger ...
je l'envoie
il vérifie le pass... et si le pass est bon mettre une valeur '1' pour la page suivante
je regarde si la valeur est a 1 et apres je mets mon cookie

Code:
<?php
if(login_ok==1){
$expire = 365*24*3600; 
setcookie("NICK",$name,time()+$expire);  }
?>
<html>
<?php if(isset($_COOKIE["NICK"])) {
$logged =  "Bienvenue dans la section Membres ". $_COOKIE["NICK"]. ".";
$logged .= "actuellement en construction";
include('membres.php');

}elseif($HTTP_POST_VARS['login']==1){
if (isset($HTTP_POST_VARS))
{
reset($HTTP_POST_VARS);
foreach ($HTTP_POST_VARS as $k=>$elem) 
	{
	${"_$k"}=$elem;
	}
}
include ('../inc/function.php');
connect();
$sql = "SELECT id,password FROM forum_members WHERE name='". $name ."'";
// on envoie la requete
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
$data = mysql_fetch_array($req);
mysql_close();

$pass_db = $data['password'];
$pass_log = md5($pass);
if ($pass_db = $pass_log){

//je mets une variable pour mettre le cookie login_ok

echo "Vous êtes bien logger";
}


} else {
$form_login =  "form pour se logger";
?>
 

Carambar

Elite
Une rédirection javascript dans l'entête de la page ?
 
1er
OP
alan

alan

Elite
Fearless a dit:
Une rédirection javascript dans l'entête de la page ?
cmt ca ????
pense pas ... ca ira pas dans mon cas...
 

Carambar

Elite
Difficile de savoir ce qui conviendrais car tu n'explique pas ce que tu veut faire exactement :p . Tu veut faire passer une variable pour indiquer si le résultat est bon ou pas sans que l'utilisateur n'y sois redirigé ?

Je ne comprends pas mais il me semble que ce n'est pas une bonne idée car n'importe qui qui connais le script pourrais faire passer une fausse directive à la page en question. Il faudrais que tu vérifie l'origine de l'appel.
 
1er
OP
alan

alan

Elite
bon voila tout le code de la page code
Alors j'ai une seule page qui fait tout

1 ya aucun cookies ... et on vient pas du form pour se logger alors j'affiche le formulaire

2 je viens de la page du formulaire, je le remplis il vérifie si le pass correspond avec l'user et la je défini une variable pour recharger la page mais avec la variable login_ok (et une autre variable $name)

3 quand je reload la page il vérifie si login_ok = 1, et si ui il mets le cookie (puisque le cookie doit etre au tout debut de page) et alors il charge la page membres.php
 

guslinux

Gamerz'ien
bon, en gros, comment passer une variable d'une page à l'autre, sans le fair la l'url et sans avoir un bouton de formulaire ...

Conculion, comment on peut faire pour que un lien hyper texte (ou qqch qui y resemble) commande l'envois d'un formulaire ... grosse question ...

tous à vos bouquin, et travaillez bien ud ciboulo ... je v ZzZzZ
 
N

niafron

ex membre
on utilises des fonctions

1) formulaire de login

2) tu passe les info a une
fonction test_login(name, pass)
elle te renvoi true ou false
et tu test en dessous

if(fonction(a, b)) then je met mon cookie
else prout prout je te connais pas
 
N

niafron

ex membre
exemple de la fonction

Code:
<?php


        require_once("BD.class.php");
        require_once("Connect.php");
     
        function testCookies() {
        // on vérifie si les cookies sont present
        //----------------------------------------------------
        // return TRUE si TOUS les cookies sont preésent
        // return FALSE si un ou plusieurs cookies sont absent
                
                if(!isset($_COOKIE['AZ_session']) || !isset($_COOKIE['AZ_nosession']) || !isset($_COOKIE['AZ_id']))
                        return FALSE;
                else
                        return TRUE;
        }

        function login($login, $mdp) {
        // on log la personne (création des cookies)
        //----------------------------------------------------
        // en IN : - login
        //         - mot de passe
        //----------------------------------------------------
        // return FALSE si il y a eu un problème lors du login
        // sinon return TRUE
                
                if(($login == '') || ($mdp == ''))
                        return FALSE;
                
                $bd = new BD(LOG, PASS, BASE, SERVEUR);
               
                if ($bd->enErreur())
                        return FALSE;
                
                $md5Mdp = md5($mdp);
                $resultSelectLogin = $bd->execRequete("SELECT id_membre FROM " .TABLE_membre.
                                                        " WHERE pseudo_membre = '" .$login. 
                                                        "' AND mdp_membre = '" .$md5Mdp."'");
                // on vérifie si le log et le pseudo existent dans la DB
                $idMembre = $bd->objetSuivant($resultSelectLogin);
                if(!$idMembre) {
                        $bd->quitter();
                        return FALSE;
                        }
                else {
                        cleanSession($idMembre->id_membre);
                        // on rend invalide les anciennes sessions
                        $idSession = date("U") . (date("U") * 17);
                        $dateSession = date(Y) . "-" . date(m) . "-" . date(j);
                        $resultInsertSession = $bd->execRequete("INSERT INTO " .TABLE_session. 
                                                                  " (id_session, id_membre, date_session ) VALUES ( '" 
                                                                  .$idSession. "', "
                                                                  .$idMembre->id_membre.",'"
                                                                  .$dateSession."')");
                        // on insert une nouvelle session
                        if(!$resultInsertSession) {
                                echo "<b>Echec de création de session</b>";
                                $bd->quitter();
                                return FALSE;
                        }
                        else {
                                noSession($idSession, $idMembre->id_membre);
                                $bd->quitter();
                                return TRUE;
                                
                        }
                        
                        
                }
        }

        function displaySmallLogin($redirection) {
        // affichage du petit formulaire pour les logins
        // en IN : la page de destination
                
                echo "
<table width=\"125\" cellpadding=\"0\" cellspacing=\"0\">
<form name=\"formulaire_login\" action=\"P_login.php\" method=\"post\">
   <input type=\"hidden\" name=\"redirection\" value=\"$redirection\">
    <tr>
        <td width=\"35\" height=\"25\">
            <p align=\"left\"> log</p>
        </td>
        <td width=\"90\" height=\"25\">
		<input type=\"text\" name=\"username\" size=\"8\" maxlength=\"40\" value=\"\" />
        </td>
    </tr>
    <tr>
        <td width=\"35\" height=\"25\">
                    <p> pass</p>
        </td>
        <td width=\"90\" height=\"25\">
                <input type=\"password\" name=\"password\" size=\"8\" maxlength=\"40\" value=\"\" />
        </td>
    </tr>

    <tr>
        <td width=\"125\" height=\"25\" colspan=\"2\">
                        <p align=\"center\"><input value=\"login\" class=\"mainoption\"
            name=\"send\" type=\"submit\"></p>
        </td>
    </tr>
</form>
</table>
";

        }
        
        function displayLargeLogin($redirection) {
        // affichage du grand formulaire pour les logins
        // en IN : la page de destination
        
                                       echo "
<table width=\"300\" cellpadding=\"0\" cellspacing=\"0\">
<form name=\"formulaire_login\" action=\"P_login.php\" method=\"post\">
    
    <tr>
        <td width=\"91\" height=\"30\">
            <p align=\"left\"> pseudo</p>
        </td>
        <td width=\"193\" height=\"30\">
		<input type=\"text\" name=\"username\" size=\"25\" maxlength=\"40\" value=\"\" />
        </td>
    </tr>
    <tr>
        <td width=\"91\" height=\"30\">
                    <p> mot de passe</p>
        </td>
        <td width=\"193\" height=\"30\">
                <input type=\"password\" name=\"password\" size=\"25\" maxlength=\"40\" value=\"\" />
        </td>
    </tr>

    <tr>
        <td width=\"290\" height=\"30\" colspan=\"2\">
        <input type=\"hidden\" name=\"redirection\" value=\"$redirection\">
                        <p align=\"center\"><input value=\"login\" class=\"mainoption\"
            name=\"send\" type=\"submit\"></p>
        </td>
    </tr>
</form>
</table>
";

        }
        
        function noSession($session, $membre) {
        // calcul la valeur de la variable cachée
        // crée le cookies noSession (objectif : limiter les accès à la DB)
        //----------------------------------------------------
        // return TRUE si tout c'est bien passé
        // return FALSE en cas de problème
        
                // non communique

                setcookie("AZ_session", $session);
                setcookie("AZ_nosession", $valNoSession);
                setcookie("AZ_id", strval($membre));
               
        }
        
        function checkNoSession() {
        // on vérifie la valeur de la variable cachée
        //----------------------------------------------------
        // si le cookie noSession existe et que ca valeur est valide on return TRUE
        // sinon on return FALSE
              
                // non communique
                                
        }
        
        function cleanSession($id_membre) {
        // on set l'etat des ancienne session d'un membre a dépassé
        //----------------------------------------------------
        // en IN : - id d'un membre
                
                $bd = new BD(LOG, PASS, BASE, SERVEUR);
                
                if($bd->enErreur())
                        exit;
                
                $retVal = $bd->execRequete("UPDATE session SET etat_session = 'o' WHERE id_membre = " .$id_membre.
                                              " AND etat_session <> 'o'");
                // on update les sessions du membre a 'o'
                
                $bd->quitter();
                
        }
        
        function logout() {
        // logout de la personne        
                
                if(testCookies()) {
                        $bd = new BD(LOG, PASS, BASE, SERVER);
                
                        if($bd->enErreur())
                                exit;
                        
                        $retVal = $bd->execRequete("UPDATE session SET etat_session = 'o' WHERE id_session = '" .$_COOKIE['AZsession']. "'");
                        SetCookie("AZnoSession",0,31536000);
                        
                        $bd->quitter();
                        
                }
        }

                                
?>
ici c la fonction login qui t interesse


donc tu fais un display login sur une page
et le test se fait sur la page P_login.php

Code:
<?php
// cette page contiendra le resultat du login
        require_once("BD.class.php");
        require_once("Connect.php");
        require_once("F_login.php");
        if(!login($_POST['username'], $_POST['password'])) {
                $erreurLogin = TRUE;
                
        } else {
                $erreurLogin = FALSE;
                
        }
        
?>
<html>
 <head>


 </head>
 <body>
  <?php
        $ref = $_POST['redirection'];
        if (!$erreurLogin) echo "<p align=\"center\">log avec succes</p>"; else echo "<p align=\"center\">echec du log</p>";
        echo "<br />\n";
        echo "<p align=\"center\"><a href=\"".$ref."\">retour a la page principale</a></p>\n";
        
  ?>
 </body>

</html>
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut