Bonjour,
Voilà j'aimerais faire une inscription en plusieurs étapes, en plusieurs pages.
PAGE 1 : register.php (celle ci fonctionne parfaitement)
PAGE 2 : register1.php (je souhaite inserer de nouvelles données sur le profil de l'utilisateur)
PAGE 3 : register2.php (je souhaiterais de nouveau inserer de nouvelles données sur le profil de l'utilisateur)

Quand j'applique mon code, ça modifie les données de tous les membres inscrit, hors que je souhaite que sa selectionne seulement l'utilisateur connectée sur son profil....
Je vous met le code ci dessous, sachant que de base j'avais fait un INSERT INTO, mais un membre ma rappelé sa fonction il y à quelques minutes, donc j'ai opter pour UPDATE, ce qui me semble selon mes petites connaissances la meilleurs des chose, mais au final, sa modifie tout...

<?php
require_once 'assets/inc/functions.php';
logged_only();

if(!empty($_POST)){

    $errors = array();
    require_once 'assets/inc/db.php';

    if(empty($_POST['number'])){
        $errors['number'] = "Votre numéro de téléphone n'est pas valide.";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE number = ?');
        $req->execute([$_POST['number']]);
    }

    if(empty($_POST['city'])){
        $errors['city'] = "Votre ville n'est pas valide.";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE city = ?');
        $req->execute([$_POST['city']]);
    }

    if(empty($_POST['biography'])){
        $errors['biography'] = "Votre description n'est pas valide.";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE biography = ?');
        $req->execute([$_POST['biography']]);
    }

    if(empty($errors)){

    $req = $pdo->prepare(" UPDATE users SET number = ?, city = ?, biography = ?");
    $req->execute([$_POST['number'], $_POST['city'], $_POST['biography']]);
    header('Location: index.php');
    exit();
}

}
require_once 'assets/inc/header.php';
?>

Merci à vous

7 réponses


Ceets
Auteur
Réponse acceptée

J'ai enfin trouver !!
Voilà mon code :

<?php
require_once 'assets/inc/functions.php';
logged_only();

if(!empty($_POST)){

    $errors = array();
    require_once 'assets/inc/db.php';

    if(empty($_POST['number'])){
        $errors['number'] = "Votre numéro de téléphone n'est pas valide.";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE number = ?');
        $req->execute([$_POST['number']]);
    }

    if(empty($_POST['city'])){
        $errors['city'] = "Votre ville n'est pas valide.";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE city = ?');
        $req->execute([$_POST['city']]);
    }

    if(empty($errors)){

    $user_id = $_SESSION['auth']->id;
    $req = $pdo->prepare("UPDATE users SET number = ?, city = ? WHERE id = ?");
    $req->execute([$_POST['number'], $_POST['city'], $user_id]);
    header('Location: register2.php');
    exit();
}

}
require_once 'assets/inc/header.php';
?>

Il était temps que je trouve après deux heure de recherche !! Merci beaucoup à toi !!

Ceets
Auteur

Merci beaucoup pour ta réponse.
Cela ne fonctionne pas, sa ne met même plus a jours tout les utilisateurs

Ceets
Auteur

J'ai écrit ça :

$req = $pdo->prepare("UPDATE users SET number = ?, city = ?, biography = ? where id = ?");
    $req->execute([$_POST['number'], $_POST['city'], $_POST['biography'], $_POST['id']]);

Je me suis tromper ?

Ceets
Auteur

Sa m'affiche une page blanche...
Peut-être que je les mis au mauvaise endroit ?

    $req = $pdo->prepare("UPDATE users SET number = ?, city = ?, biography = ? where id = ?");
    $req->execute([$_POST['number'], $_POST['city'], $_POST['biography'], die(var_dump($_POST['id']]);
    header('Location: index.php');

Merci beaucoup en tout cas !

Ceets
Auteur

Merci beaucoup pour ta réponse !
Voilà mon code complet :
J'ai retirer "biography" pour le mettre dans une autre page, mais le code reste le même, je t'avoue ne pas avoir trop compris ce que tu ma dit.

<?php
require_once 'assets/inc/functions.php';
logged_only();

if(!empty($_POST)){

    $errors = array();
    require_once 'assets/inc/db.php';

    if(empty($_POST['number'])){
        $errors['number'] = "Votre numéro de téléphone n'est pas valide.";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE number = ?');
        $req->execute([$_POST['number']]);
    }

    if(empty($_POST['city'])){
        $errors['city'] = "Votre ville n'est pas valide.";
    } else {
        $req = $pdo->prepare('SELECT id FROM users WHERE city = ?');
        $req->execute([$_POST['city']]);
    }

    if(empty($errors)){

    $req = $pdo->prepare("UPDATE users SET number = ?, city = ?, where id = ?");
    $req->execute([$_POST['number'], $_POST['city'], $_POST['id']]);
    header('Location: register2.php');
    exit();
}

}
require_once 'assets/inc/header.php';
?>
<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Ceets - Étape 1</title>
        <?php require 'assets/inc/head.php' ?>
    </head>
    <body>

        <div class="giant-blog">
            <?php require 'assets/inc/menu.php' ?>
            <section class="breadcrumb_area">
                <div class="container">
                    <div class="row">
                        <div class="col-md-4 col-md-offset-4">
                            <div class="breadcrumb_inner_area">
                                <h2>Étape 1</h2>
                                <br>
                                <?php if(isset($_SESSION['flash'])): ?>
                                <?php foreach($_SESSION['flash'] as $type => $message): ?>
                                    <div class="alert alert-<?= $type; ?>">
                                        <center>
                                            <?= $message; ?>
                                        </center>
                                    </div>
                                <?php endforeach; ?>
                                <?php unset($_SESSION['flash']); ?>
                                <?php endif; ?>
                            </div>
                        </div>
                    </div>
                </div>
            </section>

            <section class="contact_field section_padding">
                <div class="container">
                    <div class="row">
                        <div class="col-md-4 col-sm-4">
                            <div class="map_hoverable_content">
                                <div class="map_hoverable_content_inner">
                                    <ul>
                                        <li><span>Vos avantages</span>
                                            <h6>
                                                Découvrez et publiez
                                                <span>Découvrez et publiez gratuitement sur Ceets.</span>
                                            </h6>
                                            <br>
                                            <h6>
                                                Espace d'échanges
                                                <span>Discutez avec les personnes que vous suivez.</span>
                                            </h6>
                                            <br>
                                            <h6>
                                                Cumulez des points
                                                <span>Cumulez des points pour débloquer des options supplémentaires en étant actif sur Ceets.</span>
                                            </h6>
                                        </li>
                                    </ul>
                                </div>
                            </div>
                        </div>
                        <div class="col-md-8 col-sm-8">
                            <div class="contact_title">
                                <h4>Étape 1 : Complétez vos informations</h4>
                            </div>
                            <div class="row">
                                <form method="post">
                                <div class="col-md-6">
                                    <div class="single_reply_box">
                                        <input type="text" name="number" placeholder="Quel-est votre numéro de téléphone ?">
                                    </div>
                                </div>
                                <div class="col-md-6">
                                    <div class="single_reply_box">
                                        <input type="text" name="city" placeholder="Où habiter-vous ?">
                                    </div>
                                </div>
                                <center><input class="business_btn" value="Continuer" type="submit">
                                </form>
                            </div>
                        </div>
                    </div>
                </div>
            </section>
            <?php require 'assets/inc/footer.php' ?>
        </div>
        <?php require 'assets/inc/script.php' ?>
    </body>
</html>
Ceets
Auteur

Tu pense que je peux enlever les "SELECT id" des trois post ?

Ceets
Auteur

Au niveau de "name" j'étais au courant ahah !
Oui l'utilisateur est connecté quand il arrive sur cette page, je récupère son id grace à la fonction legged_only si je ne te dit pas de betise.
Ducoup quel code introduire dans where id = ? et donc dans $_POST['id'] pour qu'il puissent récupérer l'id du membre pour ensuite ajouter ses informations ou les modifier ?
Merci beaucoup pour ta gentiellesse !