Fonction Php qui permet d'éditer un profil

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fonction Php qui permet d'éditer un profil

Re: Fonction Php qui permet d'éditer un profil

par @rthur » 05 juin 2019, 18:10

Bonjour,

Il faut impérativement que tu regardes dans les logs PHP et MySQL/MariaDB pour voir les messages d'erreur, ça va grandement t'aider pour débuguer :D

Re: Fonction Php qui permet d'éditer un profil

par Saian » 05 juin 2019, 17:41

Tu devrais désactiver le header('Location: profil.php'); le temps de voir les echo qui ressortent. Ca t'aidera à comprendre par où ça passe et où ça ne passe pas.

Re: Fonction Php qui permet d'éditer un profil

par Athenos » 05 juin 2019, 17:36

J'ai testé ce que tu m'as donné ( je me permet de te tutoyer ), mais toujours aucun message d'erreur, et rien n'est update, ça réinitialise juste la page quand je clique sur mon bouton

Re: Fonction Php qui permet d'éditer un profil

par Saian » 05 juin 2019, 17:31

T'as bien une erreur alors, type erreur 500.

Essaie de mettre ça au début de ton script, avec de la chance le message d'erreur s'affichera et ça pourra t'aider à comprendre.
ini_set('display_errors', 'On');
error_reporting(E_ALL);

Re: Fonction Php qui permet d'éditer un profil

par Athenos » 05 juin 2019, 17:21

Salut Saian !
Quand je fais par exemple mes echo :
echo $_SESSION['Pseudo'];
echo $_SESSION['id'];
echo $_SESSION['E_Mail'];
j'ai bien les données qui sont affiché, mais je n'ai aucun message d'erreur
*Update : plus de message d'erreur, mais rien ne se passe

Re: Fonction Php qui permet d'éditer un profil

par Saian » 05 juin 2019, 16:45

Salut Athenos, tu as un echo qui s'affiche ? un message d'erreur ? tu es sûr que ça passe bien sur ta requête d'update ? tu es sûr que la requête ne fait pas d'erreur ?

PDOStatement::execute retourne false en cas d'erreur mais tu ne le testes nul part.
https://www.php.net/manual/fr/pdostatement.execute.php

Et tu peux récupérer l'erreur avec PDO::errorInfo s'il c'est en erreur.
https://www.php.net/manual/fr/pdo.errorinfo.php

Fonction Php qui permet d'éditer un profil

par Athenos » 05 juin 2019, 14:59

Bonjour à tous !

Je viens à vous car j'ai un problème que je n'arrive a résoudre.

Mon code a pour but de changer une Image, pseudo, email, mdp dans la base de donnée d'un utilisateur pour en mettre une nouvelle ( éditer son profil en gros), cependant rien ne se passe, et je n'arrive pas à comprendre pourquoi

Je bosse dessus depuis Lundi et je n'arrive absolument pas à trouver pourquoi cela ne marche pas.

Merci de votre aide
 
<?php
try {
    $PARAM_hote = 'localhost'; // le chemin vers le serveur
    $PARAM_port = '3306';
    $PARAM_nom_bd = 'projet'; // le nom de votre base de données
    $PARAM_utilisateur = ''; // nom d'utilisateur pour se connecter
    $PARAM_mot_passe = ''; // mot de passe de l'utilisateur pour se connecter
    $dsn = 'mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd;
//var_dump($dsn);
    $connexion = new PDO($dsn, $PARAM_utilisateur, $PARAM_mot_passe);
    $connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

} catch (Exception $e) {
    echo 'Erreur : ' . $e->getMessage() . '<br />';
    echo 'N° : ' . $e->getCode();
}

session_start();

echo($_SESSION['Id_Utilisateur']);
echo($_SESSION['Pseudo']);
echo($_SESSION['Mdp']);


if (isset($_SESSION['Id_Utilisateur'])) {
    $requser = $connexion->prepare("SELECT * FROM utilisateur WHERE Id_Utilisateur = ?");
    $requser->execute(array($_SESSION['Id_Utilisateur']));
    $user = $requser->fetch();
    if (isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['Pseudo']) {
        $newpseudo = htmlspecialchars($_POST['newpseudo']);
        $insertpseudo = $connexion->prepare("UPDATE utilisateur SET Pseudo = ? WHERE Id_Utilisateur = ?");
        $insertpseudo->execute(array($newpseudo, $_SESSION['Id_Utilisateur']));
        header('Location: profil.php');
        echo('ça marche');
    }
    if (isset($_POST['newmail']) AND !empty($_POST['newmail']) AND $_POST['newmail'] != $user['E_Mail']) {
        $newmail = htmlspecialchars($_POST['newmail']);
        $insertmail = $connexion->prepare("UPDATE utilisateur SET E_Mail = ? WHERE Id_Utilisateur = ?");
        $insertmail->execute(array($newmail, $_SESSION['Id_Utilisateur']));
        echo('ça marche');
    }
    if (isset($_SESSION['Id_Utilisateur'])) {
        $requser = $connexion->prepare("SELECT * FROM utilisateur WHERE Id_Utilisateur = ?");
        $requser->execute(array($_SESSION['Id_Utilisateur']));
        echo($_SESSION['Id_Utilisateur']);
        $user = $requser->fetch();
        if (isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['Pseudo']) {
            $newpseudo = ($_POST['newpseudo']);
            $insertpseudo = $connexion->prepare("UPDATE utilisateur SET Pseudo = ? WHERE Id_Utilisateur = ?");
            $insertpseudo->execute(array($newpseudo, $_SESSION['Id_Utilisateur']));
            echo('pseudo changé');
        }
        if (isset($_POST['newmail']) AND !empty($_POST['newmail']) AND $_POST['newmail'] != $user['E_Mail']) {
            $newmail = ($_POST['newmail']);
            $insertmail = $connexion->prepare("UPDATE utilisateur SET E_Mail = ? WHERE Id_Utilisateur = ?");
            $insertmail->execute(array($newmail, $_SESSION['Id_Utilisateur']));
            echo('mail changé');
        }
        if (isset($_POST['newmdp1']) AND !empty($_POST['newmdp1']) AND isset($_POST['newmdp2']) AND !empty($_POST['newmdp2'])) {
            $mdp1 = ($_POST['newmdp1']);
            $mdp2 = ($_POST['newmdp2']);
            if ($mdp1 == $mdp2) {
                $insertmdp = $connexion->prepare("UPDATE utilisateur SET Mdp = ? WHERE Id_Utilisateur = ?");
                $insertmdp->execute(array($mdp1, $_SESSION['Id_Utilisateur']));
                echo('mdp changé');
            } else {
                $msg = "Vos deux mdp ne correspondent pas !";
            }
        } else {
            echo('erreur2');
        }
    } else {
        echo('erreur1');
    }
}


?>
<div class="limiter">
    <div class="container-login">

        <div class="wrap">

            <div class="bouton-retour">
                <a href="#home" class="retour">
                    <i class="fas fa-arrow-left"></i>
                </a>
            </div>

            <h2>Editer mon profil</h2>


            <form id="form" action="" method="post" enctype="multipart/form-data">

                <div class="custom-file">
                    <label
                            class="custom-file-label"
                            for="imgUtil"
                    >Choisir une image...</label>
                    <div class="img-utilisateur inscri">
                        <img src=""
                             id="previewImage"
                             class="img-responsive imgArtiste"
                             alt="Nouvelle photo de profil"
                             width="160px"
                        />
                    </div>
                    <input
                            type="file"
                            class="custom-file-input"
                            id="imgUtil"
                            accept="image/png, image/jpeg, image/gif"
                    >
                </div>

                <div class="wrap-input validate-input" data-validate="Pseudo">
                    <input class="input" type="text" name="newpseudo" id="newpseudo">
                    <span class="focus-input" data-placeholder="Pseudo"></span>
                </div>

                <div class="wrap-input validate-input" data-validate="Enter password">
						<span class="btn-show-pass">
							<i class="zmdi zmdi-eye"></i>
						</span>
                    <input class="input" type="text" name="newmail" id="newmail">
                    <span class="focus-input" data-placeholder="Mail"></span>
                </div>


                <div class="wrap-input validate-input" data-validate="Enter password">
						<span class="btn-show-pass">
							<i class="zmdi zmdi-eye"></i>
						</span>
                    <input class="input" type="password" name="newmdp1" id="newmdp1">
                    <span class="focus-input" data-placeholder="Mot de passe"></span>
                </div>

                <div class="wrap-input validate-input" data-validate="Enter password">
						<span class="btn-show-pass">
							<i class="zmdi zmdi-eye"></i>
						</span>
                    <input class="input" type="password" name="newmdp2" id="newmdp2">
                    <span class="focus-input" data-placeholder="Confirmation du mot de passe"></span>
                </div>


                <input type="submit" value="Mettre à jour mon profil !">
                       
        </div>
        </form>

    </div>
</div>
</div>