le_bleu

Inscris le 03/05/2009 à 10:03
  • Signature
    Le_bleu cherche à s'en sortir !
  • Site web
  • Nombre de sujets
    1
  • Nombre de messages
    3
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
le_bleu
Bonjour,
tout d'abord merci pour ce cours sur l'espace membre, clair et fonctionnel. C'est exactement ce que je recherchais.

Mais voici mon problème :(je précise que j'ai garder par défaut les noms des variables, nom de la BDD, etc, du cours "Comment faire un espace membre en PHP")

j'essaye de créer une page personnelle pour chacun de mes clients à laquelle ils auront accès en fonction de leur login/mot de passe.
Pour être plus clair, quand le client entre ses informations de connexion dans la page"index.php", il est redirigé sur sa page personnelle.

J'ai donc ajouté un champ "destination" à la table "membre" et mainteant j'essaye de récupérer cette information pour m'en servir de redirection dans le "header ("Location: "");"
Mais malgré mes heures d'essais et de recherches ( et mes grandes lacunes -je commence à apprendre ce langage- ) je n'y arrive pas.
C'est donc avec un peu de honte que je demande votre aide étant donné que la réponse doit être assez évidente pour vous.

Voici le code :

<?php <?php

// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('XXX', 'XXX', 'XXX');
mysql_select_db ('XXX', $base);

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
//J'AI AJOUTE CETTE VARIABLE, PENSANT POUVOIR LA RECUPERER...
$destination = $data['destination'];

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header("Location: ".$destination.""); //-->Je suppose que c'est une erreur...
exit();
}
// si on ne trouve aucune réponse, le visiteur 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.';
}
}
?> ?>


Je remercie par avance ceux qui prendront le temps d'aider un newbi !
Le_bleu cherche à s'en sortir !

Ses derniers messages sur les forums

forum
le_bleu
NIKEL !!

Ca fonctionne parfaitement.
Un grand merci à toi LA GLOBULE.
C'était la première fois que je postais un message sur un forum. Je m'attendais pas à avoir une réponse aussi rapide et efficace. Tu viens de me fidéliser à ce site.
Encore merci, et bon dimanche !
Le_bleu cherche à s'en sortir !
le_bleu
Merci d'avoir pris le temps de répondre, malheureusement ca à l'air de bloqué au niveau des sessions.
le message d'erreur est le suivant :
<?php Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/web7/31/34/51963234/htdocs/NEW/login/index.php:2) in /mnt/web7/31/34/51963234/htdocs/NEW/login/index.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at /mnt/web7/31/34/51963234/htdocs/NEW/login/index.php:2) in /mnt/web7/31/34/51963234/htdocs/NEW/login/index.php on line 23 ?>
Le_bleu cherche à s'en sortir !
le_bleu
Bonjour,
tout d'abord merci pour ce cours sur l'espace membre, clair et fonctionnel. C'est exactement ce que je recherchais.

Mais voici mon problème :(je précise que j'ai garder par défaut les noms des variables, nom de la BDD, etc, du cours "Comment faire un espace membre en PHP")

j'essaye de créer une page personnelle pour chacun de mes clients à laquelle ils auront accès en fonction de leur login/mot de passe.
Pour être plus clair, quand le client entre ses informations de connexion dans la page"index.php", il est redirigé sur sa page personnelle.

J'ai donc ajouté un champ "destination" à la table "membre" et mainteant j'essaye de récupérer cette information pour m'en servir de redirection dans le "header ("Location: "");"
Mais malgré mes heures d'essais et de recherches ( et mes grandes lacunes -je commence à apprendre ce langage- ) je n'y arrive pas.
C'est donc avec un peu de honte que je demande votre aide étant donné que la réponse doit être assez évidente pour vous.

Voici le code :

<?php <?php

// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('XXX', 'XXX', 'XXX');
mysql_select_db ('XXX', $base);

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
//J'AI AJOUTE CETTE VARIABLE, PENSANT POUVOIR LA RECUPERER...
$destination = $data['destination'];

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header("Location: ".$destination.""); //-->Je suppose que c'est une erreur...
exit();
}
// si on ne trouve aucune réponse, le visiteur 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.';
}
}
?> ?>


Je remercie par avance ceux qui prendront le temps d'aider un newbi !
Le_bleu cherche à s'en sortir !

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours