IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire et base de données


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 70
    Points : 54
    Points
    54
    Par défaut Formulaire et base de données
    Bonjour chers amis développeurs,

    il n'existe rien de plus torturant que la programmation, depuis hier nuit je n'arrive pas à faire fonctionner un script php qui pourtant fonctionne sous un autre projet web sans trop tarder je vous post le script en question afin de trouver une solution et aller de l'avant.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    error_reporting( ~E_NOTICE ); // avoid notice
    require_once("dbconfig.php");
     
    if(isset($_POST['btnsave'])) 
     
        {    
     
        $avatar = rand(1000,100000)."-".$_FILES['avatar']['name'];
        $avatar_loc = $_FILES['avatar']['tmp_name'];
        $avatar_size = $_FILES['avatar']['size'];
        $folder="../zkUpload/";
     
        // new file size in KB
        $new_size = $avatar_size/1024;  
        // new file size in KB
     
        // make file name in lower case
        $new_file_name = strtolower($avatar);
        // make file name in lower case
     
        $final_avatar=str_replace(' ','-',$new_file_name);
     
        if(move_uploaded_file($avatar_loc,$folder.$final_avatar))
        {
     
        if ($avatar) {
    		$req = $db->prepare('INSERT INTO artistes(artiste_name,manager,music_genre,music_genre,phone,phone2,email,password, avatar,signup_date) VALUES(:artiste_name, :manager, :music_genre, :phone, :phone2, :email, :password, :avatar, :signup_date)');
     
    		$req>execute(array(
                'artiste_name' => $_POST['artiste_name'],
                'manager' => $_POST['manager'],
                'music_genre' => $_POST['music_genre'],
                'phone' => $_POST['phone'],
                'phone2' => $_POST['phone2'],
                'email' => $_POST['email'],
                'password' => $_POST['password'],
                'avatar' => $avatar,
                'signup_date' => $_POST['signup_date'],
            ));
     
            header("Location:index.php?inscription reussie");
        } else {
    // throw error
        }
    }
    ?>
     
    <?php
    	}
    ?>

    Formulaire HTML

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    <html>
    <body>
     
    <div id="signup-box" class="signup-box widget-box no-border">
    									<div class="widget-body">
    										<div class="widget-main">
    											<h4 class="header green lighter bigger">
    												<i class="ace-icon fa fa-users blue"></i>
    												Nouvelle inscription
    											</h4>
     
    											<div class="space-6"></div>
    											<p> Veuillez remplir tous les champs: </p>
     
    											<form action="new_register.php" method="post" enctype="multipart/form-data">
    												<fieldset>
    													<label class="block clearfix">
    														<span class="block input-icon input-icon-right">
    															<input type="text" class="form-control" placeholder="Nom de l'artiste" required="" name="artiste_name" />
    															<i class="ace-icon fa fa-user"></i>
    														</span>
    													</label>
     
    													<label class="block clearfix">
    														<span class="block input-icon input-icon-right">
    															<input type="text" class="form-control" placeholder="Nom du manager" required="" name="manager" />
    															<i class="ace-icon fa fa-user"></i>
    														</span>
    													</label>
     
    													<label class="block clearfix">
    														<span class="block input-icon input-icon-right">
    															<input type="file" class="form-control" name="avatar" required="" />
    															<!-- On limite le fichier à 200Ko -->
    															<input type="hidden" name="MAX_FILE_SIZE" value="200000" />
    															<i class="ace-icon fa fa-user"></i>
    														</span>
    													</label>
     
    													<label class="block clearfix">
    														<span class="block input-icon input-icon-right">
    															<select type="text" class="form-control" required="" name="music_genre" />
    															<option value=""></option>
    															<option value="Coupé-décalé">Coupé-décalé</option>
    															<option value="Rap-RnB">Rap-RnB</option>
    															<option value="Réligieux">Réligieux</option>
    															<option value="Youssoumba">Youssoumba</option>
    															<option value="Zouk">Zouk</option>
    															<option value="Zouglou">Zouglou</option>
    															<option value="Variété">Variété</option>
    														</select>
     
    														</span>
    													</label>
     
     
    													<label class="block clearfix">
    														<span class="block input-icon input-icon-right">
    															<input type="email" class="form-control" placeholder="Adresse email" required="" name="email" />
    															<i class="ace-icon fa fa-envelope"></i>
    														</span>
    													</label>
     
     
    													<label class="block clearfix">
    														<span class="block input-icon input-icon-right">
    															<input type="password" class="form-control" placeholder="Mot de passe" required="" name="password" />
    															<i class="ace-icon fa fa-lock"></i>
    														</span>
    													</label>
     
    													<label class="block clearfix">
    														<span class="block input-icon input-icon-right">
    															<input type="texte" class="form-control" placeholder="Téléphone 1" required="" name="phone" />
    															<i class="ace-icon fa fa-retweet"></i>
    														</span>
    													</label>
     
    													<label class="block clearfix">
    														<span class="block input-icon input-icon-right">
    															<input type="text" class="form-control" placeholder="Téléphone 2" required="" name="phone2" />
    															<i class="ace-icon fa fa-retweet"></i>
    														</span>
    													</label>
     
    													<input type="hidden" class="form-control" value="<?php echo Date ( " j /m/Y" ) ;?>"  />
     
    													<div class="space-24"></div>
     
    													<div class="clearfix">
    														<button type="reset" class="width-30 pull-left btn btn-sm">
    															<i class="ace-icon fa fa-refresh"></i>
    															<span class="bigger-110">Effacer</span>
    														</button>
     
    														<button type="submit" class="width-65 pull-right btn btn-sm btn-success" name="btnsave">
    															<span class="bigger-110">Enregistrer</span>
     
    															<i class="ace-icon fa fa-arrow-right icon-on-right"></i>
    														</button>
    													</div>
    												</fieldset>
    											</form>
    										</div>
    </body
    </html>

    Le fichier image est bien uploadé et présent dans le dossier de destination mais rien dans la base de donnée comme information, j' ai également testé d'autres script mais rien à se demander si mon serveur local wamp ne me joue pas des tour. Un capture faite de l'erreur en question ci-dessous:
    Images attachées Images attachées  

  2. #2
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,
    On doit avoir ->execute au lieu >execute à la ligne 29
    Le bienfait n'est jamais perdu

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    il manque le corps de la flêche ->
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    merci les gars je n'avais pas vu cela, sûrement la fatigue mais il y a deux autres messages d'erreur qui affichent en rapport avec cette linge 41, je ne vois pas trop ou ça coince
    Images attachées Images attachées   

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as 2 fois "music_genre" dans ta requête.
    Tout ça c'est juste de le relecture de code, tu pourrais le faire toi même.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Tu as 2 fois "music_genre" dans ta requête.
    Tout ça c'est juste de le relecture de code, tu pourrais le faire toi même.
    Merci Sabotage, au fait cette répétition je l'ai déjà corrigé avant d'envoyer le post précédent et donc je ne pense pas que l'erreur vienne de là.

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Voici comment monter du SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $fields = ['artiste_name', 'manager', 'music_genre', 'phone', 'phone2', 'email', 'password', 'signup_date'];
    $values = [];
    foreach ($fields as $f) {
            $values[":{$f}"] = $_POST[$f] ?? '';
    }
     
    $sql  = 'INSERT INTO artistes ('.implode(', ', $fields).') VALUES ('.implode(', ', array_keys($values)).')';
    $stmt = $db->prepare($sql);
    $exec = $stmt->execute($values);
    Au passage, il faut bien t'assurer que les différentes étapes se déroulent correctement. Dans le cas contraire il faut intercepter les problèmes et les gérer. Cf. Doc PDO
    Dans ton code tu présumes (abusivement) que tu n'auras jamais d'erreurs à l'exécution !

  8. #8
    Membre régulier Avatar de monaka
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 64
    Points : 107
    Points
    107
    Par défaut
    bon bon bon,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" class="form-control" value="<?php echo Date ( " j /m/Y" ) ;?>" name="signup_date"  />
    il manque le name

    et j'ajoutes si tu veux récupérer la date à laquelle l’utilisateur fait sa demande,je supposes puisque tu caches le champ

    il serait préférable d’utiliser CURRENT_DATE()
    La rigueur vient toujours à bout de l'obstacle.
    Les détails font la perfection, et la perfection n'est pas un détail.

    J'avais une charrette tirée par des chevaux, mais j'ai acheté une voiture avec un moteur.
    Est-ce que je dois tout le temps rouler avec le moteur, ou est-ce que je peux atteler mes chevaux à la voiture de temps en temps ?

Discussions similaires

  1. [MySQL] Insertion données formulaire dans base de données
    Par westlaux dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/06/2007, 20h17
  2. formulaire / php / base de données
    Par amandine_drooplette dans le forum Langage
    Réponses: 6
    Dernier message: 07/06/2007, 13h14
  3. Formulaire et base de données
    Par Néo{le pélo du 974} dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2007, 12h04
  4. Formulaire et base de données
    Par Marye dans le forum IHM
    Réponses: 4
    Dernier message: 08/02/2007, 22h07
  5. [Conception] Formulaire et base de donnée ?
    Par heldev dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/03/2006, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo