Problème d'insertion de données via formulaire ???

Répondre
leroivert
le 10/03/2005 à 11:28
leroivert
Bonjour à tous !
voilà j'obtiens ce message d'erreur :

Parse error: parse error, unexpected '!' in /var/www/free.fr/a/9/thierry.melleraud/valide.php on line 10

le fichier valide.php :
<?php

// on teste si le formulaire a été validé
if (isset($_POST['enregistrer']) && $_POST['enregistrer']=='Enregistrer les infos') {
// on se connecte à notre base
$base = mysql_connect('sql.free.fr','login','password');
mysql_select_db('ma_base', $base);

// on teste la déclaration de nos variables
if (!isset($_POST['pseudo']) || !isset($_POST['prenom']) || !isset($_POST['age']) !isset($_POST['email']) || !isset($_POST['pays']) || !isset($_POST['processeur']) || !isset($_POST['memoire']) || !isset($_POST['cartemere']) || !isset($_POST['cartevideo']) || !isset($_POST['resolution']) || !isset($_POST['carteson']) || !isset($_POST['souris']) || !isset($_POST['clavier']) || !isset($_POST['ecran']) || !isset($_POST['systeme']) || !isset($_POST['connexion']) || !isset($_POST['map']) || !isset($_POST['arme'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['pseudo']) || empty($_POST['prenom']) || empty($_POST['age']) empty($_POST['email']) || empty($_POST['pays']) || empty($_POST['processeur']) || empty($_POST['memoire']) || empty($_POST['cartemere']) || empty($_POST['cartevideo']) || empty($_POST['resolution']) || empty($_POST['carteson']) || empty($_POST['souris']) || empty($_POST['clavier']) || empty($_POST['ecran']) || empty($_POST['systeme']) || empty($_POST['connexion']) || empty($_POST['map']) || empty($_POST['arme'])) {
$erreur = 'Au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO profil VALUES ("", "'.addslashes($_POST['pseudo']).'", "'.addslashes($_POST['prenom']).'", "'.date("Y-m-d H:i:s").'", "'.addslashes($_POST['age']).'", "'.addslashes($_POST['email']).'", "'.addslashes($_POST['pays']).'", "'.addslashes($_POST['processeur']).'", "'.addslashes($_POST['memoire']).'", "'.addslashes($_POST['cartemere']).'", "'.addslashes($_POST['cartevideo']).'", "'.addslashes($_POST['resolution']).'", "'.addslashes($_POST['carteson']).'", "'.addslashes($_POST['souris']).'", "'.addslashes($_POST['clavier']).'", "'.addslashes($_POST['ecran']).'", "'.addslashes($_POST['systeme']).'", "'.addslashes($_POST['connexion']).'", "'.addslashes($_POST['map']).'", "'.addslashes($_POST['arme']).'");
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

// on ferme la connexion à la base de données
mysql_close();

// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location: ../membre.php');
// on termine le script courant
exit();
}
}
}
?>



Puis la TABLE profil :
CREATE TABLE profil (
id int(6) NOT NULL auto_increment,
pseudo VARCHAR(30) NOT NULL,
prenom VARCHAR(30) NOT NULL,
date datetime NOT NULL default '0000-00-00 00:00:00',
age VARCHAR(2) NOT NULL,
email VARCHAR(50) NOT NULL,
pays VARCHAR(50) NOT NULL,
processeur VARCHAR(50) NOT NULL,
memoire VARCHAR(50) NOT NULL,
cartemere text NOT NULL,
cartevideo text NOT NULL,
resolution VARCHAR(50) NOT NULL,
carteson text NOT NULL,
souris VARCHAR(50) NOT NULL,
clavier VARCHAR(50) NOT NULL,
ecran VARCHAR(50) NOT NULL,
systeme VARCHAR(50) NOT NULL,
connexion VARCHAR(50) NOT NULL,
map VARCHAR(50) NOT NULL,
arme VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;

Voilà vous avez tous les paramètres pour pouvoir plancher dessus si vous avez bien sur une idée merci d'avance.
smiley
LA GLOBULE
le 10/03/2005 à 11:30
LA GLOBULE
Heu, ouais, mais la, y'a le wall pour ce genre de truc.

Quelle est la ligne 10 ? Ca pourrait surement aider (la, je suis sincere, je n'ai pas lu ton code).
leroivert
le 10/03/2005 à 11:37
leroivert
Oui désolé smiley j'ai pas précisé le numéro de la ligne ?

alors dans le fichier valide.php, c'est la ligne qui en gras juste en dessous de "// on teste la déclaration de nos variables" :


<?php
// on teste si le formulaire a été validé
if (isset($_POST['enregistrer']) && $_POST['enregistrer']=='Enregistrer les infos') {
// on se connecte à notre base
$base = mysql_connect('sql.free.fr','*****' ,'*****');
mysql_select_db('thierry_melleraud', $base);

// on teste la déclaration de nos variables
if (!isset($_POST['pseudo']) || !isset($_POST['prenom']) || !isset($_POST['age']) !isset($_POST['email']) || !isset($_POST['pays']) || !isset($_POST['processeur']) || !isset($_POST['memoire']) || !isset($_POST['cartemere']) || !isset($_POST['cartevideo']) || !isset($_POST['resolution']) || !isset($_POST['carteson']) || !isset($_POST['souris']) || !isset($_POST['clavier']) || !isset($_POST['ecran']) || !isset($_POST['systeme']) || !isset($_POST['connexion']) || !isset($_POST['map']) || !isset($_POST['arme'])){
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['pseudo']) || empty($_POST['prenom']) || empty($_POST['age']) empty($_POST['email']) || empty($_POST['pays']) || empty($_POST['processeur']) || empty($_POST['memoire']) || empty($_POST['cartemere']) || empty($_POST['cartevideo']) || empty($_POST['resolution']) || empty($_POST['carteson']) || empty($_POST['souris']) || empty($_POST['clavier']) || empty($_POST['ecran']) || empty($_POST['systeme']) || empty($_POST['connexion']) || empty($_POST['map']) || empty($_POST['arme'])) {
$erreur = 'Au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO profil VALUES ("", "'.addslashes($_POST['pseudo']).'", "'.addslashes($_POST['prenom']).'", "'.date("Y-m-d H:i:s").'", "'.addslashes($_POST['age']).'", "'.addslashes($_POST['email']).'", "'.addslashes($_POST['pays']).'", "'.addslashes($_POST['processeur']).'", "'.addslashes($_POST['memoire']).'", "'.addslashes($_POST['cartemere']).'", "'.addslashes($_POST['cartevideo']).'", "'.addslashes($_POST['resolution']).'", "'.addslashes($_POST['carteson']).'", "'.addslashes($_POST['souris']).'", "'.addslashes($_POST['clavier']).'", "'.addslashes($_POST['ecran']).'", "'.addslashes($_POST['systeme']).'", "'.addslashes($_POST['connexion']).'", "'.addslashes($_POST['map']).'", "'.addslashes($_POST['arme']).'");
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

// on ferme la connexion à la base de données
mysql_close();

// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location: ../membre.php');
// on termine le script courant
exit();
}
}
}
?>


Note de zebden : Fais gaffe de pas mettre tes paramètres de connexion
zebden
le 10/03/2005 à 11:47
zebden
Bon T'as oublié un || entre $_POST['age'] et $_POST['email'] ..

Bien relire son code pour les erreurs de synthaxe , le unexpected ! aurait du te mettre sur la voie.
zebdinou pour les intimes / Blog : http://www.zebden.fr
leroivert
le 10/03/2005 à 11:50
leroivert
Merci beaucoup Zebden smiley ,

la relecture est très importante même si on est un peu distrait ...

Merci encore !
LA GLOBULE
le 10/03/2005 à 11:54
LA GLOBULE
Attention, une autre erreur devrait apparaitre : il manque un ' à la fin de ta déclaration de $sql.
leroivert
le 10/03/2005 à 11:58
leroivert
Génial j'étais justement en train de plancher dessus ...
Merci merci encore il est méga réactif ce forum et ça fait vraiment plaisir
smiley
leroivert
le 10/03/2005 à 12:08
leroivert
J'ai un autre soucis mes données ne s'insèrent pas dans ma table et je n'ai aucuns messages d'erreur smiley
Lefounard
le 10/03/2005 à 13:08
Lefounard
Salut,
Juste une petite précision pour eviter des problemes de piratage dans ton insertion rajoutes strip_tags(add.......) , cette fonction permet d'enlever toutes les balises de code !
Ensuite si tu as plusieurs formulaires : fais des fonctions de controle de strings : pour eviter d'ecrire toutes ces lignes a chaque , pour cela il te suffit juste d'envoyer dans un tableau tous les champs a verifier , et ainsi la fonction te renvoi le type !
Ciao,
I am singing in the rain , I am happy again !!
Répondre
LoadingChargement en cours