[PHP] pb de syntaxe suivant versions

rasmulti Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
oberion Messages postés 1253 Date d'inscription   Statut Membre Dernière intervention   -
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é.
A voir également:

9 réponses

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

register global est à on chez ovh ?
0
oberion Messages postés 1253 Date d'inscription   Statut Membre Dernière intervention   248
 
Bonjour,

register_globals est à off chez OVH.
0
oberion Messages postés 1253 Date d'inscription   Statut Membre Dernière intervention   248
 
Ou se situe l'erreur ? Dans la conexion à la base ou dans l'insertion ?
0
rasmulti Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   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
oberion Messages postés 1253 Date d'inscription   Statut Membre Dernière intervention   248
 
Re,

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

$albumtitre = $_POST['albumtitre'];
$albumartiste = $_POST[albumartiste'];
etc...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
oberion Messages postés 1253 Date d'inscription   Statut Membre Dernière intervention   248
 
...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
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
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
oberion Messages postés 1253 Date d'inscription   Statut Membre Dernière intervention   248
 
Re,

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