nolog Posté 25 Janvier 2006 Posté 25 Janvier 2006 Bonjour a tous. Voila mon probleme: j'ai un tableau dynamique toto1 activitée adresse email modifier . . . quand un utlisateur clique sur le champ modifier il arrive sur une page d'identification je passe son id par url comme ca des que son nom et pass sont correstes je lui importe ses donées pour qu'il les modifie mais voila des que saisi le nom &pass j'arrive bien sur ses données mais dans la base les pass s'effacent!!! sauriez vous pourquoi?
NorSeb Posté 25 Janvier 2006 Posté 25 Janvier 2006 Bonjour, quand un utlisateur clique sur le champ modifier il arrive sur une page d'identification je passe son id par url comme ca des que son nom et pass sont correstes je lui importe ses donées pour qu'il les modifie mais voila des que saisi le nom &pass j'arrive bien sur ses données mais dans la base les pass s'effacent!!! sauriez vous pourquoi? <{POST_SNAPBACK}> Certainement parce que tu vas trop vite en besogne, comme semble le démontrer cette phrase passablement lisible... Essaye de prendre un peu plus de temps pour écrire, ici ou dans tes programmes Par ailleurs, tu peux aussi nous poster le code que tu utilise, c'est plus facile pour établir un diagnostic.
nolog Posté 25 Janvier 2006 Auteur Posté 25 Janvier 2006 Desolé pour la qualité du post. voici un bout du code, de la page ident_toto.php: <?php$var1_Recordset1 = "0";if (isset($HTTP_POST_VARS['nom'])) { $var1_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['nom'] : addslashes($HTTP_POST_VARS['nom']);}$var2_Recordset1 = "0";if (isset($HTTP_POST_VARS['pass'])) { $var2_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['pass'] : addslashes($HTTP_POST_VARS['pass']);}mysql_select_db($database_cpage, $cpage);$query_Recordset1 = sprintf("SELECT * FROM groupes WHERE nom='%s' AND pass='%s'", $var1_Recordset1,$var2_Recordset1);$Recordset1 = mysql_query($query_Recordset1, $cpage) or die(mysql_error());$row_Recordset1 = mysql_fetch_assoc($Recordset1);$totalRows_Recordset1 = mysql_num_rows($Recordset1);?>
nolog Posté 25 Janvier 2006 Auteur Posté 25 Janvier 2006 J'ai dû mal m y prendre qlque part, mais dès que je saisi un nom et un mot de passe, correspondant a un utilisateur qui souhaite modifier ses données. j'arrive bien a la page "modif" tout ce passe bien sauf que dans ma base le mot de passe saisi disparait !!! si t'as une idée elle sera la bien venue.
NorSeb Posté 25 Janvier 2006 Posté 25 Janvier 2006 Dans ce cas montre nous le code de la page de modification
nolog Posté 25 Janvier 2006 Auteur Posté 25 Janvier 2006 Voila: <?phpfunction GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue;}$editFormAction = $_SERVER['PHP_SELF'];if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);}if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form2")) { $updateSQL = sprintf("UPDATE groupes SET nom=%s, activite=%s, descriptif=%s, creation=%s, photo=%s, pass=%s WHERE idgroupe=%s", GetSQLValueString($_POST['nom'], "text"), GetSQLValueString($_POST['activite'], "text"), GetSQLValueString($_POST['descriptif'], "text"), GetSQLValueString($_POST['creation'], "date"), GetSQLValueString($_POST['photo'], "text"), GetSQLValueString($_POST['pass'], "text"), GetSQLValueString($_POST['idgroupe'], "int")); mysql_select_db($database_cpage, $cpage); $Result1 = mysql_query($updateSQL, $cpage) or die(mysql_error()); $updateGoTo = "groupes.php"; if (isset($_SERVER['QUERY_STRING'])) { $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?"; $updateGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $updateGoTo));}$var1_rsmodifgroupe = "rock";if (isset($HTTP_POST_VARS['nom'])) { $var1_rsmodifgroupe = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['nom'] : addslashes($HTTP_POST_VARS['nom']);}$var2_rsmodifgroupe = "azaz";if (isset($HTTP_POST_VARS['pass'])) { $var2_rsmodifgroupe = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['pass'] : addslashes($HTTP_POST_VARS['pass']);}mysql_select_db($database_cpage, $cpage);$query_rsmodifgroupe = sprintf("SELECT * FROM groupes WHERE nom='%s' AND pass='%s'", $var1_rsmodifgroupe,$var2_rsmodifgroupe);$rsmodifgroupe = mysql_query($query_rsmodifgroupe, $cpage) or die(mysql_error());$row_rsmodifgroupe = mysql_fetch_assoc($rsmodifgroupe);$totalRows_rsmodifgroupe = mysql_num_rows($rsmodifgroupe);?>
NorSeb Posté 25 Janvier 2006 Posté 25 Janvier 2006 Tu dis que tu fais passer le mot de passe dans l'url c'est ca ? C'est normal qu'il "disparaisse" de ta base de données... La requète est construite de sorte que la mise à jour de l'utilisateur soit effectuée à partir des données d'un formulaire ($HTTP_POST_VARS) et non pas avec les données issue de l'url ($HTTP_GET_VARS). Juste une remarque : il est dangeureux de passer ce type d'information par l'url ! C'est ce qu'il y a de plus facile à récupérer pour les petits malins...
nolog Posté 25 Janvier 2006 Auteur Posté 25 Janvier 2006 Tu as raison, mon idée de depart était de faire passer juste l'id de l'utilisateur par url d'une page à l'autre et dans chaque page faire un jeu d'enregistrement approprié .C'est bon ca tu crois!? sinon j'ai trouvé mon erreur en fait comme tu dis via mon formulaire je fesais un update de ma base , et le champ passe prenais par erreur une valeur texte. en tout cas merci pour ton aide.
Kalt Posté 25 Janvier 2006 Posté 25 Janvier 2006 Tu devrais passer ton id utilisateur par un cookie, comme ça tu n'as pas à te soucier de le faire passer de page en page par les urls.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant