comment permettre aux utilisateurs connecté à mettre à JOUR / MODIFIER leurs paramètres de profil/information

Question à portée de main:

Comment puis-je créer le code php pour permettre aux utilisateurs qui sont connectés sur mon site modifier/mettre à jour leurs paramètres de profil/informations?

J'ai 1 partie fonctionne correctement pour les utilisateurs à modifier leur mot de passe, cependant, n'ont aucune idée par où commencer quand il s'agit de permettre à des utilisateurs qui sont connectés à modifier/mettre à jour leurs autres paramètres tels que:

(1) surnom,
(2) pays,
(3) date de naissance,
(4) sexe,
(5) devise et
(6) bio


Je vais vous donner le php et le code html ci-dessous que j'ai c'est de travailler pour le changement de mot de passe, mais je sais que j'ai besoin de plus pour permettre aux utilisateurs de modifier/modifier/mettre à jour leurs informations. J'ai essayé d'utiliser ce qui est ci-dessous comme référence pour créer le code php pour les autres informations, mais il ne fonctionne pas donc je n'ai aucune idée de par où commencer! Toute aide sera très appréciée...

PHP code de référence:

if($_POST['submit']=='Change')
{
    $err = array();
    if(!$_POST['password1'] || !$_POST['passwordnew1'])
        $err[] = 'All the fields must be filled in!';
    if(!count($err))
    {
        $_POST['password1'] = mysql_real_escape_string($_POST['password1']);
        $_POST['passwordnew1'] = mysql_real_escape_string($_POST['passwordnew1']);
        $row = mysql_fetch_assoc(mysql_query("SELECT id,username FROM members WHERE username='{$_SESSION['username']}' AND pass='".md5($_POST['password1'])."'"));
        if($row['username'])
    {
        $querynewpass = "UPDATE members SET pass='".md5($_POST['passwordnew1'])."' WHERE username='{$_SESSION['username']}'";
        $result = mysql_query($querynewpass) or die(mysql_error());
        $_SESSION['msg']['passwordchange-success']='* You have successfully changed your password!';
    }
        else $err[]='Wrong password to start with!';
    }
    if($err)
    $_SESSION['msg']['passwordchange-err'] = implode('<br />',$err);
    header("Location: members.php?id=" . $_SESSION['username']);
    exit;
}

HTML code de référence:

<form action="" method="post"> 
    <label class="grey" for="password1">Current Password:</label>
    <input class="field" type="password" name="password1" id="password1" value="" size="23" />
    <label class="grey" for="password">New Password:</label>
    <input class="field" type="password" name="passwordnew1" id="passwordnew1" size="23" />
    <input type="submit" name="submit" value="Change" class="bt_register" style="margin-left: 382px;" />
      <div class="clear"></div>
    <?php
    if($_SESSION['msg']['passwordchange-err'])
    {
        echo '<div class="err">'.$_SESSION['msg']['passwordchange-err'].'</div>';
        unset($_SESSION['msg']['passwordchange-err']);
    }
    if($_SESSION['msg']['passwordchange-success'])
    {
        echo '<div class="success">'.$_SESSION['msg']['passwordchange-success'].'</div>';
        unset($_SESSION['msg']['passwordchange-success']);
    }
    ?>
</form>

Alors, comment aurais-je créer le code php pour faire ce travail pour que les utilisateurs soient en mesure de modifier/mettre à jour leurs propres paramètres de profil/informations à partir de la liste numérique que j'ai fournis ci-dessus (1-6)?

Et je sais utiliser mysqli/pdo est une meilleure alternative à l'utilisation, mais je n'ai malheureusement besoin d'utiliser l'ancien obsolète mysql_* des trucs pour ce projet en ce moment...

Si vous avez besoin de plus d'info, laissez-moi savoir 😉

MODIFIER:
Question Supplémentaire,

Je suppose aussi que j'avais besoin de créer des variables pour chaque colonne, tels que:

$pseudo = $_POST['pseudo'];

$pays = $_POST['pays'];

etc...ou est-ce pas exact?

RE-EDIT:

Serait quelque chose comme cela sera applicable?

$id = $_SESSION['id'];
if ($_POST['country']) {
    $country = $_POST['country'];
    $nickname = $_POST['nickname'];
    $DOB = $_POST['DOB'];
    $gender = $_POST['gender'];
    $motto = $_POST['motto'];
    $bio = $_POST['bio'];
    $sql = mysql_query("UPDATE members SET country='$country', nickname='$nickname', DOB='$DOB', gender='$gender', motto='$motto', bio='$bio' WHERE id='$id'"); 

exit;
}

$sql = mysql_query("SELECT * FROM members WHERE id='$id' LIMIT 1");
while($row = mysql_fetch_array($sql)){
$country = $row["country"];
$nickname = $row["nickname"];
$DOB = $row["DOB"];
$gender = $row["gender"];
$motto = $row["motto"];
$bio = $row["bio"];
}

Ou suis-je loin de la base?

  • ces questions de la vôtre sont beaucoup trop large.
  • "malheureusement, ont besoin d'utiliser l'ancien obsolète mysql_* des trucs pour ce projet en ce moment" signifie que vous êtes coincé avec un projet de l'héritage?
  • si par le projet de l'héritage de vous dire en utilisant les hors-daté mysql choses, puis, malheureusement, oui...
InformationsquelleAutor Michael | 2013-08-20