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 :

Echec de l'inscription dans la base de données (suite à migation easyPHP 14 vers 16) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    profession médicale
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : profession médicale
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Points : 21
    Points
    21
    Par défaut Echec de l'inscription dans la base de données (suite à migation easyPHP 14 vers 16)
    Bonjour,
    j'ai créé un site en langage PHP avec BDD Mysql sous Easyphp dev 14, qui est en ligne depuis un an sans erreur ni problème (PHP 5.4)
    A la demande de mon hébergeur, je suis en train de réaliser une version de ce site compatible PHP 7, pour ce faire, j'ai installé EasyPHP 16
    j'ai importé ma base de données de 14 vers 16, et j'ai fait quelques modifications mineures du code (utilisation de Mysqli par exemple)
    lors des tests, j'ai systématiquement un message "echec de l'inscription dans la base de données", message généré par mon code en cas d'erreur
    vérification faite, il n'y a effectivement aucune inscription dans la BDD
    Parcontre, je peux insérer directement des valeurs depuis PHP my admin
    si vous le souhaitez, je peux vous envoyer les 2 pages de code (formulaire+ reception)
    merci pour votre aide
    je pense que ce post est mieux ici que dans BDD, car je pense que le problème vient de php
    cordialement

    page du formulaire:

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form action="uploadfichier.php" method="post" enctype="multipart/form-data" name="uploadfichier">
    <input name="titre" type="text" /><br/>
    <textarea name="texte" cols="" rows="4"></textarea><br/>
    <input name="fichier" type="file" /><br/>
    <input name="MAX_FILE_SIZE" type="hidden" value="2000000" />
     
    <input name="envoyer" type="submit" value="envoyer" />
    </form>
    </body>
    </html>


    page de réception:

    Code : 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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
    <body>
    <?php
    if(isset($_POST['titre'], $_POST['texte'], $_POST['MAX_FILE_SIZE'] ))
    {
    	echo"";
    }
    else
    {
    	echo"échec de la transmission des données<br/>";
    }
    if ($_FILES['fichier']['size'] > $_POST ['MAX_FILE_SIZE'])
    {
    	echo"fichier trop gros<br/>";
    }
    else
    {
    	echo "taille correcte<br/>";
    }
    $extensions_valides = array( 'jpg' , 'jpeg' );
    $extension_upload = strtolower(  substr(  strrchr($_FILES['fichier']['name'], '.')  ,1)  );
    if ( in_array($extension_upload,$extensions_valides) ) 
    echo "Extension correcte <br/>";
     
    if ($_FILES['fichier']['error'] > 0) 
    {
    	echo"Erreur lors du transfert<br/>";
    }
    else
    {
    	echo"";
    }
    $dir= '../Photos_galerie';
    $nom = $_FILES['fichier']['name'];
     $res = move_uploaded_file($_FILES['fichier']['tmp_name'], "$dir/$nom");
    if ($res == FALSE)
    {
    	echo"échec du download du fichier";
    }
    else
     
    {
    $mysqli = new mysqli("127.0.0.1", "root", "", "elevagedubanney");
     
     
    $sql ="INSERT INTO photo (Nom, Texte)VALUES ('$_POST[titre]', '$_POST[texte]' )" ;
    $resultat = mysqli_query($mysqli,$sql);
    if ($resultat == FALSE)
    {
    	echo "Echec de l'inscription dans la BDD<br/>";
    }
    else
    {
    	echo "Inscription réussie dans la BDD<br/>";
    }
     
     
     
    	echo "Terminé";
    }
    ?>
    </body>
    </html>
    Merci pour votre aide

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par cfloriot Voir le message
    j'ai fait quelques modifications mineures du code (utilisation de Mysqli par exemple)
    Passer l'API mysql à Mysqli n'est pas forcément ce que j’appellerais une modification mineure Et effectivement, ça aiderait d'avoir au moins le code qui fait les appels à la base de données qui plantent.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre à l'essai
    Homme Profil pro
    profession médicale
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : profession médicale
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Points : 21
    Points
    21
    Par défaut code
    J'ai copié le code dans le corps du message
    merci pour votre aide

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu peux essayer avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql ="INSERT INTO photo (Nom, Texte)VALUES ('".$_POST['titre']."', '".$_POST['texte']."' )" ;
    $resultat = mysqli_query($mysqli,$sql);
    Tu peux aussi essayer de debuger un peu en ajoutant un affichage de l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($resultat === FALSE)
    {
    	echo "Echec de l'inscription dans la BDD<br/>".mysqli_error($mysqli)."<br>";
    }

    Au passage, cette requête est totalement non sécurisé et la porte ouverte à toutes les fenêtres au niveau des injections SQL, il faudrait au moins utiliser mysqli_real_​escape_​string sur les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $titre = mysqli_real_escape_string($mysqli, $_POST['titre']);
    $texte = mysqli_real_escape_string($mysqli, $_POST['texte']);
    $sql ="INSERT INTO photo (Nom, Texte)VALUES ('".$titre."', '".$texte."' )" ;
    $resultat = mysqli_query($mysqli,$sql);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre à l'essai
    Homme Profil pro
    profession médicale
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : profession médicale
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Points : 21
    Points
    21
    Par défaut ça marche...
    Merci, ça fonctionne
    je suis encore un peu fâché avec les simples et les doubles quotes
    En ce qui concerne la sécurisation, je pensais faire celà ensuite quand l'inscription dans la BDD fonctionnerait
    cordialement,

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Pour les chaines et les quotes, tu peux lire ce tutoriel : Apostrophes ou guillemets : lesquels choisir ? et évidemment la page du manuel sur les chaînes de caractères (en particulier le paragraphe sur l'interprétation des variables).
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre à l'essai
    Homme Profil pro
    profession médicale
    Inscrit en
    Décembre 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : profession médicale
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2005
    Messages : 25
    Points : 21
    Points
    21
    Par défaut J'abuse...
    Citation Envoyé par Celira Voir le message
    Pour les chaines et les quotes, tu peux lire ce tutoriel : Apostrophes ou guillemets : lesquels choisir ? et évidemment la page du manuel sur les chaînes de caractères (en particulier le paragraphe sur l'interprétation des variables).
    Encore merci pour ta gentillesse et ta disponibilité,
    si j'osais, je proposerais encore un fragment de code qui bien entendu ne fonctionne pas...
    il s'agit d'une page qui récupère sur ma BDD un lien Youtube que je dois insérer dans le IFRAME
    le lien est bien récupéré et s'affiche, le IFRAME s'affiche correctement, mais sans lire le lien
    je pense qu'une fois encore, je n'ai pas écrit le lien correctement dans le code

    Code : 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
    $mysqli = mysqli_connect ("127.0.0.1","root", "", "youtube");
     
    $res = mysqli_query($mysqli, 'SELECT lien FROM lien');
    if ($res== FALSE)
    {
    	echo "echec de la requête";
    }
    else
    {
    	while($ligne= mysqli_fetch_assoc($res))
    echo "lien: ".$ligne['lien']."";
    echo "<iframe width='420' height='315' src='http://www.youtube.com/embed/".$ligne['lien']." frameborder='0' allowfullscreen></iframe><br/>";
    }
    ?>
    j'ai déjà commencé à lire les tutoriels que tu m'as proposés
    merci encore,
    cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/06/2014, 15h14
  2. Réponses: 5
    Dernier message: 27/07/2011, 19h08
  3. [MySQL] Inscription des données d'un formulaire dans une base de données
    Par xjulio59 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/08/2010, 14h45
  4. Gestion d'inscriptions dans une base Access
    Par christeldehaen dans le forum Modélisation
    Réponses: 2
    Dernier message: 05/05/2008, 10h50
  5. inscription via le web et enregistrement dans une base de données
    Par titoenis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 17/05/2006, 09h20

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