[PHP] pb de syntaxe suivant versions

rasmulti Messages postés 3 Statut Membre -  
oberion Messages postés 1255 Statut Membre -
Bonjour,
je débute avec PHP et Sql.
j'ai un formulaire de saisie de données, traité ensuite par PHP qui envoie des données dans une table MySQL.

- avec le serveur OVH : j'y suis arrivé
- avec mon serveur local : pas moyen d'insérer des données.
C'est sûrement une question de syntaxe différente.
J'y ai passé la journée, alors je sèche.
Voici le code du fichier PHP, qui fonctionne sur OVH :
Bien sûr, en local j'utilise le srv localhost, la base et la table installées.

<?
mysql_connect("srv","user","pwd")or die('Erreur de connexion a la base');
mysql_selectdb("base") or die ('erreur de selection de base');
$comment=stripslashes($comment);
$a ="INSERT INTO disques (albumtitre, albumartiste, albumannee, albumsupport, albumtype, albumediteur, comment, date) VALUES
('$albumtitre','$albumartiste','$albumannee','$albumsupport','$albumtype','$albumediteur','$comment', now())";
mysql_query($a) or die ('erreur insertion des données');
?>

J'ai essayé des " et/ou des ' et j'ai des msgs d'erreur undefined variable: dans mon fichier.php.

Mes configs :
1/ en local sous Win SRV2003 : MySQL - 4.1.9-max et PhpMyAdmin - 2.8.2.4 (Version du client MySQL: 3.23.49)

2/ chez OVH : MySQL - 4.0.25-standard-log
et
phpMyAdmin - OVH (Version du client MySQL : 5.0.18)

Merci d'aider un désespéré.
Configuration: 1/ en local sous Win SRV2003 : MySQL - 4.1.9-max et PhpMyAdmin - 2.8.2.4 (Version du client MySQL: 3.23.49)

2/ chez OVH : MySQL - 4.0.25-standard-log 
et    
phpMyAdmin - OVH
(Version du client MySQL : 5.0.18)

9 réponses

  1. Dingo
     
    L'utilisation des shorttags, c'est déconseillé.

    register global est à on chez ovh ?
    0
    1. oberion Messages postés 1255 Statut Membre 249
       
      Bonjour,

      register_globals est à off chez OVH.
      0
  2. oberion Messages postés 1255 Statut Membre 249
     
    Ou se situe l'erreur ? Dans la conexion à la base ou dans l'insertion ?
    0
  3. rasmulti Messages postés 3 Statut Membre 5
     
    Salut,

    C'est avant l'insertion me semble-t-il ?
    J'ai encore fait des essais. Voici les derniers messages :

    Notice: Undefined variable: albumtitre in e:\progs\easyphp1-8\www\albums.php on line 6

    Notice: Undefined variable: albumartiste in e:\progs\easyphp1-8\www\albums.php on line 6

    Notice: Undefined variable: albumannee in e:\progs\easyphp1-8\www\albums.php on line 6

    Notice: Undefined variable: albumsupport in e:\progs\easyphp1-8\www\albums.php on line 6

    Notice: Undefined variable: albumtype in e:\progs\easyphp1-8\www\albums.php on line 6

    Notice: Undefined variable: albumediteur in e:\progs\easyphp1-8\www\albums.php on line 6
    erreur insertion des données

    Pouquoi ces variables sont-elles non définies ?
    J'ai tout vérifié plusieurs fois.

    Help, où je vais bientôt aller élever des escargots. Car ça doit être moins fatigant, vu qu'ils ne courent par vite.
    0
  4. oberion Messages postés 1255 Statut Membre 249
     
    Re,

    Parce qu'il faut récuperer tes variables proprement:

    $albumtitre = $_POST['albumtitre'];
    $albumartiste = $_POST[albumartiste'];
    etc...
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. rasmulti
     
    Slaut,
    j'ai essayé (sans oublié d'apostrophes) : il ne se passe rien du tout, même pas de message !

    Voici mon fichier corrigé :
    <?php
    mysql_connect("localhost","music","") or die ('Erreur de connexion a la base');
    mysql_selectdb("music") or die ('erreur de selection de base');
    $comment = stripslashes('$comment');
    $albumtitre = $_POST['albumtitre'];
    $albumartiste = $_POST['albumartiste'];
    $albumannee = $_POST['albumannee'];
    $albumsupport = $_POST['albumsupport'];
    $albumtype = $_POST['albumtype'];
    $albumediteur = $_POST['albumediteur'];
    $comment = $_POST['comment'];
    $a = "INSERT INTO disques (albumtitre, albumartiste, albumannee, albumsupport, albumtype, albumediteur, comment, date) VALUES
    ($albumtitre, $albumartiste, $albumannee, $albumsupport, $albumtype, $albumediteur, $comment, now())";
    mysql_query($a) or die ('erreur insertion des données');
    ?>
    0
  7. oberion Messages postés 1255 Statut Membre 249
     
    ...et générer ta requete proprement:

    $a = "INSERT INTO disques (albumtitre, albumartiste, albumannee, albumsupport, albumtype, albumediteur, comment, date) VALUES
    ('".$albumtitre."', '".$albumartiste."', '".$albumannee."', '".$albumsupport."', '".$albumtype."', '".$albumediteur."', '".$comment."', now())";


    Fais ensuite un echo de $a, ce qui va afficher la requete, puis execute la dans phpMyAdmin. Ce sera plus facile à debugger.
    0
  8. rasmulti
     
    Salut,
    Rien à faire.
    J'ai trouvé un info peut-être intéressante dans le répertoire date de mysql; un fichier de log du srv :
    061005 18:29:58 InnoDB: Started; log sequence number 0 43634
    061005 18:29:58 [Warning] mysql.user table is not updated to new password format; Disabling new password usage until mysql_fix_privilege_tables is run
    061005 18:29:58 [Warning] Can't open and lock time zone table: La table 'mysql.time_zone_leap_second' n'existe pas trying to live without them
    E:\progs\EASYPH~1\MySql\bin\mysqld.exe: Prêt pour des connections Source distribution
    (j'ai copié les lignes d'aujourd'hui)
    InnoDB c'est quoi ?

    Re-re-re-merci d'un désespéré.
    0
  9. rasmulti
     
    P.S : ça fonctionne toujours bien chez OVH !

    N'aurai-je pas des mises à jour à effectuer sur phpmyadmin ou mysql ?
    Je n'ai pas trouvé de maj.
    Merci.
    0
  10. oberion Messages postés 1255 Statut Membre 249
     
    Re,

    As tu fait un echo de $a ? Fais le et copie/colle la réponse ici.
    0