[PHP] créer une possibilté d'identification SQL/PHP

créer une possibilté d'identification SQL/PHP [PHP] - PHP - Programmation

Marsh Posté le 12-12-2006 à 15:44:13    

Salut a tous !
 
J'ai ce code :
 

Code :
  1. <?php
  2. /*on récupère les données ddu formulaire et on les stcoke dans les variables PHP_AUTH_USER et PHP_AUTH_PW*/
  3. $PHP_AUTH_USER= $_POST["USER"];
  4. $PHP_AUTH_PW= $_POST["PW"];
  5. /*Là c'est ton code qui teste la valeur des variables auquel je n'ai pas touché*/
  6. if (($PHP_AUTH_USER=="abcde" ) && ($PHP_AUTH_PW=="abc" )) {
  7.       echo "<HTML><BODY>";
  8.       echo "Vous etes maintenant identifié.\n";
  9.       echo "<a href="identification.php">ICI</a>";
  10.       echo "</BODY></HTML>";
  11.     } else {
  12. echo "Login et/ou mot de passe inconnu.";   
  13.     }
  14. ?>


 
je voudrait insérer un lien vers une page identification.php auquelle on arrive en cliquant sur le mot ICI
mais j'ai une erreur de type :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /mnt/136/sdc/8/a/dvdenstock/admin/pageauthentification.php on line 11
 
 
:??:


Message édité par loic_02800 le 13-12-2006 à 14:12:36
Reply

Marsh Posté le 12-12-2006 à 15:44:13   

Reply

Marsh Posté le 12-12-2006 à 15:46:27    

la coloration syntaxique du forum montre très bien le problème.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-12-2006 à 15:48:08    

Je m'explique ;)
 
sans la ligne 11 , tout va bien, dès que je la mets, ca ne va plus  
pourquoi ca ? c'est le PHP qui ne veux pas du html ?

Reply

Marsh Posté le 12-12-2006 à 15:48:53    

tu as mal compris ma réponse. Regarde ta ligne 11 comme le forum l'affiche, le problème est tout bête.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-12-2006 à 15:50:16    

merci de ton aide, mais justement l'erreur je ne la vois pas, et ca fais une heure que je suis dessus :d

Reply

Marsh Posté le 12-12-2006 à 15:51:27    

m'enfin tu vois pas que identification.php est en noir, là? Donc pas dans une chaine de caractères, qui sont colorées en rouge par le forum? ça ne te donne pas un indice?[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-12-2006 à 15:52:11    

si justement ca me donne la puce a l'oreil comme on dit, mais que faire, hahah ?  :d

Reply

Marsh Posté le 12-12-2006 à 15:58:10    

Faire en sorte de ne pas fermer la chaine de caractères php...[:dawa]
Donc soit échapper les guillemets qui font partie de la chaine, soit utiliser le simple ' comme délimiteur de chaine php.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-12-2006 à 16:00:59    

putain je suis naze du slip :d
 
c'était tout con, mais je ne le savais pas, graCe a toi je vais pouvoir avancer tres vite sur cette page :jap:
 
un grand merci ;)

Message cité 1 fois
Message édité par loic_02800 le 12-12-2006 à 16:10:05
Reply

Marsh Posté le 12-12-2006 à 16:20:25    

loic_02800 a écrit :

putain je suis naze du slip :d


Sur ce coup-là, tu nous doit tous une bière [:dawa]

Reply

Marsh Posté le 12-12-2006 à 16:20:25   

Reply

Marsh Posté le 12-12-2006 à 16:21:07    

hého pourquoi tous? Ya que moi qui l'ai aidé.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-12-2006 à 18:11:52    

FlorentG m'a deja pas mal aidé dans le passé  
et il n'y a pas si longtemps aussi :d
 
et c'est combien une bière virtuelle :d

Reply

Marsh Posté le 12-12-2006 à 18:16:03    

bon z'allez dire que je suis lourd mais bon :d
 
j'arrive a insérer des clients via un formulaire, la base enregistre bien les client dans la table correspondante, par contre je n'arrive a loguer ces fameux clients a partir de la base :
 

Code :
  1. <? include("_connexion.php" ); ?>
  2. <?php
  3.    // fonction de protection des donnees reçues
  4.    require('secure.php');
  5.    if ( ($nom = getvar(VARMODE_POST, 'nom', VARTYPE_STR, false) )
  6.        && ( $pass = getvar(VARMODE_POST, 'pass', VARTYPE_STR, false) ) ) {
  7.        if ($requete = mysql_query('SELECT * FROM client WHERE nom like "'.$nom
  8.                                             .'" AND password="'.$pass.'"') ) {
  9.           if ($user = mysql_fetch_array($requete) ) {
  10.               // ouvrir la session
  11.               session_start();
  12.               // initialiser la session
  13.               session_unset();
  14.               // enregistrer les informations sur l'utilisateur, sauf son mot de passe
  15.               unset($user['password']);
  16.               $_SESSION = $user;
  17.           }
  18.        }
  19.     }
  20.  
  21.     // rediriger vers la page appelante
  22.    header('location: '.$_SERVER['HTTP_REFERER']);
  23. ?>


 
c'est ou que ca va pas ?
edit, c'est ma tournée :d


Message édité par loic_02800 le 12-12-2006 à 18:16:40
Reply

Marsh Posté le 12-12-2006 à 18:35:08    

c'est pas $_SESSION = $user;
 
mais $_SESSION['user'] = $user;
 
$_SESSION est un tableau associatif
 
et je te conseille de faire  SELECT user FROM ... plutot que SELECT *

Reply

Marsh Posté le 12-12-2006 à 18:47:07    

merci flo
 
je test ;)

Reply

Marsh Posté le 12-12-2006 à 18:49:50    

Code :
  1. <? include("_connexion.php" ); ?>
  2. <?php
  3.    // fonction de protection des donnees reçues
  4.    require('secure.php');
  5.    if ( ($nom = getvar(VARMODE_POST, 'nom', VARTYPE_STR, false) )
  6.        && ( $pass = getvar(VARMODE_POST, 'pass', VARTYPE_STR, false) ) ) {
  7.        if ($requete = mysql_query('SELECT user FROM client WHERE nom like "'.$nom
  8.                                             .'" AND password="'.$pass.'"') ) {
  9.           if ($user = mysql_fetch_array($requete) ) {
  10.               // ouvrir la session
  11.               session_start();
  12.               // initialiser la session
  13.               session_unset();
  14.               // enregistrer les informations sur l'utilisateur, sauf son mot de passe
  15.               unset($user['password']);
  16.               $_SESSION['user'] = $user;
  17.           }
  18.        }
  19.     }
  20.  
  21.     // rediriger vers la page appelante
  22.    header('location: '.$_SERVER['HTTP_REFERER']);
  23. ?>


 
tout se passe bien sauf la ligne 25 apparement, je pense que c'est la qu'on insere le lien vers la page des clients qui ont réussi a se loguer , car le $_SERVER['HTTP_REFERER']); me semble louche comme truc :??:

Reply

Marsh Posté le 12-12-2006 à 19:18:11    

Attention : $_SERVER['HTTP_REFERER'] est très souvent vide, donc inexploitable.

Message cité 1 fois
Message édité par dnlilas le 12-12-2006 à 19:18:36
Reply

Marsh Posté le 12-12-2006 à 19:28:32    

de toute maniere, tu affiche un espace et un saut de ligne ( entre le  
<? include("_connexion.php" ); ?> et  
<?php  
 
donc tu ne peux plus envoyer de header

Reply

Marsh Posté le 13-12-2006 à 12:45:32    

ra.. mais arrétez avec vos ouvertures et fermetures de balises... ouvrez la une fois pour toute et fermez la à la fin... pourquoi se rajouter des erreurs potentielles en faisant comme ça...

Reply

Marsh Posté le 13-12-2006 à 14:00:50    

dnlilas a écrit :

Attention : $_SERVER['HTTP_REFERER'] est très souvent vide, donc inexploitable.


 
 
;)
 
donc avec cette ligne, je ne peux pas faire de renvoi vers une autre page ?
 
:jap:

Reply

Marsh Posté le 13-12-2006 à 14:01:27    

flo850 a écrit :

de toute maniere, tu affiche un espace et un saut de ligne ( entre le  
<? include("_connexion.php" ); ?> et  
<?php  
 
donc tu ne peux plus envoyer de header


 
;)
 
merci

Reply

Marsh Posté le 13-12-2006 à 15:22:14    

Code :
  1. <?include("_connexion.php" );?>
  2. <?php
  3.    // fonction de protection des donnees reçues
  4.    require('secure.php');
  5.    if ( ($nom = getvar(VARMODE_POST, 'nom', VARTYPE_STR, false) )
  6.        && ( $password = getvar(VARMODE_POST, 'password', VARTYPE_STR, false) ) ) {
  7.        if ($requete = mysql_query('SELECT user FROM client WHERE nom like "'.$nom
  8.                                             .'" AND password="'.$password.'"') ) {
  9.           if ($user = mysql_fetch_array($requete) ) {
  10.               // ouvrir la session
  11.               session_start();
  12.               // initialiser la session
  13.               session_unset();
  14.               // enregistrer les informations sur l'utilisateur, sauf son mot de passe
  15.               unset($user['password']);
  16.               $_SESSION['user'] = $user;
  17.           }
  18.        }
  19.     }
  20.  
  21.     // rediriger vers la page appelante
  22. header('Location:http://dvdenstock.free.fr/admin.php');
  23. ?>


 
bon j'en ai marre je laisse tomber tant pis pour la ramasse :o


Message édité par loic_02800 le 13-12-2006 à 15:24:07
Reply

Marsh Posté le 13-12-2006 à 15:23:04    

quel intérêt de mettre ton require tout seul dans son coin?:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-12-2006 à 15:24:39    

i don"t know :cry:
 
faut le virer ?

Reply

Marsh Posté le 13-12-2006 à 15:25:19    

bah mets-le avec le reste, ça t'évitera l'espace qui fout en l'air ton header!:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-12-2006 à 15:25:47    

je parle de l'include, en fait, pas du require...:D


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-12-2006 à 15:26:35    

bas il me plait bien la ou il est :d
 
toutes mes pages l'appel comme ca :d

Reply

Marsh Posté le 13-12-2006 à 15:31:23    

..... :heink: ... ba ça me plais bien de mettre des $ partout alors je le fais....  :sarcastic:  
 
quand on te dis de faire des modif, fait les, c'est pas pour t'em$$$$der, c'est pour t'aider....
 
c'est marrant cette façon de faire... créer un fichier html et inclure du php dedans... alors que finalement c'est un fichier php qui fait du code html... j'avoue ne pas comprendre l'intérêt, si ce n'est embrouiller le monde...

Reply

Marsh Posté le 13-12-2006 à 15:33:03    

désolé si vous n'arrivez pas a suivre, c'est normal, je suis une bille , un vrai n00b :d
 
bien sur que vous voulez m'aider et c'est tres sympa, par contre si je ne fais pas les modifs c'est parce que je ne vois pas ou les faire en fait :(
 
;)

Reply

Marsh Posté le 13-12-2006 à 15:34:43    

loic_02800 a écrit :

bas il me plait bien la ou il est :d
 
toutes mes pages l'appel comme ca :d


On te dit juste, au lieu de faire :

Code :
  1. <? include("_connexion.php" );?>
  2. <?php
  3.   // fonction de protection des donnees reçues
  4.   require('secure.php');
  5. ...


Faire :

Code :
  1. <?php
  2.   require '_connexion.php';
  3.   // fonction de protection des donnees reçues
  4.   require 'secure.php';
  5. ...


Ca t'évitera des erreurs. Et essaye d'avoir un code consistant, tu mélanges tout : short open tags (<? un coup, <?php un autre), include et require (mieux vaut foutre require tout le temps), etc.

Reply

Marsh Posté le 13-12-2006 à 15:36:17    

FlorentG a écrit :

On te dit juste, au lieu de faire :

Code :
  1. <? include("_connexion.php" );?>
  2. <?php
  3.   // fonction de protection des donnees reçues
  4.   require('secure.php');
  5. ...


Faire :

Code :
  1. <?php
  2.   require '_connexion.php';
  3.   // fonction de protection des donnees reçues
  4.   require 'secure.php';
  5. ...


Ca t'évitera des erreurs. Et essaye d'avoir un code consistant, tu mélanges tout : short open tags (<? un coup, <?php un autre), include et require (mieux vaut foutre require tout le temps), etc.


 
 
un vrai gentleman ;)
 
merci , je ne vous embete plus avec mes code a deux balles
d'ailleurs je commence a me rendre compte que y' rien de clair, c'est que ca rentre
 
merci a tous  
:jap:

Reply

Marsh Posté le 13-12-2006 à 15:39:53    

bah ça sert à rien à part foutre en l'air ton header()...[:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-12-2006 à 15:41:48    

et bas voila, j'arrivais pas a trouver pkoi ca me semblais bizar ce header, voila qui est reglé ;)

Reply

Marsh Posté le 14-12-2006 à 08:26:35    

Pour être plus précis, si je ne me trompe pas, entre le ?> et le <?php il y a un saut de ligne. Qui sera donc envoyé... on connait la suite..

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed