Comparaison données formulaire et base de données

remy42
Invité n'ayant pas de compte PHPfrance

14 janv. 2009, 18:23

bonjour,
je debute en php car je suis des etudes d'info et la je doit faire un intranet de gestion d'absence d'eleves en php

la je souhaite deja crée un espace membres pour les profs.
Pour cela j'ajoute des utilisateurs dans la bases de données ensuite je rentre mon nom d'utilisateur et mot de passe dans un formulaire et je compare a la bases de données je pense que jusque la c'est ca :)

mais voila j'ai une erreur sur la requete SQL a la selection de l'enregistrement
Je vois pas d'ou cela peut venir ca me marque :

Parse error: parse error in C:\Program Files\EasyPHP 3.0\www\verifid.php on line 33

Deuxieme question comment sécuriser le bordel car si je fait localhost/accueil.php ca saute bien evidement la page de login. Ca se gere comment ca ??

Merci d'avance pour vos réponses.

Rémy

//récupération des valeurs des champs:

//login:
$login_verif = $_POST["login_verif"] ;
//password:
$password_verif = $_POST["password_verif"] ;


// selection de lenregistrement saisie a la page login.php

$sql= "select login,password from utilisateurs where login=\"$login_verif\" and password=\"$password_verif\"",$idConnexion) or die(mysql_error());
$requete = mysql_query ($sql);

// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
{
echo "Aucun utilisateurs ayant le mot de passe saisi existe. Reéssayer";
}

// SI LE LOGIN ET MOT DE PASSE SONT EXACTES
else
{
// REDIRECTION VERS UNE PAGE PROTEGEE
header("Location:accueil.php?id=$id");

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

14 janv. 2009, 18:36

Bonjour et bienvenue sur PHPfrance,

Relis toi attentivement, tu as des bouts de code mal placés :
$sql= "select login,password from utilisateurs where login=\"$login_verif\" and password=\"$password_verif\"",$idConnexion) or die(mysql_error());
$requete = mysql_query ($sql);
Pour tes posts suivants, n'hésites pas à utiliser les balises PHP pour mettre en forme ton code sur le forum, c'est plus simple à lire ;)

Code : Tout sélectionner

[php] // Ton code PHP [/php]
Quand tout le reste a échoué, lisez le mode d'emploi...

remy42
Invité n'ayant pas de compte PHPfrance

14 janv. 2009, 18:40

ah désolé je n'avai pas vu les balise php
C'est le $idconnexion le probleme ??
Franchement je vois pas j'ai attaquer le php depuis 13h cet aprem donc :)
Si tu pouvais m'indiquez mon erreur car je ne connais pas parfaitement toutes les syntaxes.

Et pour ma deuxième question c'est quoi la solution a mettre en oeuvre ?

Merci pour ta réponse

Eléphant du PHP | 54 Messages

14 janv. 2009, 18:59

voilà :
$sql= "select login,password from utilisateurs where login='".$login_verif."' and password='".$password_verif."'",$idConnexion) or die(mysql_error()); 

sa devrait fonctionner ...

edit : oé dsl je suis fatigué, la prochaine fois je me tairrais !
Modifié en dernier par mike001 le 14 janv. 2009, 19:13, modifié 1 fois.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

14 janv. 2009, 19:08

mike001, si ça fonctionne, j'arrête le PHP ! ;)

Moi, je tenterais plutôt ça :
$sql = "SELECT login, password FROM utilisateurs WHERE login='".$login_verif."' AND password='".$password_verif."'";
$res = mysql_query($sql) or die(mysql_error()); // en supposant la connexion à la base déjà effectuée
:!: Je n'ai pas vérifié, mais ce genre de code me paraît vulnérable à une injection SQL... :-k

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

14 janv. 2009, 19:09

comment sécuriser le bordel car si je fait localhost/accueil.php ca saute bien evidement la page de login. Ca se gere comment ca ??
Les sessions devraient t'être utiles... ;)

remy42
Invité n'ayant pas de compte PHPfrance

14 janv. 2009, 19:19

Merci a vous de m'avoir aider ca fonctionne ( la deuxieme solution )

Qu'appelle tu les sessions ?? pour bloquer l'accès a ma page et qu'entend tu par injection SQL en gros lol pour etoffer mes connaissances

Merci encore

remy42
Invité n'ayant pas de compte PHPfrance

14 janv. 2009, 19:21

J'ai trouver pour les sessions je vais me documenter la dessus :)

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

14 janv. 2009, 19:28

Grossièrement, les sessions sont des cookies stockés sur le serveur
utilisés pour un seul internaute lors d'une connexion.

Les variables de session permettent donc de stocker
des données propres à cet utilisateur, sans les partager.

remy42
Invité n'ayant pas de compte PHPfrance

14 janv. 2009, 21:46

En parlant session je viens de me pencher dessus
j'ai un souci sur la redirection
<?php
  session_start() ;
  //destruction de toutes les variable de sessions
  session_unset() ;
  //destruction de la session
  session_destroy() ;
 
  header('Location login.php') ;
?>

Je veux une fois la session "tuer" sa redirige vers la fenetre de connexion mais non ca me met une page logout.php toute blanche
Ou est l'erreur dans ma redirection ?

Merci d'avance

Eléphant du PHP | 54 Messages

15 janv. 2009, 00:15

Pour crée une session :
<?php
session_start();
$_SESSION['nom'] = $nom;
pour récupéré la session dans une autre page :
<?php
session_start(); // même si tu l'a mis sur la page d'avant, tu doit le remettre
$nom = $_SESSION['nom'];
et pour ton erreur :
header("Location : index.php");
devrait faire l'affaire ...

ViPHP
AB
ViPHP | 5818 Messages

15 janv. 2009, 00:23

header("Location : index.php");
devrait faire l'affaire ...
L'intention est bonne mais cela ne fonctionnera pas car il ne faut pas d'espace entre Location et les deux points
header("Location: index.php");

@remy42 -> Sinon tu as un tuto complet avec code fonctionnel pour ce que tu veux faire ici
http://www.phpfrance.com/forums/voir_sujet-242539.php

Tu verras au passage comment te protéger des injections sql évoquées par albat