Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/03/2011, 09h57   #1
Invité de passage
 
Homme Daniel
Directeur commercial
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : Belgique

Informations professionnelles :
Activité : Directeur commercial
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 3
Points : 3
Par défaut Ajout livre or

Bonjour
J'essaye en vain de réaliser un programme de gestion d'avis (=+/- livre d'or )
La connexion a une base mysql semble correcte
La base message comprend 4 champs ( nom, date, email, message)
Ci joint le fichier " ajout "
J'envoie des messages test et chaque fois que je veux consulter, il indique:
" pas de message" ( j'utilise un autre fichier " livre" pour cela.
Y a t il une erreur dans le fichier "ajout"?
En fait il semble ne rien ajouter dans la base...
Merci de votre aide
DB
danielbosman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 11h08   #2
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Bonjour,

Je présume que la page ajout est la page appelée lors de l'envoi du formulaire ?

Si oui, tu ne récupère pas les valeurs de tes champs saisis.

remplace
Code :
1
2
3
$nom = ereg_replace("[\]", " ", $nom);
$message=ereg_replace("[\]", " ", $message);
$mail=ereg_replace("[\]", " ", $mail);
par
Code :
1
2
3
$nom = ereg_replace("[\]", " ", $_POST['nom']);
$message=ereg_replace("[\]", " ", $_POST['message']);
$mail=ereg_replace("[\]", " ", $_POST['mail']);
$_POST['xxxxx'] : les 'xxxx' représentent la valeur de tes attributs "name" des balises "input" de ton formulaire.

Si tu as besoin de plus d'explications n'hésite pas à demander.

Redis-nous.

Cordialement,
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 15h56   #3
Invité de passage
 
Homme Daniel
Directeur commercial
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : Belgique

Informations professionnelles :
Activité : Directeur commercial
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 3
Points : 3
Super, enfin presque..
Tu as raison, c'est bien la page appellée lors de l'envoi du message.

J'ai maintenant une reconnaissance des messages, mais quant je souhaite les visualiser, il n'indique rien.
Dans la base sql il y a lorsque je l'examine:
query empty.
Donc il semble qu'il n'a rien enregistré.
je joins aussi le petit script de lecture des messages.
En tout cas, c'est sympa de m'aider.
Je "sèche" depus plusieurs jours sur ce cas.

Cordialement
Daniel
danielbosman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 17h34   #4
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
Bonjour,

Il y a quelques petites corrections à apporter que voici :

ajout_livre.php:
Code :
1
2
3
4
5
6
7
8
 
$requete = 'INSERT INTO message(nom, email, message, date) VALUES("' . $nom . '", "' . $mail . '", "' . $data . '", "' . $date . '")';
 
// On récupère l'id de connexion
$link = connexion();
 
//Ne pas oublier de mettre l'id de la connexion SQL
mysql_close($link);
connexion.php
Code :
1
2
3
4
5
6
7
function connexion()
{
	$id = mysql_connect("localhost", "root", "");
 
	mysql_select_db("developpez", $id);
        return $id;
}
Avec ceci les enregistrements se font correctement.

Il en est de même pour ta page livre.php : récupérer l'id de connexion et le transmettre à la fonction de fermeture de connexion SQL. Fonction qui d'ailleurs devrait être placée à la fin du script.

Redis-nous si tu as encore des soucis.

Cordialement,

PS: regarde mon MP aussi
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 17h50   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par Torgar Voir le message
Code :
1
2
3
$nom = ereg_replace("[\]", " ", $_POST['nom']);
$message=ereg_replace("[\]", " ", $_POST['message']);
$mail=ereg_replace("[\]", " ", $_POST['mail']);
quelle est l'utilité de ce code ???
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 18h27   #6
Invité de passage
 
Homme Daniel
Directeur commercial
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : Belgique

Informations professionnelles :
Activité : Directeur commercial
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 3
Points : 3
Bonjour et merci pour les réponses.

En tant que novice , j'ai appris que ce code permettrait d'éviter les conflits et d'enlever le / que php ajoute devant tout caractère qui serait en conflit.
On m'a conseillé d'introduire ce code dans ce genre de script justement pour éviter que le / n'apparaisse si le visiteur tape un caractère genre ' ou "...
Est ce vrailent utile à votre avis?
Je fait les autres corrections ce soir.
Je vous tiens tous au courant en fin de soirée ou demain matin des résultats.

Bonne soirée.

DB

ps les fichiers joints sont déjà effacés; mais merci aussi pour le conseil.
danielbosman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 18h37   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par danielbosman Voir le message
Bonjour et merci pour les réponses.

En tant que novice , j'ai appris que ce code permettrait d'éviter les conflits et d'enlever le / que php ajoute devant tout caractère qui serait en conflit.
On m'a conseillé d'introduire ce code dans ce genre de script justement pour éviter que le / n'apparaisse si le visiteur tape un caractère genre ' ou "...
Est ce vrailent utile à votre avis?
Je fait les autres corrections ce soir.
Je vous tiens tous au courant en fin de soirée ou demain matin des résultats.

Bonne soirée.

DB

ps les fichiers joints sont déjà effacés; mais merci aussi pour le conseil.
http://www.php.net/manual/fr/security.magicquotes.php
http://www.php.net/manual/fr/security.database.php
http://fr2.php.net/manual/fr/function.stripslashes.php
http://fr2.php.net/manual/fr/functio...ape-string.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2011, 09h54   #8
Invité de passage
 
Homme Daniel
Directeur commercial
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : Belgique

Informations professionnelles :
Activité : Directeur commercial
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 3
Points : 3
Par défaut livre

Bonjour

Voici les 2 scripts corrigés en fonction des conseils reçus (j'espère ne pas avoir fait d'erreur )
Les messages sont maintenant bien enregistrés sur la base.
Lorsque je teste le programme, le transfert vers livre.php ne se fait pas correctement j'ai le message:


Warning: Cannot modify header information - headers already sent by (output started at /homez.406/bmiweb/www/connexion.php:14) in /homez.406/bmiweb/www/ajout_livre.php on line 42

Y aurait il une incompatibilité avec la fonction return mise dans le programme connexion.php?

Par contre la liste des messages reçus est bonne, j'ai trouvé mon erreur ( fallait les 2 ++ devant$i):

for($i=0;$i<$nbmsg;++$i)
Fichiers attachés
Type de fichier : php ajout_livre.php (1,4 Ko, 2 affichages)
Type de fichier : php livre.php (1,2 Ko, 0 affichages)
danielbosman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 04h56   #9
Membre du Club
 
Inscription : juin 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 30
Points : 43
Points : 43
Salut,

Il y a quelque chose qui s'affiche dans connexion.php à la ligne 14.

s'il n'y a pas de echo / print (ou autre dans le style) dans ce fichier ou que la ligne 14 est la dernière, vérifie qu'il n'y a aucune ligne vide après le ?> il ne faut pas non plus d'espace, tabulation, ni aucun caractère "blanc".

Pour que header fonctionne il ne faut aucun affichage avant.

J'ai rapidement regardé ton code :
- tu devrait utiliser <?php et non <? car ce n'est pas la configuration par défaut de php (php5)
- tu ne devrait plus utiliser ereg_* qui sont "dépcréciée" en php5
- regarde bien les lien de Stealth35 concernant la base de donnée c'est très important, ton code permet les injections SQL si tu ne modifie pas.


@+
moogli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 08h55   #10
Invité de passage
 
Homme Daniel
Directeur commercial
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : Belgique

Informations professionnelles :
Activité : Directeur commercial
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 3
Points : 3
Bonjour
Super ! Merci des conseils reçus. Cela fonctionne, reste simplement la mise en page à améliorer.
J'avais effectivement une ligne vide à la fin du fichier connexion.php.

Quant on y pense j'ai cherché une semaine pour une ligne vide et deux++ qui manquaient dans une boucle for...Faut être mordu...

Une question de principe toutefois:
Comment si je supprime erag éviter que la messagerie coince si il y a / par exemple? J'ai fait le test simplement avec la date 23/03/2011 et la base n'a pas enregistré le message.
danielbosman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 09h02   #11
Membre du Club
 
Inscription : juin 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 30
Points : 43
Points : 43
utilise les fonctions preg_*, dans ce cas preg_replace, en lieu et place des ereg_*

pour la date, si tu utilise un champ de type date c'est normal vue que le format que tu utilise est le format français et non anglo-saxon (Y m d).


@+
moogli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h41.


 
 
 
 
Partenaires

Hébergement Web