Quentin

Salut Nic, j'ai plusieurs problème en php et j'aurais besoin de ton aide.
Premièrement, j'ai suivi ENTIEREMENT ton tutoriel sur le tchat et l'espace membre et saches qu'il est excellent !
Maintenant, pour améliorer ce site, j'aimerais procéder à plusieurs amélioration (certaines on déjà été effectuées !) et je "peine" sur certaines...
J'ai ajouté de nouvelles fonctionalités (je suis débutant en PHP je tiens à le préciser!) comme des vérifications pour s'inscrire, un profil, ainsi que d'autres petits ajouts...
J'aurais justement besoin que tu me dise comment créer le fameux profil. J'ai déjà commencer à créer un profil pour chaque membre mais quand je clique sur lien pour accéder au profil du membre, l'icone "profil" dans le header est activé, et j'aimerais qu'il soit activé uniquement lorsque je suis sur MON profil... Comment faire ?
Quentin

Le 06/05/2015 à 19:36
Quentin

J'ai oublié de préciser plusieurs autres choses, j'ai EXACTEMENT les mêmes fichiers que toi sur ton tutoriel, si cela peut t'être utile, et tu peux trouver mon site ici : http://pass-code.besaba.com/
Il n'est pas encore fini, il y a quelques bugs mais c'est tout-à-fait normal, et si tu as des améliorations à proposer, n'hésite pas !
PS : Ne t'attarde pas sur la partie "tchat", elle n'est pas encore au point

Le 06/05/2015 à 19:42
De Pauw

Bonjour Quentin,

Pourrait tu nous donnée élément part élément car ses un block même en relisant ses chaud boulette

exemple:

Pour mon petit souci pour remémorer le bug :
- je peut m'inscrire
- j'ai accès a la partie chat
- la base de donnée est communicante, car si non il m'affiche une erreur MySql
- donc quand je regarde ma base de donnée il n'affiche rien.

donc es-que le PDO ou php version intervient dans le code ou alors je doit débug a certain endroit?
Ou alors il y a un autre problème dans le code qui n'(INSERT) PAS DANS LA DB.

je pense que se sera plus facile a digérer comme exemple.

Le 07/05/2015 à 00:18
Quentin

Voici la partie du code intéressante :

<?php
function user_exist($email, $password){
global $db;
$u = array(
'email'=>$email,
'password'=>$password
);
$sql = "SELECT * FROM users WHERE email = :email AND password = :password";
$req = $db->prepare($sql);
$req->execute($u);
$exist = $req->rowCount($sql);
return $exist;
}

Ceci est la connexion à la base de donnée établie lors de la connexion de l'utilisateur, et mon code pour le header :

if(isLogged() ==1){
?>
<a href="index.php?page=home" class="<?php echo ($page=='home')? 'active' : '';?>">Accueil</a>
<?php foreach (get_user() as $user){
if (isset($_SESSION['tchat']) AND $_SESSION['tchat'] == $user['id']){ ?>
<a href="index.php?page=profile&user=<?php echo $_SESSION['tchat']?>" class="<?php echo ($page=='profile')? 'active' : ''; ?>">Mon Profil</a>
<?php }else{ ?>
<a href="index.php?page=profile&user=" class="<?php echo ($page=='profile')? : ''; ?>">Mon Profil</a>
<?php } }?>
<a href="index.php?page=members" class="<?php echo ($page=='members')? 'active' : '';?>">Membres</a>
<a href="index.php?page=logout" class="<?php echo ($page=='logout')? 'active' : '';?>">Déconnexion</a>
<?php
} else{ ?>
<a href="index.php?page=register" class="<?php echo ($page=='register')? 'active' : '';?>">S'inscrire</a>
<a href="index.php?page=signin" class="<?php echo ($page=='signin')? 'active' : '';?>">Se connecter</a>
<?php
}
?>

Le 07/05/2015 à 10:41
Quentin

Et en gros, j'aimerais que quand l'utilisateur clique sur "Mon profil" dans le header, le active fasse son effet et assombri le "Mon profil", alors que si l'utilisateur va sur le profil de quelqu'un d'autre, la partie du Header n'appararaisse pas active et donc pas assombrie.
J'espère que tu m'as compris avec cet exemple ^^

Le 07/05/2015 à 10:43
De Pauw

Bonjour Quentin,

J'ai compris ton message, tu dois jouer avec le css et tes classe .menu active & le .hover et instaler une condition si tu passe dessus il change de couleur quand tu clic il se mais en une certaine couleur défini (menu active) et hover si tu veux le survole.

exemple:

/* unvisited link */
a:link {
color: green;
}

/* visited link */
a:visited {
color: green;
}

/* mouse over link */
a:hover {
color: red;
}

/* selected link */
a:active {
color: yellow;
}

Le 07/05/2015 à 15:06
Quentin

Merci! Mais il me faudrait une fonction php pour avoir l'email de l'utilisateur sans utiliser le $_SESSION['tchat'] (ma session contenant l'email)... Comment faire pour avoir quelque chose de ce genre : $user['email'] de façon à avoir :
if (isset($_SESSION['']) AND $_SESSION[''] == $user['email'] {
//affiche ce que je veux
}
else {
//affiche autre chose
}

Donc en gros il me faut une fonction php pour avoir$user['email'] :)

Le 07/05/2015 à 17:57
De Pauw

à mettre au dessus de ta page login ou autre:
<?php
// Page faisant appel aux sessions
session_start();

// Vérification de l'autorisation
if (!$_SESSION["membre"]) {
// Si l'utilisateur n'est pas autorisé il est reconduit
// sur le formulaire d'identification
header("Location: nommée.php");
die();
}
?>

a mettre dans ton code formulaire
------------------------------------------

<form action="nommée.php" method="post">
Email :<input class="form_input" type="text" name="email" maxlength="32" /></p>
Password :<input class="form_input" type="password" name="password" maxlength="32" /></p>
<input class="form_submit_contact" type="submit" value="Connexion" />
</form>

page a crée fichier a nommée.php
-----------------------------------------------

<?php
// Script faisant appel aux sessions
session_start();

// Paramètres de connexion à la base de données
$BD_serveur = "Host";
$BD_utilisateur = "Users";
$BD_motDePasse = "Password";
$BD_base = "Name-DB";

$email = htmlspecialchars ($_POST["email"]);
$password = sha1($_POST["password"]);

@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");

$requete = "SELECT * FROM profil_usersprofils ".
" WHERE login='$login' AND password='$password'";

$result = @mysql_query($requete);

if ($enreg = @mysql_fetch_array($result)) {
// Si une ligne a été trouvée c'est que le couple
// (identifant, mot de passe) est valide
$_SESSION["membre"] = TRUE;
$_SESSION["membreemail"] = $email;;
header("Location: index_personnel.php");
die();
} else {
$_SESSION["membre"] = FALSE;
header("Location: acces_refuser_personnel.php");
die();
}
?>

Le 07/05/2015 à 18:33
De Pauw

$_SESSION["membreemail"] = $email;; rectifie en ----> $_SESSION["membreemail"] = $email;
enlève un point virgule

j'espère que se code ta aider

Le 07/05/2015 à 18:42
Connectez-vous pour pouvoir répondre