afficher Profil perso éditable

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 mars 2012, 07:53

Salut,

Pour vérifier l'existence du pseudo dans la base, je te conseille d'utilisé Ajax c'est plus pratique, professionnel et évite a l'utilisateur de rechargé la page inutilement juste pour luis dire que le pseudo qu'il a choisi
+ pro c'est un point de vue effectivement ;)

Sinon effectivement il s'agit de la même requête que lors de l'inscription (par exemple sélect count(*) as Nb from gens where pseudo='le pseudo choisis'. Le résultat doit être zéro ou un.

Apresw effectivement sans le code on ne peux pas t'aider ça reste purement de la spéculation. (juste la validation du formulaire pas la peine de mettre le reste si ça n'en fait pas partis).

Si tu te lance dans Ajax retien juste deux principes
- tous ce que tu fais doit être réalisable sans js (donc quelque soit le navigateur tu te retrouve pas avec une merde sur l'écran t'en pêchant de faire quoique ce soit ;) )
- JS ne dispense des validations côté serveur ça vient donc en surplus, à coder après donc.
Aller tiens un 3ème mais plus général : ne jamais faire confiance à une donnée que tu n'a pas rentré toi même (à toute quoi :mrgreen: )

@+
Il en faut peu pour être heureux ......

Vince COTTA
Invité n'ayant pas de compte PHPfrance

15 mars 2012, 16:33

Merci une fois de plus. Si possible j'aimerais bien savoir "kézako AJAX" et "comment ca marche" :lol:.

Et finalement voici mon code qui "même une fois la variable $text changé ne marche pas: enfin... s'execute sans erreur mais n'insere rien dans ma BDD.
<?php
session_start();

if(empty($_SESSION['membre']))
{
header('Location: terre.php');
}

try
{
$bdd= new PDO('mysql:host=localhost;dbname=croizad', 'root', '') or die(print_r($bdd->errorInfo()));
$bdd->exec('SET NAMES utf8');
}

catch(Exeption $e){
die('Erreur:'.$e->getMessage());
}

if(!empty($_POST))
{
extract($_POST);
$valid = true;
}

else
{
$valid=false;
}

if($valid)
{
$req = $bdd->prepare('UPDATE membre SET manifeste=:manifeste) WHERE login= '.$_SESSION['membre'].'');
$req->execute(array('manifeste'=>$manifeste));
$req->closeCursor();
}
?>
<!DOCTYPE html>
<html>
	<head>
	    <meta charset="utf-8" />
		<link href="style.css" rel="stylesheet"/>
		<title> CROIZAD - Chacun sa croix</title>
		<?php include("bann.php"); ?>
		<?php include("menu.php"); ?>
	</head>
	<body>
		<div class="titre">Profil de <?php echo $_SESSION['membre'];?></div>
	<br/>
<section>
		<div id="contenu">
<?php include("menu-membre.php"); ?>
<br/>
<div class="profil2">
	<form class="form" action="manifeste.php" method="post">
	<fieldset>
	<legend>Manifeste</legend>
	<br/>
	<label for="manifeste">Ecrivez votre texte ici:</label>
	<textarea class="label" name="manifeste" id="manifeste" rows=10 cols=40></textarea><br/>
	<br/>
	<input class="submit" type="submit" value="Ecrire">
	<br/>
	</fieldset>
	</form>
	</div>
</div>
<br/>
<br/>
<?php 
$req = $bdd->prepare('SELECT * FROM membre WHERE login = '.$_SESSION['membre'].'')->fetchColumn();?>
<div class="manifeste">
<?php echo $req ?>
 <h3><?php if(isset($_SESSION['membre'])) {echo $_SESSION['membre'];} ?></h3>
 <br/>
 <p><?php if(isset($data['manifeste'])) {echo $_SESSION['manifeste'];} ?></p>
</div>
	<br/>
	</div>
	</section>
             <?php include("footer.php"); ?>
	</body>
</html>			 

Vince Cotta
Invité n'ayant pas de compte PHPfrance

16 mars 2012, 20:27

Bon je sais pas quoi vous dire j'ai du faire une erreur con mais laqelle??? Quoi qu'il en soit maintenant ca marche. :mrgreen: Herm bref je veux bien juste connaitre le code ajax si possible car je ne pratique pas du tout le js #-o Mais en tout cas merci pour vos précieux conseils.