Probleme Php

tekthomasdu96 Messages postés 303 Statut Membre -  
tekthomasdu96 Messages postés 303 Statut Membre -
Bonjour,

J'ai fait un code qui ne marche pas :

<html>
<head>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="theme\General.css" />
</head>
<body>
<?php
mysql_connect("localhost", "root");
mysql_select_db("Ado");
mysql_query("INSERT INTO Membres VALUES('$_POST[nom]', '$_POST[prenom]', '$_POST[pseudo]', '$_POST[pass]', '$_POST[age]', $_POST[sexe], '$_POST[message]', '')");
mysql_close();
?>
<meta http-equiv="Refresh" content="1;url=index.php">
</body>
</head>

Lorsque j'enleve le php, tous marche trés bien! Je ne comprend pas...
--
?*µ¤m@$
Configuration: Windows Vista Internet Explorer 7.0

20 réponses

  1. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Bonjour,

    Je n'ai pas regardé de fond en comble mais déjà tu as oublié les ' ' : $_POST['nom'] par exp
    0
  2. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    Oui mais si je les mais cela provoque des erreur.
    0
  3. Bertrand40 Messages postés 1344 Statut Membre 197
     
    En fait ces écritures me "gênent" parce que je ne les utilise jamais.
    Pour moi il est plus clair de taper ça :

    $host='localhost';
    $user='#';
    $password='#';
    $base='#';

    //connexion à ta base
    $link = mysql_connect($host,$user,$password) or die('Erreur de connexion au SGBD.');
    mysql_select_db($base,$link) or die('La base de données n\'existe pas.');

    //requête SQL
    $sql = 'INSERT INTO Membres VALUES ('$_POST['nom']', '$_POST['prenom']', '$_POST['pseudo']', '$_POST['pass']', '$_POST['age']', $_POST['sexe'], '$_POST['message']')';
    $res = mysql_query($sql,$link) or die("Erreur SQL : $query<br/>".mysql_error());
    mysql_close();

    MAIS ça ne change rien à ton problème. Tu n'aurais pas oublié de mettre ton mot de passe SGBD..? Il te sort quoi comme message d'erreur ?
    0
  4. Bertrand40 Messages postés 1344 Statut Membre 197
     
    PS : pour $_POST['sexe'] tu as aussi oublié les ' ', mais autour
    PS 2 : d'où viennent tes variables POST ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le concombre vaporisé
     
    Salut

    De plus:
    * le meta refresh devrait être dans <HEAD>...</HEAD>
    * le </BODY> est écrit </HEAD>
    * le formulaire ne devrait pas être utilisé directement et sans contrôle dans l'INSERT (utiliser isset() pour éviter les nulls et mysql_real_escape_string() pour éviter les pièges)
    0
  7. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    J'ai reussi à coriger mon programme par rapport a ce que vous m'avez dit. Maintenent, j'ai un petit souci... mes variable nom, prenom, passe, pseudo... sont inexistant alor que leur ai declarer. Mon code :

    <html>
    <head>
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="theme\General.css" />
    </head>
    <body>
    <?php
    $host='localhost';
    $user='root';
    $password='';
    $base='ado';
    if (isset($_POST['nom'])) $nom=$_POST['nom'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=1">');
    if (isset($_POST['prenom'])) $prenom=$_POST['prenom'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=2">');
    if (isset($_POST['pseudo'])) $pseudo=$_POST['pseudo'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=3">');
    if (isset($_POST['pass'])) $pass=$_POST['pass'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=4">');
    if (isset($_POST['confirm'])) $confirm=$_POST['confirm'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=5">');
    if (isset($_POST['age'])) $age=$_POST['age'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=6">');
    if (isset($_POST['sexe'])) $sexe=$_POST['sexe'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=7">');
    if (isset($_POST['message'])) $message=$_POST['message'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=8">');
    $link = mysql_connect($host,$user,$password) or die('Erreur de connexion au SGBD.');
    mysql_select_db($base,$link) or die('La base de données n\'existe pas.');
    $sql = "INSERT INTO membre VALUES ('$nom', '$prenom', '$pseudo', '$pass', '$age', '$sexe', '$message')" or die ("Erreur!");
    $res = mysql_query($sql,$link) or die("Erreur! ".mysql_error());
    mysql_close();
    header('Location: index.php');
    ?>
    </body>
    </head>
    0
  8. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    Personne?
    0
  9. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Re,

    echo '$nom = $_POST['nom']'; avant le premier ISSET ça te donne quelque chose ?
    (pour savoir si avec ton formulaire tout va bien)
    0
  10. Bertrand40 Messages postés 1344 Statut Membre 197
     
    PS : au début tu nous as dit qu'il y a 8 champs dans ta base ado, là tu n'en remplis que 7.
    0
  11. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    Il affiche ca comme erruer : Column count doesn't match value count at row 1
    Je pige rien du tout!
    0
  12. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    J'ai resolu le probleme sauf que maintenent, lorsque je charge la page, il affiche Internet ne peut pas afficher la page.

    Info : J'utilise wamp pour simuler mes page. J'ai test avec EasyPhp et PhpEdit, méme chose.
    0
  13. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    A mon avis doit avoir une erreur dans le code :

    <html>
    <head>
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="theme\General.css" />
    </head>
    <body>
    <?php
    $host='localhost';
    $user='root';
    $password='';
    $base='ado';
    if (isset($_POST['nom'])) $nom=$_POST['nom'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=1">');
    if (isset($_POST['prenom'])) $prenom=$_POST['prenom'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=2">');
    if (isset($_POST['pseudo'])) $pseudo=$_POST['pseudo'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=3">');
    if (isset($_POST['pass'])) $pass=$_POST['pass'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=4">');
    if (isset($_POST['confirm'])) $confirm=$_POST['confirm'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=5">');
    if (isset($_POST['age'])) $age=$_POST['age'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=6">');
    if (isset($_POST['sexe'])) $sexe=$_POST['sexe'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=7">');
    if (isset($_POST['message'])) $message=$_POST['message'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=8">');
    $link = mysql_connect($host,$user,$password) or die('Erreur de connexion au SGBD.');
    mysql_select_db($base,$link) or die('La base de données n\'existe pas.');
    $sql = "INSERT INTO membre VALUES ('$nom', '$prenom', '$pseudo', '$pass', '$age', '$sexe', '$message', '')" or die ("Erreur!");
    $res = mysql_query($sql,$link) or die("Erreur! ".mysql_error());
    mysql_close();
    header('Location: index.php');
    ?>
    </body>
    </head>
    0
  14. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Salut, supprime ta fermeture </head> à la fin de ton code déjà (j'ai pas regardé le reste)
    0
  15. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    Voila! C fait. Mai ca marce toujou pas... SNIF SNIF
    0
  16. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Essaie comme ça, le header doit être responsable.
    Tu peux nous mettre tout ton code stp ?

    <?php
    // ID BASE
    $host='localhost';
    $user='root';
    $password='';
    $base='ado';

    // connexion base
    $link = mysql_connect($host,$user,$password) or die('Erreur de connexion au SGBD.');
    mysql_select_db($base,$link) or die('La base de données n\'existe pas.');

    // instructions
    if (isset($_POST['nom'])) $nom=$_POST['nom'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=1">');
    if (isset($_POST['prenom'])) $prenom=$_POST['prenom'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=2">');
    if (isset($_POST['pseudo'])) $pseudo=$_POST['pseudo'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=3">');
    if (isset($_POST['pass'])) $pass=$_POST['pass'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=4">');
    if (isset($_POST['confirm'])) $confirm=$_POST['confirm'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=5">');
    if (isset($_POST['age'])) $age=$_POST['age'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=6">');
    if (isset($_POST['sexe'])) $sexe=$_POST['sexe'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=7">');
    if (isset($_POST['message'])) $message=$_POST['message'];
    else die ('<meta http-equiv="Refresh" content="1;url=index.php?inscr=8">');

    $sql = "INSERT INTO membre VALUES ('$nom', '$prenom', '$pseudo', '$pass', '$age', '$sexe', '$message', '')" or die ("Erreur!");
    $res = mysql_query($sql,$link) or die("Erreur! ".mysql_error());
    mysql_close();
    header('Location: index.php');
    ?>

    <html>
    <head>
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="theme\General.css" />
    </head>
    <body>

    </body>
    0
  17. Bertrand40 Messages postés 1344 Statut Membre 197
     
    PS : et ferme ton </html> à la toute fin
    0
  18. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    Problemme Resolue. Il fallait enlever la ligne mysql_close();

    @+
    0
  19. Bertrand40 Messages postés 1344 Statut Membre 197
     
    Non je pense pas que ce soit la solution.
    De rien..
    0
  20. tekthomasdu96 Messages postés 303 Statut Membre 21
     
    Pourtant ca marche!
    0