8797 sujets

Développement web côté serveur, CMS

bonjour a tous

j'ai un gros probleme avec mon code, je suis en train de faire un site que je met en relation avec une base de donnee existante. en fait voila mon probleme.

j'arrive pas a recuperer le chaine de caractere que l'utilisateur tappe pour l=se logger. Le login en fait. JE voudrais le recuperer et l'utiliser dans les autres pages de mon site mais j'arrive pas a trouver de solution.

Si qqun en a une je suis prenneur, j'ai passer toute la semaine precedente a faire des tests et j'en peut plus!!!


si vous voulez voir mon code je vous l'enverai.

merci de votre aide

rutickuck
Modifié par rutickuck (27 Jun 2005 - 01:52)
Bonjour rutickuck et bienvenue sur ce forum.

Serait-il possible pour toi de donner un titre évocateur à ton sujet ?
Parce que « Probleme », on s'en doute !

a écrit :

11- Conventions d'écriture
L'emploi des majuscules est à utiliser avec parcimonie dans les titres de sujet comme dans les messages. En effet, un texte entièrement rédigé en majuscules donne l'impression que la personne crie sur un ton agressif, sur internet. Veuillez donner un titre de sujet évocateur lorsque vous en rédigez un nouveau, et non pas simplement 'Question', 'HELP', 'Problème!' ou 'URGENT!!!!'. Le forum n'étant pas équipé d'un vérificateur d'ortographe, veuillez vous relire afin que votre message soit bien compris par tous et qu'on vous prenne au sérieux. Il est rappelé également que ce forum est... un forum, et non un tchat ou un support SMS. Vous êtes donc priés de respecter un minimum ce langage qu'est le français.

http://forum.alsacreations.com/help.php#regle11

Merci !
Modifié par Stephan (20 Jun 2005 - 22:20)
Je ne comprend pas bien ton probleme...
Ce que tu veut faire, c'est garder la connexion u membre une fois qu'il a été reconnu sur toute les page de ton site ?

Pour cela oriente toi du coté des $_SESSION[]...

a écrit :
j'arrive pas a recuperer le chaine de caractere que l'utilisateur tappe pour l=se logger. Le login en fait. JE voudrais le recuperer et l'utiliser dans les autres pages de mon site mais j'arrive pas a trouver de solution.

Hein ?
Le probleme c'est quoi ??? on ne peu pas deviner :s
Tu arrive a recuperer le champs de formulaire quand meme ?
Pour récupérer les champs d'un formulaire, il faut utiliser la variable pré-définie $_POST, ainsi, pour un formulaire se nommant "pseudonyme", il faudra l'afficher comme ceci :

<?php echo $_POST['pseudonyme']; ?>


Pour préserver ces données, on utilise en effet les SESSION ou les COOKIES, voir le site php.net pour plus d'explications.
je m'explique plus clairement

bon l'objectif:
recuperer la valeur du login afin de l'utiliser dans les autres pages du site.

Comment je fasi :
je commence chacune de mes pages par session_start();
dans la premiere page, celle qui verifie l'existence du login, je met:

$_SESSION['sauverlelogin'] = $login;

ensuite dans une des pages suivantes, j'ecris:

$sauverlelogin=$_SESSION['sauverlelogin'];
echo $sauverlelogin;

Sachant que je place session_start au debut de chacune de ces deux pages sans rien mettre au prealable sauf <?php.

Je recois le message d'erreur suivant:

Notice: Undefined index: sauverlelogin in c:\program files\easyphp1-8\www\thomas\select_position.inc.php on line 4

la ligen 4 est la ligne
$sauverlelogin=$_SESSION['sauverlelogin'];

Voila j'ai essayer beaucoup de choses, si vous puviez m'aider ca serai super bin!!

merci
Bonjour rutickuck et bienvenue,

Ajout aux règles que Stephan rappelait précédement: utiliser la balise [ code] pour proposer des extraits de code dans le forum comme indiqué dans la même page Mise en forme générale des messages.

Promis après on t'embête plus avec les règles, enfin normalement. Smiley lol

Cependant je ne vois pas bien le rapport avec les standards dans ta question sur php Smiley confus .
Même remarques qu'Igor, ceci dit:

le message d'erreur te dit que l'index "sauvelogin" n'est pas défini, donc que la varaible session n'existe pas.

ça vient à mon avis de ton autre page, où tu n'as justement pas créer la variable. Pourquoi ?

les variables globales automatiques sont désactivées sur les nouvelles version de php. Pour accéder à une variable post, tu ne peux pas juste l'apeller par son nom, tu dois utiliser :

$_POST['nomdelavariable'];

Smiley smile
Mais voila ce que je fais, je pense que ca reviens au meme.


 $login = $_POST['login'];
 $_SESSION['sauverlelogin'] = $login;


( j'espere que c'est bon comme ca)

je la met bien en post de cette facon et pourtant tjs pas de variable enregistree...
Tu as essayer de mettre les deux pages sur un serveur web ?

C'est peut etre ton esayphp qui foire Smiley eek

Parce que le code me parait tres bon...
Bon alors essaye avec ca, avec des print_r pour verifier la validité et le contenue des variables.

Page 1

<?php
session_start();

if(isset($_POST['login'])) {
$_SESSION['sauverlelogin'] = $_POST['login'];
}

// on affiche toute les variable session et post
print_r($_POST);
print_r($_SESSION);
?>
<form method="post">
   <p>
<input type="text" name="login" />
<input type="submit" />
   </p>
</form>

<a href="page2.php">page2</a>

page2.php
 <?php
session_start();

$sauverlelogin=$_SESSION['sauverlelogin'];
echo $sauverlelogin;

// on test les sessions au cas ou
print_r($_SESSION);
?>
Bon je vous remercie de m'aider mais j'y arrive toujours pas. comme le disent certains, c'est peut etre esayphp, ca ne m'etonnerai pas mais le print_r me donne comme resultat "array()".

Je vasi faire simple je vasi vous montrer en totalite mes pages et peut etre que vous verrez plus facilement ce qui cloche.
Voici ma page html qui lance mon formulaire.
<html>
 <head>
  <title>Connexion au site</title>
 </head>
 <body>
  <form method="post" action="verifLogin.php">
   <table border="0" width="400" align="center">
    <tr>
     <td width="200"><b>Vôtre login</b></td>
     <td width="200">
      <input type="text" name="login">
     </td>
    </tr>
    <tr>
     <td width="200"><b>Vôtre mot de passe<b></td>
     <td width="200">
      <input type="password" name="password">
     </td>
    </tr>
    <tr>
     <td colspan="2">
	 <a HREF="select_position.inc.php">
      <input type="submit" name="submit" value="login">
  	</a>
     </td>
    </tr>
   </table>
  </form>
 </body>
</html>



Puis ma page veriflogin en php, celle ou j'esssaie de recuperer la valeur de login:
<?php
// On démarre la session
session_start();

// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
$loginOK = false; 

// on sélectionne la base
mysql_select_db('smiromar',$db); 
// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
    
if ( isset($_POST) && (!empty($login)) && (!empty($_POST['password'])) ) {
 $_SESSION['sauverlelogin'] = $_POST['login'];
 		 print_r($_POST);
		 print_r($_SESSION);

  extract($_POST);  
	
  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT user_id, supervisor_id, first_name, last_name, own_login, password FROM romarusers WHERE own_login = '".addslashes($login)."'";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
   
    // On vérifie que son mot de passe est correct
    if ($password == $data['password']) {
      $loginOK = true;
    }
  }
}

// Si le login a été validé on met les données en sessions
if ($loginOK == true) {
  $_SESSION['user_id'] = $data['user_id'];
  $_SESSION['supervisor_id'] = $data['supervisor_id'];
  $_SESSION['first_name'] = $data['first_name'];
  $_SESSION['last_name'] = $data['last_name'];
  $_SESSION['own_login'] = $data['own_login'];
}
else {
  echo 'Une erreur est survenue, veuillez réessayer !';
}
?>



et enfin la page 2 en php qui est celle ou j'essaie de reutiliser la variable sauverlelogin

?php
	session_start();
	
	$db = mysql_connect('localhost','root','');
	mysql_select_db('smiromar',$db);

	$sauverlelogin=$_SESSION['sauverlelogin'];
	
	print_r($_SESSION);
	
	echo "voila";
	echo $sauverlelogin;
	echo "go";
	echo $sauverlelogin;
	echo "la";
	

	$sql = 'SELECT title_id FROM romarusers WHERE own_login = \'$sauverlelogin\' ';
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	$sol = mysql_fetch_array($req);
	$top = $sol["title_id"];
	//$flop = $sol["user_id"];
	
	switch($top) 
ETC ETC


Voila je vous devoile tout mon travail c'est un simple copier coller donc si il manque qqch la dessus c qu'il manque qqch chez moi.

Je vous remercie

ruti
TriadPtale a écrit :
J'ai un doute : pour nommer un input, il faut utiliser name ou id ?

name

rutickuck a écrit :
Bon je vous remercie de m'aider mais j'y arrive toujours pas. comme le disent certains, c'est peut etre esayphp

T'as pas moyen de tester sur un vrai serveur web, comme suggerait Mobman02 ?
Typiquement ca devrai etre C:\Windows\php.ini

Mais bon...

Pour moi l'erreur provient tout simplement de ton test.
if ( isset($_POST) && (!empty($login)) && (!empty($_POST['password'])) ) {

Moi je mettrais plutot
if(isset($_POST['submit']) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {


Smiley murf essaye avec ca et tien nous au courant.
Et bien je viens de passer mon samedi a faire des tests et verifier ce qui allait ou pas.

Je viens de trouver la solution.

 <a HREF="select_position.inc.php">
<input type="submit" name="submit" value="login">
</a>

Ca ca merche pas parce que je fasi un lien quand je clique sur le bouton login. et je ne passe jamais par la page veriflogin.
Voila maintenant ca marche et mobman a raison mon test ne marche pas mais merci le tiens fonctionne parfaitement.

Donc ce que j'ai fasi pour passer a la page suivante c que dans mon test dans veriflogin, si le login et le password fonctionnent, je fasi un require!!!

merci a tous de m'avoir aidé, vous pouvez ecrire resolu devant mon probleme Smiley langue Smiley langue Smiley langue
rutickuck a écrit :

merci a tous de m'avoir aidé, vous pouvez ecrire resolu devant mon probleme Smiley langue Smiley langue Smiley langue

Tu peux écrire [Résolu] en éditant ton sujet Smiley cligne