MAJ base de donnée

Eléphant du PHP | 86 Messages

09 déc. 2005, 18:52

cela me donne :
UPDATE lao_membre SET pseudo = '3LpH4Ri0N', pass='123', email='[email protected]', jour='22', mois='12', annee='1986', prenom='xxx', nom='xxx', rue='xxx', num='', ville='XXX', code='9999', pays='FR' WHERE id = ''
Donc mon id n'est bien pas défini mais seulement j'ai bien :
  $_SESSION['id'] = $data['id'];
et dans la page profil quand je lui demande
<? echo $_SESSION['id']; ?>
il m'affiche bien 1

Donc je comprend pas...

ViPHP
pjl
ViPHP | 2119 Messages

09 déc. 2005, 19:18

Il n'y a pas de
session_start(); 
dans ta page.

De plus, comme ton id est un numérique, pas la peine de l'encadrer entre quote et c'est de là que vient le fait que tu n'ai pas de message d'erreur.
Là il fait une recherche ou id est vide.

Eléphant du PHP | 86 Messages

09 déc. 2005, 19:28

entre quote
???
Je ne vois pas ce qu'il faut enlever :"quote"??? :shock:
Merci

Eléphant du PHP | 86 Messages

10 déc. 2005, 19:37

??

Eléphant du PHP | 82 Messages

10 déc. 2005, 22:40

Je crois qu'il veut dire qu'il faut que tu mettes [id] et pas ['id'].
Sébastien.

ViPHP
pjl
ViPHP | 2119 Messages

11 déc. 2005, 00:13

je parlais de la requête.
Une valeur numérique n'a pas à être encadrée entre quote.

Eléphant du PHP | 82 Messages

11 déc. 2005, 00:27

j'ai donc encore perdu une occasion de me taire :oops: :cry:
Sébastien.

Eléphant du PHP | 86 Messages

11 déc. 2005, 14:53

voilà ce que cela donne dans la page d'authentification :
  $_SESSION['id'] = $data[id];
]
et dans la page qui modifie :
WHERE id = ".$_SESSION[id]."";
Mais cela ne change strictement rien, il ne me retourne aucun enregistrement dans "id" alors que lorsque dans la page profil je lui demande !
<? echo $_SESSION['id']; ?>
il m'affiche bien 1

Je ne comprend pas :( Quelqu'un peut m'expliquer ce que je ne dois pas voir depuis le début... :roll:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 déc. 2005, 15:05

On va reprendre tout ce qui t'as été donné en infos :wink:
Il n'y a pas de
session_start(); 
dans ta page.
Il faut mettre un session_start() dans la page de modification ! est-ce fait ?
De plus, comme ton id est un numérique, pas la peine de l'encadrer entre quote et c'est de là que vient le fait que tu n'ai pas de message d'erreur.
Là il fait une recherche ou id est vide.
il s'agisait donc de la requete et non de la variable de session:
$sql = "UPDATE lao_membre SET pseudo = '".$pseudo."', pass='".$pass."', email='".$email."', jour='".$jour."', mois='".$mois."',
annee='".$annee."', prenom='".$prenom."', nom='".$nom."', rue='".$rue."',
num='".$num."', ville='".$ville."', code='".$code."', pays='".$pays."'
WHERE id = ".$_SESSION['id']; 
quote= '

ensuite est tu certaine de devoir mettre autant de données en session ? évite par exemple le passe en session :wink:
l'adresse n'est je pense pas indispensable non plus, a voir ce que tu veut en faire après.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 86 Messages

11 déc. 2005, 15:24

<?
session_start(); 
require ('config.php');

//Requête
$sql = "UPDATE lao_membre SET pseudo = '".$pseudo."', pass='".$pass."', email='".$email."', jour='".$jour."', mois='".$mois."', 
annee='".$annee."', prenom='".$prenom."', nom='".$nom."', rue='".$rue."', 
num='".$num."', ville='".$ville."', code='".$code."', pays='".$pays."' 
WHERE id = ".$_SESSION['id']; 

//Effectuer la requête
$req = mysql_query($sql) or die(mysql_error()); 

//on ferme la connexion
mysql_close();

//on redirige le visiteur sur la page d'accueil, là ou s'afficheront les messages
header('location: ../../index.php');
?>
Voilà le code de ma page de modification mais ca ne me donne toujours rien :(
Bref je suis complètement perdu

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 déc. 2005, 15:39

tjs pas de mesage d'erreur ? si tu affiche la requete générée avec les modifs est-ce que l'id manque toujours dans la clause WHERE ?

enleve "$req =" du code puis tu fait un test.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 86 Messages

11 déc. 2005, 15:59

UPDATE lao_membre SET pseudo = 'xxx', pass='999', email='[email protected]', jour='99', mois='99', annee='999', prenom='xxx', nom='XXXX', rue='xx xxxxx', num='', ville='XXXX', code='99999', pays='FR' WHERE id = 1
Ma requête est bonne maintenant.. Merci
Euh sinon j'ai un autre soucis :)
En fait ma page modifier.php (dont le code est ci dessus) ne récupère pas les données de modif.php, celle où j'entre mes infos dans le formulaire.
J'ai vérifé mais pas trouvé la cause de l'erreur; voici le fichier :

Code : Tout sélectionner

<table id="container" cellspacing="0" cellpadding="0"> <form action="_files/_db/modifier.php" name="form1" method="post" > <tr> <td class="titre"><strong>Cr&eacute;er un compte</strong></td> <td id="skyscraper">&nbsp;</td> </tr> <tr> <td class="content"><table width="100%" border="0" cellspacing="0" cellpadding="4" class="address"> <tr> <td class="col1">Ton id : </td> <td><? echo $_SESSION['id']; ?></td> </tr> <tr> <td class="col1">Choisis ton <acronym title="Ce nom que tu utiliseras sur le site, tu le choisis enti&egrave;rement seul">Pseudo </acronym>:</td> <td><input name="pseudo" type="text" class="field" id="pseudo" value="<? echo $_SESSION['pseudo']; ?>" maxlength="25" /></td> </tr> <tr> <td class="col1">Choisis ton mot de passe :</td> <td><input name="pass" type="password" class="field" id="pass" value="<? echo $_SESSION['pass']; ?>" maxlength="50" /></td> </tr> <tr> <td class="col1">Note ton <acronym title="Une adresse e-mail valable est obligatoire">adresse e-mail </acronym>:</td> <td><input name="email" type="text" class="field" id="email" value="<? echo $_SESSION['email']; ?>" maxlength="128" /></td> </tr> </table></td> <td id="skyscraper">&nbsp;</td> </tr> <tr> <td class="content">&nbsp;</td> <td id="skyscraper">&nbsp;</td> </tr> <tr> <td class="titre"><strong>Parle-nous un peu de toi</strong></td> <td id="skyscraper">&nbsp;</td> </tr> <tr> <td class="content"><table width="100%" border="0" cellspacing="0" cellpadding="4" class="address"> <tr> <td class="col1">Date de naissance :</td> <td><input name="jour" type="text" class="fieldnr" id="jour" value="<? echo $_SESSION['jour']; ?>" size="2" maxlength="2" /> / <input name="mois" type="text" class="fieldnr" id="mois" value="<? echo $_SESSION['mois']; ?>" size="2" maxlength="2" /> / <input name="annee" type="text" class="fieldnr" id="annee" value="<? echo $_SESSION['annee']; ?>" size="2" maxlength="4" /> (dd/mm/yyyy)</td> </tr> <tr> <td class="col1">Pr&eacute;nom :</td> <td><input name="prenom" type="text" class="field" id="prenom" value="<? echo $_SESSION['prenom']; ?>" maxlength="128" /></td> </tr> <tr> <td class="col1">Nom :</td> <td>&nbsp;</td> </tr> <tr> <td class="col1">Rue :</td> <td><input name="rue" type="text" class="fieldstreet" id="rue" value="<? echo $_SESSION['rue']; ?>" maxlength="128" /> &nbsp;&nbsp;N&deg;:&nbsp;&nbsp; <input name="num" type="text" class="fieldnr" id="num" value="<? echo $_SESSION['num']; ?>" maxlength="15" /></td> </tr> <tr> <td class="col1">Commune :</td> <td><input name="ville" type="text" class="fieldcity" id="ville" value="<? echo $_SESSION['ville']; ?>" maxlength="128" /> &nbsp;Code :&nbsp;&nbsp; <input name="code2" type="text" class="fieldpost" id="code2" value="<? echo $_SESSION['code']; ?>" maxlength="8" /></td> </tr> <tr> <td class="col1">Pays :</td> <td><select name="select" id="select"> <option value="AF">Afghanistan</option> [... Supprimé ...] <option value="ZW">Zimbabwe</option> </select> </td> </tr> </table></td> <td id="skyscraper">&nbsp;</td> </tr> <tr> <td class="content">&nbsp;</td> <td id="skyscraper">&nbsp;</td> </tr> <tr> <td class="content">&nbsp;</td> <td id="skyscraper">&nbsp;</td> </tr> <tr> <td class="content"><div align="center"> <input name="enreg" type="submit" id="enreg" value="Valider" /> </div></td> </form> <td id="skyscraper"> </td> </tr> </table> </html>
J'ai pourant vérifé... :(

Je sais que je devrais pas balader les données confidentielles dans la session, je ferais des requêtes par la suite (je prévois la remarque :p)...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 déc. 2005, 16:23

UPDATE lao_membre SET pseudo = 'xxx', pass='999', email='[email protected]', jour='99', mois='99', annee='999', prenom='xxx', nom='XXXX', rue='xx xxxxx', num='', ville='XXXX', code='99999', pays='FR' WHERE id = 1
En fait ma page modifier.php (dont le code est ci dessus) ne récupère pas les données de modif.php,
Hmm, je comprend pas les variables sont bien remplies dans la requete ! :-k

je pensais que tu n'avais pas inclus le code de récupération des variables POST:
$pseudo= isset($_POST['pseudo']) ? $_POST['pseudo'] : "";
fait en autant pour les autres variables, pour infos il s'agit ici d'un test avec l'opérateur ternaire

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 86 Messages

11 déc. 2005, 16:58

J'ai rajouté ce que tu m'a donné, de plus j'ai compris :p
Ca roule, nikel, merci à tous ceux qui ont pris le temps de réfléchir à mon problème...
A très bientot (surement) ^^