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

PHP & Base de données Discussion :

Etudier une mini Application toute faite en PHP - PDO


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut Etudier une mini Application toute faite en PHP - PDO
    Bien le Bonjour !
    J'aimerais disposer d'une mini application toute simple dont je pourrais copier/coller le code sur localhost (WampServer).
    Quoi faire? Voilà: après avoir ramé (sans résultat) avec du code PHP - MySQL pour faire fonctionner des formulaires, j'ai appris (ici) qu'il valait mieux passer en PDO.
    Ces derniers jours je les ai passés à tester tel code puis tel autre venant de différents auteurs mais JAMAIS j'ai réussi à écrire dans les DB créées au fur et à mesure des tests.
    Il se produit toujours quelque chose qui ne va pas !

    En pratique j'ai suivi les explications de tutos et de démos contenant des fichiers .php présumés écrire/lire dans leur DB spécifique, mais rien n'y fait.
    Sans être totalement nul avec adminMySql mais inexpert avec php (quoique méticuleux), y a pas moyen que ça marche.

    J'aimerais alors savoir si quelqu’un voudrait bien fournir un pack des codes d'une mini application dont je puisse étudier la syntaxe qui FONCTIONNE (relativement à l'écriture/ lecture dans sa db). Peu importe ce que l'application fait, je pourrais grâce à elle transposer, déduire et sortir de l'impasse où je suis.

    D'avance grand merci !

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut
    Bonjour, commence à faire quelque chose et en postant tes bouts de codes avec des codes d'erreurs y afférentes. Là on pourra mieux t'orienter.

    Cordialement

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par Ciccillo Voir le message
    ...après avoir ramé (sans résultat)
    ...mais JAMAIS j'ai réussi à écrire dans les DB...
    Il se produit toujours quelque chose qui ne va pas !
    ...mais rien n'y fait...
    1- Au lieu d'incriminer les divers scripts / tutos / ... que tu as testé, il faudrait peut-être te remettre en cause, et te dire que c'est peut-être (sûrement) toi qui ne fait pas ce qu'il faut, comme il faut...


    2- PDO :

  4. #4
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut
    Merci pour les comments/ suggestions. Me mettre en cause, je ne fais que ça et je n'incrimine ni les tutos ni les scripts. Toutefois, il arrive que le débutant est présumé savoir certaines "banalités" omises dans les explications mais qu'il ignore royalement, je parle pour moi. Les deux tutos repréposés dans le post je les ai travaillés plusieurs fois, sans résultat (d'où: le problème est chez moi). Je vais suivre la suggestion de poster les erreurs que je rencontre pour solliciter une aide ciblée. Merci.

  5. #5
    Invité
    Invité(e)
    Par défaut
    On ne peut rien pour toi si tu te contentes de dire : "ça ne marche pas".

    Montre-nous au minimum des exemples précis, et les messages d'erreur complets.

  6. #6
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut
    Bonjour ! vous avez bien raison ! Il faut que je montre où ça coince. Je me refère ici au tuto "Comprendre PDO".
    A l'étape IIIa, Etablir une connexion avec PDO, l'auteur donne ce code (sans le nommer...):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try {
        $strConnection = 'mysql:host=localhost;dbname=ma_base'; //Ligne 1
        $arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); //Ligne 2
        $pdo = new PDO($connStr, 'Utilisateur', 'Mot de passe', $arrExtraParam); //Ligne 3; Instancie la connexion
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//Ligne 4
    }
    catch(PDOException $e) {
        $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
        die($msg);
    }
    Je nommé ce code connexion.php. Voyant qu'il se refère à une db nommée "ma_base", je l'ai créée avec phpMyAdmin et elle est bien là dans WampServer, interlacement uft8_general_ci. Il n'y a pas de table, le tuto ne dit pas qu'il en faut une. La config de WampServer est par défaut 3.1.0 et 4.7.4 la version activée de phpMyAdmin.

    En localhost/pdo/connexion.php => je lance la page et j'ai cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "try { $strConnection = 'mysql:host=localhost;dbname=ma_base'; //Ligne 1 $arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); //Ligne 2 $pdo = new PDO($connStr, 'Utilisateur', 'Mot de passe', $arrExtraParam); //Ligne 3; Instancie la connexion $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//Ligne 4 } catch(PDOException $e) { $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage(); die($msg); }"
    Le message d'erreur reste le même selon que je laisse PDO::ERRMODE_EXCEPTION ou PDO::ERRMODE_WARNING.

    Bon, là je reviens à ce que j'écrivais hier, JE NE DOUTE PAS QUE C'EST MA FAUTE, mais il me semble que ce code est incomplet. Le tuto présume-t-il que je suis un peu plus compétent que ça (et ajouter ce qu'il manque) ou est-ce ma config qui est inappropriée? A noter que j'ai essayé plusieurs autres tutos. Il est arrivé que la connexion s'établisse sans pour autant jamais parvenir à aller jusqu'au bout avec succès. J'espère ne pas avoir été trop long. Merci de bien vouloir m'indiquer comment m'y prendre, quoi faire... héhé, j'attends...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    ça, ce n'est pas une "erreur"...

    Si ton écran affiche le code tel qu'il est écrit, c'est que le PHP n'est pas interprété !

    1- Ton fichier a bien l'extension .php ?

    2- Dans quel environnement fais-tu les tests ? (Wamp ? ... ?) OK : WampServer

    3- Si tu crées un fichier phpinfo.php, avec seulement :
    Ça dit quoi ?

    4- Quelle est l'URL dans la barre d'adresse ?


    N.B. Et TESTE avec CE TUTO (il est complet !) :

  8. #8
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut
    Merci! Bonjour, hà oui, n'est pas interprété (mais le fichier est bien nommé "connexion.php" sans les "". Par contre, si je tape ton code et enregistre phpinfo.php, j'ai des tables en couleur très détaillées de paramètres techniques. D'accord, je me penche sur l'autre tuto et je reviens. En attendant, encore merci.

    L'url dans la barre d'adresse est (pour infophp par exemple): http://localhost/pdo/phpinfo.php
    Pour connexion.php c'est bien sûr: http://localhost/pdo/connexion.php

  9. #9
    Invité
    Invité(e)
    Par défaut
    [EDIT] As-tu bien mis <?php au début du code de connexion.php ???

  10. #10
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut
    Oui, le dossier "pdo" contenant les fichiers de test sont dans le www de WampServer.
    Suite à ta question, la syntaxe de l'url http://localhost/pdo/phpinfo.php étant raccourcie par le navigateur, j'ai essayé avec le chemin complet, c'est-à-dire: http://localhost/wamp/www/pdo/phpinfo.php mais alors il ne trouve plus la page.

    phpinfo.php indique que la version du php c'est la 5.6.31, ce qui correspond à la version indiquée dans la fenêtre du menu Wamp.

    PS: j'avais loupé une partie de ta question, excuses. Non, y avait pas <?php pour commencer ni ?> pour finir. Je les ai ajoutés. En relançant l'url j'ai alors l'erreur suivante:

    Nom : erreurPDO.jpg
Affichages : 477
Taille : 36,9 Ko

    Nom : usersMa_Base.jpg
Affichages : 477
Taille : 25,7 Ko

  11. #11
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par Ciccillo Voir le message
    Oui, le dossier "pdo" contenant les fichiers de test sont dans le www de WampServer.
    Suite à ta question, la syntaxe de l'url http://localhost/pdo/phpinfo.php étant raccourcie par le navigateur, j'ai essayé avec le chemin complet, c'est-à-dire: http://localhost/wamp/www/pdo/phpinfo.php mais alors il ne trouve plus la page.
    Attention , l'url que tu vois dans le navigateur peut être totalement indépendante du chemin réel des fichiers sur le disque.
    C'est pourquoi l'url http://localhost/pdo/phpinfo.php fonctionne sans que tu vois le www. Le serveur web n'a en fait connaissance que de ce qui se trouve dans le dossier www , tout ce qui est ailleurs lui est inconnu.
    L'url http://localhost/wamp/www/pdo/phpinfo.php correspondrais en fait au chemin C:\wamp\www\www\pdo\phpinfo.php

    Citation Envoyé par Ciccillo Voir le message
    PS: j'avais loupé une partie de ta question, excuses. Non, y avait pas <?php pour commencer ni ?> pour finir. Je les ai ajoutés. En relançant l'url j'ai alors l'erreur suivante:
    Ca c'est la base de la base de PHP. Un script doit forcément commencer par <?php . La balise fermante est en revanche facultative (c'est même plutôt conseille de l'omettre). 99% des tutos que tu trouveras qui aborde des notions un tant soit peut avancée de PHP ne mettrons pas ces balises , on considère que l'utilisateur à le minimum de connaissance.

    Pour ton erreur c'est une erreur dans le script :

    La variable $connStr n'existe pas. Il faut utiliser $strConnection à la place.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Ciccillo Voir le message
    ...Non, y avait pas <?php pour commencer...
    C'est quand même le B-A-Ba, non ?

    Commence par CE TUTO :


  13. #13
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut
    Bien grand merci à tous les deux.

    • j'ai modifié le code de connexion (mis $strConnection à la place). L'actualisation donne un nouveau message d'erreur que je vais chercher à résoudre, en tous cas essayer (là j'ai pas encore essayé). ERREUR PDO dans C:\wamp\www\pdo\connexion.php L.5 : SQLSTATE[HY000] [1045] Acc�s refus� pour l'utilisateur: 'Utilisateur'@'@localhost' (mot de passe: OUI)

    • oui, oui, il y a un minimum mais, si je peux me permettre, en autodidacte, avant que ça ne marche une première fois, l'apprenti devrait pouvoir se fier au code qu'il copie. Vos remarques apportent, justement, le + à l'interactivité qui manque avec un tutoriel.

    • Merci pour le lien au tuto php. En fait je l'ai déjà percouru, étudié. Ma gaffe avec le manque du <?php démontre ce que je viens de dire, c'est-à-dire qu'un débutant tend à faire confiance à l'auteur de son tuto, ce dernier sachant la chose tellement évidente qu'il l'omet. Je vous reviens, merci.


    PS: j'aimerais ajouter (et vous l'imaginez bien), qu'après avoir pataugé toute la semaine, le tuto PHP me fait un tout autre effet ! Oui, il me faut repasser par là et combiner au plus vite avec les exercices de connexion qui en ce moment me créent des difficultés. Sincèrement, grand merci.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Ne pas savoir qu'on doit mettre <?php n'est pas une "erreur de débutant". C'est une négligence des bases.
    Ce qui te manque, ce sont les bases. Le B-A-Ba du PHP.

    DONC : au lieu de "parcourir" le tuto, FAIS les exercices proposés.

  15. #15
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut
    Voilà qui est clair, je vais m'y mettre!

  16. #16
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Citation Envoyé par Ciccillo Voir le message
    Bien grand merci à tous les deux.

    • j'ai modifié le code de connexion (mis $strConnection à la place). L'actualisation donne un nouveau message d'erreur que je vais chercher à résoudre, en tous cas essayer (là j'ai pas encore essayé). ERREUR PDO dans C:\wamp\www\pdo\connexion.php L.5 : SQLSTATE[HY000] [1045] Acc�s refus� pour l'utilisateur: 'Utilisateur'@'@localhost' (mot de passe: OUI)
    C'est les identifiants de connexion qui sont incorrects

    Cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo = new PDO($connStr, 'Utilisateur', 'Mot de passe', $arrExtraParam); //Ligne 3; Instancie la connexion
    Défini l'utilisateur "Utilisateur" et le mot de passe "Mot de passe". Si tu n'a pas modifier ces 2 valeurs c'est normal que ca ne fonctionne pas.
    Très souvent sous wamp l'utilisateur est root sans mot de passe. Donc la ligne devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo = new PDO($connStr, 'root', '', $arrExtraParam);
    Sauf si bien sur tu as changer les identifants pour autre chose.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  17. #17
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut
    Merci, j'ai modifié la ligne et voici le code de connexion.php :

    <?php
    try {
    $strConnection = 'mysql:host=localhost;dbname=ma_base'; //Ligne 1
    $arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); //Ligne 2
    $pdo = new PDO($connStr, 'root', '', $arrExtraParam); //Ligne 3; Instancie la connexion
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);//Ligne 4
    }
    catch(PDOException $e) {
    $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
    die($msg);
    }

    C'est bien juste que j'ai gardé les accès par défaut de Wamp, càd: root sans pw.
    Dans les users de ma_base j'ai aussi supprimé un user de test (inutile) de sorte que maintenant j'ai juste ceci:
    Nom : usersMa_Base.jpg
Affichages : 467
Taille : 22,7 Ko

    En actualisant avec la ligne modifiée j'ai toutefois la réponse suivante:
    Nom : erreurPDO.jpg
Affichages : 476
Taille : 51,0 Ko

    Désolé !
    Mais en fait, quelle réponse devrais-je avoir?
    Dans la db m_base il y a juste une table qui n'a rien voir:
    Nom : ma_base.jpg
Affichages : 508
Taille : 105,9 Ko

  18. #18
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut
    Bonsoir, fait simple Ciccillo. Voilà quelques codes :

    Code sql de la base de données (nom de la BD: didacticiel ) :
    Code SQL : 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
    107
    108
    109
    110
    111
    112
    113
     
    -- phpMyAdmin SQL Dump
    -- version 4.1.14
    -- http://www.phpmyadmin.net
    --
    -- Client :  127.0.0.1
    -- Généré le :  Ven 03 Août 2018 à 17:59
    -- Version du serveur :  5.6.17
    -- Version de PHP :  5.5.12
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
     
    --
    -- Base de données :  `didacticiel`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `admin`
    --
     
    CREATE TABLE IF NOT EXISTS `admin` (
      `id_pseudo` int(100) NOT NULL AUTO_INCREMENT,
      `nom` text NOT NULL,
      `email` varchar(255) NOT NULL,
      `numero` text NOT NULL,
      `titre` varchar(300) NOT NULL,
      `pseudo` text NOT NULL,
      `password` varchar(255) NOT NULL,
      PRIMARY KEY (`id_pseudo`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
     
    --
    -- Contenu de la table `admin`
    --
     
    INSERT INTO `admin` (`id_pseudo`, `nom`, `email`, `numero`, `titre`, `pseudo`, `password`) VALUES
    (3, 'OVONO BENG Yvon Yves', 'ovono770@gmail.com', '237697993386', 'Administrateur', 'admin', '123456');
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `message`
    --
     
    CREATE TABLE IF NOT EXISTS `message` (
      `id_message` int(11) NOT NULL AUTO_INCREMENT,
      `Nom` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Mail` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Message` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Date` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`id_message`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
     
    --
    -- Contenu de la table `message`
    --
     
    INSERT INTO `message` (`id_message`, `Nom`, `Mail`, `Message`, `Date`) VALUES
    (1, 'ENGOLO Luc', '', 'popo', '0000-00-00 00:00:00'),
    (2, 'EMBOLO Bernadette', '', 'momo', '0000-00-00 00:00:00'),
    (3, 'BELLA', '', 'papa', '0000-00-00 00:00:00'),
    (4, 'ONGONO BERTRAND', '', 'moi', '0000-00-00 00:00:00'),
    (5, 'OVON Vendelin', '', 'poil', '0000-00-00 00:00:00'),
    (6, 'OVONO BENG', '', 'balla', '0000-00-00 00:00:00'),
    (7, 'BELLA', '', 'titi', '0000-00-00 00:00:00'),
    (8, 'ONGONO BERTRAND', '', 'popo', '0000-00-00 00:00:00'),
    (9, 'EKOBO', '', 'ovono ovovon', '0000-00-00 00:00:00'),
    (10, 'papapa', '', 'paomolfggg', '0000-00-00 00:00:00'),
    (11, 'tata', 'tata@yahoo.fr', 'tata', '0000-00-00 00:00:00');
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `utilisateur`
    --
     
    CREATE TABLE IF NOT EXISTS `utilisateur` (
      `id_utilisateur` int(11) NOT NULL AUTO_INCREMENT,
      `avatar` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Nom` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Prenom` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Sexe` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Nationalite` varchar(255) CHARACTER SET utf8 NOT NULL,
      `DateNaiss` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Lieu` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Email` varchar(255) CHARACTER SET utf8 NOT NULL,
      `Classe` varchar(255) CHARACTER SET utf8 NOT NULL,
      `NomUser` varchar(255) CHARACTER SET utf8 NOT NULL,
      `MotDePasse` varchar(255) CHARACTER SET utf8 NOT NULL,
      PRIMARY KEY (`id_utilisateur`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
     
    --
    -- Contenu de la table `utilisateur`
    --
     
    INSERT INTO `utilisateur` (`id_utilisateur`, `avatar`, `Nom`, `Prenom`, `Sexe`, `Nationalite`, `DateNaiss`, `Lieu`, `Email`, `Classe`, `NomUser`, `MotDePasse`) VALUES
    (1, 'images(53).jpeg', 'OVONO BENG', 'Yvon Yves Noel', '', 'Cameroun', '1990-12-25', 'Yaoundé', 'yves@gmail.com', '5eme', 'ovono', 'ovono'),
    (3, 'images(56).jpeg', 'EKOBO MFOMO', 'Annie Sandrine Yolande', 'Féminin', 'Gabon', '2018-07-02', 'Franceville', 'anni@gmail.com', '6eme', 'ekobo', 'ekobo'),
    (4, 'images(57).jpeg', 'NGA', 'Lucie', 'Féminin', 'Cameroun', '2018-07-03', 'Foulassi', 'lucie@yahoo.fr', '6eme', 'lucie', 'lucie');
     
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


    Code du fichier de connexion connexion.php
    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
     
    <?php
     
    define('DB_HOST', 'localhost');
    define('DB_NAME', 'didacticiel');
    define('DB_USERNAME', 'root');
    define('DB_PASSWORD', '');
     
    try{
     
    	$db = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USERNAME, DB_PASSWORD);
    	$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch(PDOException $e){
    	die('Erreur: '.$e->getMessage());
    }


    Code du formulaire inscription.php
    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
    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
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
     
     
    <!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">
        <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
        <meta name="description" content="La technologie en global">
        <meta name="author" content="Yvon Yves OVONO BENG">
    <script type="text/javascript" src="date_heure.js"></script>
     
     
        <title id="WEBSIT_NAME"> Inscription
     
     
      </title>
     
        <!-- Bootstrap core CSS -->
        <link href="../css/bootstrap.css" rel="stylesheet">
    	<link href="../css/font-awesome.min.css" rel="stylesheet" type="text/css">
    	<link rel="stylesheet" href="css/font-awesome/css/font-awesome.min.css">
        <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
        <link href="../../assets/css/ie10-viewport-bug-workaround.css" rel="stylesheet">
     
        <!-- Custom styles for this template -->
        <link href="css/customer.css" rel="stylesheet">
        <link rel="stylesheet" href="http://localhost/database/libs/font-awesome-4.7.0/css/font-awesome.min.css">
       <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script>
      <link rel="stylesheet" type="text/css" href="libs/alertifyjs/css/alertify.min.css">
        <link rel="stylesheet" type="text/css" href="libs/alertifyjs/css/themes/bootstrap.min.css">
        <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
        <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
    	<link rel="stylesheet" href="css/font-awesome/css/font-awesome.min.css">
     
     
     
        <link href="favicon.ico" rel="icon" type="image/jpg" style="border-radius: 0.5em;" />
      </head>
     
      <body style="background-image:url(../img/log.png);
                  background-repeat: no-repeat;
                  background-attachment: fixed;" class="login">
     
      <?php require'includes/functions.php';
      require('includes/_alert.php');
      require('includes/_flash.php');
     require('config/db.php');
     
       ?>
     
       <nav class="navbar navbar-inverse navbar-fixed-top">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              <a class="navbar-brand" href="index.php"><span class="fa fa-table" aria-hidden="true"> Menu</a></span>
            </div>
            <div id="navbar" class="collapse navbar-collapse">
              <ul class="nav navbar-nav navbar-right">
                           <li style="padding-top: 10px;">
     
                </li>
                <li><a href=""><b> <span id="date_heure"></span>
    					 <font color=""><script type="text/javascript">window.onload = date_heure('date_heure');</script> </font>
    			</li>
             </b></a>
              </ul>
     
            </div><!--/.nav-collapse -->
          </div>
        </nav>
     
    <div  class="container">
     
    <div class="col-sm-11 col-sm-offset-0">
     
                    <!-- <div  style="border: solid 1px #004d99;"  class="panel panel-default">-->
                   <!-- <div  style="border: solid 1px #004d99 ;"  class="panel-heading ">
                     <h2 style="text-align: center;"><i class="fa fa-plus-circle" aria-hidden="true"></i><br></h2>
                   </div>-->
     
                     <div id="main-content">
     
          <div class="container">
     
            <div class="row">
     
              <div class="col-sm-7 col-sm-offset-2">
                  <div class="panel panel-default">
                   <div class="panel-heading">
                    <h3 style="text-align:center;" class="panel-title"><b>Formulaire d'inscription</b></h3>
     
                  </div>
                <div class="panel-body">
     
                    <!--nom-->
               <form data-parsley-validate method="post" enctype="multipart/form-data" action="traitement/traitement-inscription.php">
    				<fieldset><legend><b><font color="green">Votre avatar</font></b></legend>
    					<div class="col-md-12">
    								<div class="form-group">
    									<label for="avatar">Votre avatar<span class="text-danger">*</span> :</label>
    									<input type="file" name="avatar" id="avatar" required="required">
    								</div>
    							</div>
    				</fieldset>			
    				<fieldset><legend><b><font color="green">Informations personnelles</font></b></legend>
     
     
    						<div class="row">
    							<div class="col-sm-6">
    								<div class="form-group">
    									<label class="control-label" for="nom" >Nom<span class="text-danger">*</span> : </label>
    									<div class="input-group">
    										<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
    										<input name="nom" type="text" placeholder="Votre nom" class="form-control validate[required]" required="required" />
    									</div>
     
    								</div>
    							</div>
     
    							<div class="col-sm-6">
    								<div class="form-group">
    									<label class="control-label" for="prenom" >Prénom<span class="text-danger">*</span> : </label>
    									<div class="input-group">
    										<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
    										<input name="prenom" type="text" placeholder="Votre prénom" class="form-control validate[required]" required="required" />
    									</div>
     
    								</div>
     
    							</div>
    						</div>
     
     
    						<div class="row">
    							<div class="col-sm-6">
    								<div class="form-group">
    									<label class="control-label" for="sexe" >Sexe<span class="text-danger">*</span> :</label>
    									<div class="input-group">
    										<span class="input-group-addon"><i class="fa fa-male"></i></span>
     
     
    										<select name="sexe" id="sex" class="form-control" required="required">
    											<option>
    											  -- Choisir --
    											</option>
    											<option>
    											Féminin
    											</option>
    											<option>
    											  Masculin
    											</option>
    										</select>
    									</div>
    								</div>
    							</div>
     
     
     
    							<div class="col-sm-6">
    								<div class="form-group">
    									<label class="control-label" for="nationalite" >Nationaité<span class="text-danger">*</span> :</label>
    									<div class="input-group">
    										<span class="input-group-addon"><i class="fa fa-flag"></i></span>
     
    										<select name="nationalite" id="nationalite" class="form-control" required="required">
    											<option>
    											  -- Choisir --
    											</option>
    											<option>
    											  Cameroun
    											</option>
    											<option>
    											  Gabon
    											</option>
    											<option>
    											  Tchad
    											</option>
    										</select>
    								</div></div>
    							</div>
    						</div>
     
     
    						<div class="row">
    							<div class="col-sm-6">
    								<div class="form-group">
    								  <label class="control-label" for="datenaiss" >Date de naissance<span class="text-danger">*</span> :</label>
    									<div class="input-group">
    										<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
    										<input name="datenaiss" type="date" placeholder="" class="form-control validate[required]" required="required"/>
    									</div>
     
     
    									</div>
    								</div>
    								<div class="col-sm-6">
    									<div class="form-group">
    										<label class="control-label" for="lieu" >Lieu<span class="text-danger">*</span> :</label>
    											<div class="input-group">
    												<span class="input-group-addon"><i class="fa fa-map-marker"></i></span>
    												<input name="lieu" type="text" placeholder="" class="form-control validate[required]" required="required"/>
    											</div>
    								</div>
    								</div>
    						</div>
     
     
    						<div class="row">
    							<div class="col-sm-6">
    								<div class="form-group">
    									<label class="control-label" for="email" >E-mail<span class="text-danger">*</span> : </label>
    									<div class="input-group">
    										<span class="input-group-addon"><i class="fa fa-envelope"></i></span>
    										<input name="email" type="email" placeholder="Votre adresse électronique" class="form-control validate[required]" required="required"/>
    									</div>
     
    								</div>
    							</div>
     
     
    							<div class="col-sm-6">
    								<div class="form-group">
    									<label class="control-label" for="classe" >Classe<span class="text-danger">*</span> :</label>
    									<div class="input-group">
    										<span class="input-group-addon"><i class="fa fa-group"></i></span>
     
     
    										<select name="classe" id="classe" class="form-control" required="required">
    											<option>
    											  -- Choisir --
    											</option>
    											<option>6ème</option>
    											<option>5ème</option>
    											<option>4ème</option>
    											<option>3ème</option>
    											<option>2nde AC</option>
    											<option>2nde TI</option>
    											<option>1ère ACDE-ABI</option>
    											<option>1ère TI</option>
    											<option>Tle ACDE-ABI</option>
    											<option>Tle TI</option>
    										</select>
    									</div>
    								</div>
    							</div>
     
    						</div>
     
     
     
    				</fieldset>
     
     
    						<fieldset><legend><b><font color="green">Vos paramètres de connexion</font></b></legend>
     
    							<div class="row">
    								<div class="col-sm-6">
    									<div class="form-group">
    										<label class="control-label" for="nomuti" >Nom utilisateur<span class="text-danger">*</span> :</label>
    										<div class="input-group">
    												<span class="input-group-addon"><i class="fa fa-user"></i></span>
    												<input name="nomuti" type="text" placeholder="Votre nom de connexion" class="form-control validate[required]" required="required"/>
    											</div>
     
    									</div>
    								</div>
    								<div class="col-sm-6">
    									<div class="form-group">
    										<label class="control-label" for="password" >Mot de passe<span class="text-danger">*</span> :</label>
     
     
    										<div class="input-group">
    												<span class="input-group-addon"><i class="fa fa-lock"></i></span>
    												<input name="password" type="password" placeholder="Votre mot de passe" class="form-control validate[required]" required="required"/>
    											</div>
     
    									</div>
    								</div>
    							</div>
    						</fieldset>				
     
    			</br>
     
                </div>
     
                <center>
                <div class="row">
    				<div class="col-sm-6">
    					<div class="form-group">
    						<input style="background-color: green; border : #004d99;" type="submit" class="btn btn-primary" value="Enregistrer" name="enregister">
    					</div>
    				</div>
     
    				<div class="col-sm-6">
    					<div class="form-group">
    						<input style="background-color: red; border : #004d99;" type="reset" class="btn btn-primary" value="Abandonner">
    					</div>
    				</div>
    			</div></center>
    		</div>
    	</div>
    </form> 
     
              </div>
     
            </div>
     
              </div>
     
     
            </div>
     
         </div><!-- /.container -->
     
     
       </div>
            <!-- </div>-->
              </div>
     
            </div>
     
                    <p style="color:#004d99; text-align: center;"  > &copy; e-didacticiel 2018 - Tous droits réservés.</p>
     
    <script src="libs/parsley.min.js"></script>
    </body>
    </html>


    Code du fichier de traitement-inscription.php
    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
    52
    53
     
     
    <?php
     
     
      include('connexion.php');
     
    if (isset($_POST['enregister'])) {
     
      global $con;
    	$avatar= $_FILES['avatar']['name'];
    	$avatar_tmp = $_FILES['avatar']['tmp_name'];
        move_uploaded_file($avatar_tmp,"../images/$avatar");
     
     
    	$nom = $_POST['nom'];
    	$prenom = $_POST['prenom'];
     
    	$sexe = $_POST['sexe'];
    	$nationalite = $_POST['nationalite'];
     
    	$datenaiss = $_POST['datenaiss'];
    	$lieu  = $_POST['lieu'];
     
    	$email = $_POST['email'];
    	$classe = $_POST['classe'];
     
    	$nomuti  = $_POST['nomuti'];
    	$password  = $_POST['password'];
     
     
     
       $insert = " INSERT INTO utilisateur ( avatar, Nom, Prenom, Sexe, Nationalite, DateNaiss, Lieu, Classe, Email, NomUser, MotDePasse ) 
    								VALUES('$avatar','$nom','$prenom','$sexe','$nationalite','$datenaiss','$lieu', '$classe','$email', '$nomuti', '$password')";
     
    $run = mysqli_query($con, $insert);
     
     
    if ($run) {
     
    	echo "<script>alert('Compte créer avec succès! !')</script>";
      echo "<script>window.open('../inscription.php','_self')</script>";
     
     
    }else{
      echo "<script>alert('Echec!')</script>";
       echo "<script>window.open('inscription.php','_self')</script>";
    }
     
    }
     
     
    ?>


    Fichier CSS : css.zip

    Cordialement.

  19. #19
    Membre averti
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    Juillet 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 28
    Par défaut
    Merci infiniment Manequin !
    J'ai chargé ton pack de fichiers super intéressants pour moi.
    Db: j'ai chargé le code SQL via phpMyAdmin, ok
    Connexion: la page reste blanche. D'après ce que j'ai lu dans un tuto ce serait bon signe.
    Inscription: génère ci dessous
    Nom : errorBD.jpg
Affichages : 450
Taille : 61,7 Ko

    Traitement-inscription: la page reste blanche (donc pas d'erreur) et comme je n'ai pu rien inscrire je présume qu'elle est ok.

    Demain j'essaie de trouver où est (sont) erreur(s) pour l'inscription.

    PS: dans ton code la ligne 48 correspond chez moi à <?php require'includes/functions.php'; (dans NotePad++)

    Cordialement et merci encore!

  20. #20
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 508
    Par défaut
    Oh la la, j'ai oublié.
    includes.zip
    Lance tout simplement le fichier inscription.php

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Conception] Application toute prête en PHP de type CRUD
    Par nita2006 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/04/2011, 13h59
  2. Besoin d'un exemple d'une application web faite en PHP
    Par bonheurdumonde dans le forum Langage
    Réponses: 2
    Dernier message: 21/08/2009, 19h37
  3. Réponses: 4
    Dernier message: 12/08/2009, 21h54
  4. Création d'une mini-application
    Par girl97224 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 13/01/2009, 16h01
  5. Création d'une mini-application avec ?
    Par ghohm dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 11/04/2007, 23h55

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