Récupération du champ nom

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 : Récupération du champ nom

par dunbar » 13 juil. 2006, 15:20

Que dire sinon merci :lol:
Ca fonctionne enfin !!

par charabia » 13 juil. 2006, 15:10

Ne mets pas d'espace
$nom = $data ['nom'];
devient
$nom = $data['nom'];
echo "bonjour, ".$_SESSION['nom'];

par dunbar » 13 juil. 2006, 14:49

Salut

Alors j'ai suivi tes conseils, mais devine je te montre mon nouveau code, tu va peut-être me dire ou j'ai encore fait l'endouille :wink:
// on teste si une entrée de la base contient ce couple login / pass
        $sql = 'SELECT url,nom FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"'; 
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $data = mysql_fetch_array($req);
        $nom = $data ['nom'];
        
        mysql_close();
        
        // si on obtient une réponse, alors l'utilisateur est un membre        
		if (mysql_num_rows($req) == 1) { 
            session_start();
            $_SESSION['login'] = $_POST['login'];
			$_SESSION['nom'] = $nom;
            //'url' = adresse du champ "nom" correspondant au login de session de la TABLE membre 
			$url = $data['url']; 
            header('Location:'.$url); 
            exit();
        }
Et la page ou je voudrais appeller le "nom"
<?php
session_start();
if (!isset($_SESSION['login']) && !isset($_SESSION['nom'])) {
    header ('Location: index.php');
    exit();
}
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="fr-be">
<title>Prestations du jour !</title>
<style>
<!--
.smallfont
{
	font: 9px verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif;
}
-->
</style>
</head>

<body background="img/grd-4px.gif" style="background-attachment: fixed">

<table border="0" id="table1" width="1240">
	<tr>
		<td>
		<p align="center"><font color="#0000FF" size="7"></font></p>
		</td>
	</tr>
	<tr>
		<td><font size="2"></font></td>
	</tr>
	<tr>
		<td><font size="2"></font></td>
	</tr>
	<tr>
		<td><font size="2">Tél : 0000000000</font></td>
	</tr>
</table>
<table border="0" id="table2" width="1240">
	<tr>
		<td>
		<p align="center"><font size="4">Encodage des prestations <font color="#FF0000">tvc</font>@ble<font color="#FF0000">net</font> 
        du jour.</font></p> <?
		 echo "bonjour,".$_SESSION['nom']."" ; 
		  ?>
			
D'avance merci :roll:

par Truc » 12 juil. 2006, 21:04

Tu ajoutes le login en session fait en autant pour le "nom" de la base. Tu as déjà eu la forme pour l'appeler ne reste plus qu'à l'affecter.

En attendant tu peux toujours passer par un tuto pour apprendre les bases tu n'en sera que plus efficace par la suite :wink:

par dunbar » 12 juil. 2006, 20:41

Allô ??? :cry:

par dunbar » 12 juil. 2006, 18:14

Je vois pas trop comment on pourrait répondre à ta question...
Oooooh mais c'est trés simple regarde bien le code ici
// on teste si une entrée de la base contient ce couple login / pass 
        $sql = 'SELECT url,nom FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"'; 
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
        $data = mysql_fetch_array($req); 
         
        //mysql_free_result($req); 
        mysql_close(); 
         
        // si on obtient une réponse, alors l'utilisateur est un membre 
        //if ($data[0] == 1) { 
        if (mysql_num_rows($req) == 1) { 
            session_start(); 
            $_SESSION['login'] = $_POST['login']; 
            //header('Location:'.$url); 
            $url = $data['url']; //avec url le nom du champ 
            header('Location:'.$url); 
            exit(); 
        } 
        // si on ne trouve aucune réponse, le visiteru s'est trompé soit dans son login, soit dans son mot de passe 
        elseif ($data[0] == 0) { 
            $erreur = 'Compte non reconnu.'; 
        } 
        // sinon, alors la, il y a un gros problème  
        else { 
            $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
        } 
    } 
    else { 
        $erreur = 'Au moins un des champs est vide.'; 
    } 
} 
Et tu me dit ou toi tu placerais en ayant en tête qu'il devrais pouvoir être récupérer sur les autres pages...
Voilà et merci d'avance :P

par Ryle » 12 juil. 2006, 18:01

vous le metriez ou le
$data['nom']
Ben dans docum.. BAFFE!aïe ;)

Je vois pas trop comment on pourrait répondre à ta question... tu le mets là où toi tu en as besoin...
si c'est sur cette page, tu fais un echo là où tu veux qu'il apparaisse, si c'est sur la prochaine tu le passe en paramètre de l'url, si c'est sur toutes les autres tu le mets en session, si tu ne sais pas quoi en faire, tu ne le récupères pas et on en parle plus ;)

par dunbar » 12 juil. 2006, 17:50

Salut,

Vous voyer je vous l'avais dit j'ai oublier :oops:
Mais comme quoi j'ai peur de rien :wink: vous le metriez ou le
$data['nom']
Et si il y en à un qui me répond dans document je pique une crise

D'avance merci :wink:

par Ryle » 12 juil. 2006, 17:12

BaLiSTiK >> header et session doivent être placés avant tout envoi de code html au navigateur. Rien ne t'empêche de faire des traitement php au préalable (et heureusement)

A l'endroit où il les place, il peut ne démarrer la session que si l'utilisateur s'est correctement authentifié, et ne fais la redirection qu'une fois que le login est en session. Si l'authentification est incorrecte, la session ne démarre pas, l'utilisateur n'est pas redirigé :)

Cela dit, comme l'a fait remarquer ouckileou, pour pouvoir récuperer et afficher le champ "nom", il faudrait que ce soit demandé dans le code, sinon c'est plutôt normal que php ne le fasse pas ;)

par BaLiSTiK » 12 juil. 2006, 16:59

il me semble que header et session_start doivent êter placé avant tout code. donc le pbl peut-il venir de la?puis même je vois pas l interet du session_start alors que la session n est pas encore faite. met el en commentaire au cas ou :)

Re: Récupération du champ nom

par ouckileou » 12 juil. 2006, 14:12

J'ai j'imagine oublier quelque chose :oops: comme d'habitude :lol:
Je ne vois nulle part de variable
$data['nom']
Et c'est plus du PHP donc je déplace

Récupération du champ nom

par dunbar » 12 juil. 2006, 13:31

Bonjour,

J'ai un soucis, c'est à dire que je n'arrive pas à récupérer les champs "nom" de ma TABLE, le champs "login", et "url" aucun problème mais pas le champ "nom" rien pourquoi ?
// on teste si une entrée de la base contient ce couple login / pass
        $sql = 'SELECT url,nom FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"'; 
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $data = mysql_fetch_array($req);
        
        //mysql_free_result($req);
        mysql_close();
        
        // si on obtient une réponse, alors l'utilisateur est un membre
        //if ($data[0] == 1) {
		if (mysql_num_rows($req) == 1) { 
            session_start();
            $_SESSION['login'] = $_POST['login'];
            //header('Location:'.$url);
			$url = $data['url']; //avec url le nom du champ 
            header('Location:'.$url); 
            exit();
        }
        // si on ne trouve aucune réponse, le visiteru s'est trompé soit dans son login, soit dans son mot de passe
        elseif ($data[0] == 0) {
            $erreur = 'Compte non reconnu.';
        }
        // sinon, alors la, il y a un gros problème :)
        else {
            $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
        }
    }
    else {
        $erreur = 'Au moins un des champs est vide.';
    }
}
?>
J'ai j'imagine oublier quelque chose :oops: comme d'habitude :lol:

D'avance merci