Edition de profil faire un header avec pseudo
- Accueil
- Forum
- Programmation
- PHP
- Edition de profil faire un header avec pseudo
mister1610 Le 21 février 2019 à 13:53 (Édité le 22 février 2019 à 21:12)
Je vous explique mon problème en plus détaillé, je veut faire une edition de profil et quand la personne à fini de faire les modification de son profil je voudrais que l'url soit "profil.php?pseudo=son new pseudo".
Quelles que images pour peut être vous éclairer sur mon problème.
Avant de changer de pseudo:
Dans la base de donnée:
Quand j'ai changer le pseudo:
Dans la base de donnée:
Ce que je voudrais dans l'exemple au dessus c'est que au lieu d'avoir écrit :
Mister1610Je voudrais qu'il y ai écrit :
BillyFlexVoici le code :
<!-- Partie PHP -->
<?php
// Démarrage de la session
session_start();
// Connexion à la base de donnée
include ('../BDD/BDD.php');
if(isset($_SESSION['pseudo'])) {
// Selection l'utilisateur dans la bdd
$requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ?");
$requser->execute(array($_SESSION['pseudo']));
$user = $requser->fetch();
if(isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo']) {
$newpseudo = htmlspecialchars($_POST['newpseudo']);
$insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
$insertpseudo->execute(array($newpseudo, $_SESSION['id']));
header("Location: profil.php?pseudo=".$_SESSION['pseudo']);
}
?>
<!-- Partie HTML -->
<!DOCTYPE html>
<html>
<head>
<title>Profil de <?php echo $_SESSION['pseudo']; ?> - mister1610</title>
</head>
<body>
<div id="edit" align="center">
<h1>Edition du profil</h1>
<form method="POST" action="">
<table>
<tr>
<td>
<label>Pseudo</label>
</td>
</tr>
<tr>
<td>
<input type="text" name="newpseudo" placeholder="Pseudo" value="<?php echo $user['pseudo']; ?>">
</td>
</tr>
<tr>
<td><br>
<label>Adresse mail</label>
</td>
</tr>
<tr>
<td>
<input type="email" name="newmail" placeholder="Adresse mail" value="<?php echo $user['mail']; ?>">
</td>
</tr>
<tr>
<td><br>
<label>Nouveau mot de passe</label>
</td>
</tr>
<tr>
<td>
<input type="password" name="newmdp" placeholder="Mot de passe">
</td>
</tr>
<tr>
<td><br>
<label>Confirmer le mot de passe </label>
</td>
</tr>
<tr>
<td>
<input type="password" name="newmdp1" placeholder="Confirmer mot de passe">
</td>
</tr>
<tr>
<td>
<br>
<input type="submit" value="Enregistrer">
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
<?php
}
else {
header("Location: connexion.php");
}
?>
Doppler Le 22 février 2019 à 13:05 (Édité le 24 février 2019 à 00:26)
Tu rediriges simplement avec la variable $_POST du champs du nouveau pseudo dans ton formulaire.
Cela devrais ressembler à ceci :
<?php
//Variable champs input news_pseudo securisee
$newpseudo = htmlspecialchars($_POST['newpseudo']);
//Redirection vers le nouveau pseudo de maniere securisee
header('Location: profil.php?pseudo=' . $newpseudo);
?>
mister1610 Le 22 février 2019 à 21:00 (Édité le 22 février 2019 à 21:06)
<!-- Partie PHP -->
<?php
// Démarrage de la session
session_start();
// Connexion à la base de donnée
include ('../BDD/BDD.php');
// On regarde si le pseudo est bien identique
if(isset($_GET['pseudo']) == $_SESSION['pseudo']) {
// Sécurisation de la variable PSEUDO
$getpseudo = htmlspecialchars($_GET['pseudo']);
$requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ?");
$requser->execute(array($_GET['pseudo']));
$userinfo = $requser->fetch();
?>
<!-- Partie HTML -->
<!DOCTYPE html>
<html>
<head>
<title>Profil de <?php echo $userinfo['pseudo']; ?> - mister1610</title>
</head>
<body>
<?php
if(isset($_SESSION['pseudo']) AND $userinfo['pseudo'] == $_SESSION['pseudo']) {
?>
<a href="editionprofil.php">Editer mon profil</a>
<a href="deconnexion.php">Se déconnecter</a>
<?php
}
?>
</body>
</html>
<?php
}
?>
Voici le code pour le profil mister1610 Le 22 février 2019 à 21:12 (Édité le 1 janvier 1970 à 01:00)
if(isset($_SESSION['pseudo']) AND $userinfo['pseudo'] == $_SESSION['pseudo']) {
au lieu de mettre $_SESSION['pseudo']j'ai mis
$_GET['pseudo']et ça fonctionne
Doppler Le 22 février 2019 à 23:59 (Édité le 1 janvier 1970 à 01:00)
Content de t'avoir aidé 😉
Balatharas Le 25 février 2019 à 18:11 (Édité le 1 janvier 1970 à 01:00)
<body>
<?php
if(isset($_SESSION['pseudo']) AND $userinfo['pseudo'] == $_SESSION['pseudo']) {
?>
<a href="editionprofil.php">Editer mon profil</a>
par<body>
<?php
if(isset($_SESSION['id']) AND $userinfo['id'] == $_SESSION['id']) {
?>
<a href="editionprofil.php">Editer mon profil</a>
Doppler Le 25 février 2019 à 20:01 (Édité le 1 janvier 1970 à 01:00)
Pour ne pas prendre en compte les changements de pseudo, tu devrais utiliser l'id du compte de ton utilisateur, car tu peux être sur que cette variable ne sera pas modifiée par l'utilisateur.@Balatharas, Tu as raison, dans ce cas, pour être sûr que l'user ne change pas manuellement.
Tu peut établir une vérification SQL de type fetch() où tu ne retiens qu'en fonction de l'id de $_SESSION['id'] !
Exemple :
//Procedure recuperation element de l'utilisateur
$req = $bdd_connect->prepare('SELECT * FROM tables_all_users WHERE id = ?');
$req->execute(array($_SESSION['id']));
$get_usersinfos = $req->fetch();
//condition etablie
if(isset($get_usersinfos['id']) AND $userinfos['id'] == $get_usersinfos['id']) { ?>
<a href="editionprofil.php">Editer mon profil</a>
<?php } ?>
Balatharas Le 26 février 2019 à 15:05 (Édité le 1 janvier 1970 à 01:00)