Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 29/06/2006, 23h49   #1
Invité régulier
 
Lycéen
Inscription : mars 2006
Messages : 21
Détails du profil
Informations personnelles :
Âge : 21
Localisation : Maroc

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2006
Messages : 21
Points : 7
Points : 7
Par défaut [Conception] Problème avec l'écriture dans une BDD [Script de news]

Salut !

Je fais mes premiers pas dans le monde du développement Web, et je dois déjà avouer que c'est beacuoup plus fun

Bref

Je viens de rencontrer un problème contre lequel je lutte depuis 1 journée
Je voudrais faire un scripts de news pour mon futur site, pour me faciliter la tâche, en utilisant les bases de données.
J'essaie de faire un test .Je créée une table news, et mets 3 champs : ID(INT auto-increment), titre (longtext), contenu (longtext).
Je créée une page contenant 1 champ de texte et une zone de texte, puis le formulaire envoie le tout à une autre page ecriture.php en POST qui est censée récupérer les 2 variables, et les écrire dasn la base de données.
Voici le problème : si l'une des 2 informations est trop longue, rien n'est écrit (mais alors DU TOUT, même pas des champs vides) dans la BDD.

Quelqu'un pourrait-il m'expliquer pourquoi ? Merci
NeuroGen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2006, 00h01   #2
Membre régulier
 
Avatar de Bobybx
 
Inscription : avril 2005
Messages : 121
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : avril 2005
Messages : 121
Points : 91
Points : 91
Envoyer un message via MSN à Bobybx
sans code, c'est dur

Es-tu sûr de bien récupérer les variables dans ton ecriture.php (genre un ptiti echo après traitement pour voir leur contenu)
Si ces variables ont le bon contenu, alors c'est ta requete de mise à jour de BDD qui plante
Mais sans code, on ne peut deviner la solution
Bobybx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2006, 00h23   #3
Invité régulier
 
Lycéen
Inscription : mars 2006
Messages : 21
Détails du profil
Informations personnelles :
Âge : 21
Localisation : Maroc

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2006
Messages : 21
Points : 7
Points : 7
C'est vrai c'est un peu facile de ma part de vous donner le rpoblème comme ça

Voilà le code, il y a 2 pages, une page envoi qui envoie les informations, une autre qui els récupère et qui les écrit ds la BDD :


PAGE D'ENVOI DES DONNEES :
======================

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title><head>
<body>

<p class="Style1" align="center">ECRITURE DE NEWS </p>
<p class="Style1" align="center">&nbsp;</p>
<form id="form1" name="form1" method="post" action="ecriture.php">
Titre de la news :<br />
<label>
<input type="text" name="titre" maxlength="30" size="80"/>
</label>
<p>Contenu :<br />
<label>
<textarea name="contenu" rows="18" cols="150"></textarea>
</label>
</p>
<p>&nbsp;</p>
<p>
<label>
<input type="submit" name="Submit" value="Valider" />
</label>
</p>
</form>
<p align="left" class="Style2"><br />
<br />
</body>
</html>



PAGE DE RECEPTION ET D'ECRITURE :
===========================


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>


<p>
<?
$titre = $_POST["titre"];
$contenu = htmlentities($_POST["contenu"]);
print $titre."<br>".$contenu ;

mysql_connect('localhost','root','');
mysql_select_db("site");
mysql_query("INSERT INTO news VALUES('','".$titre."','".$contenu."')");
mysql_close();
?>
</p>
<p>&nbsp;</p>
<p><a href="envoi.php">Retour</a></p>
</body>
</html>



Voilà c'est à peu près tout merci d'avance
NeuroGen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2006, 18h02   #4
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 551
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 551
Points : 4 271
Points : 4 271
Le problème se situe au niveau des guillemets de la requête sql

Citation:
mysql_query("INSERT INTO news VALUES('','".$titre."','".$contenu."')");
remplace le par ceci:

Citation:
mysql_query("INSERT INTO news (titre,contenu) VALUES('". $titre. "', '".$contenu."' )");
1) Il ne faut pas de '' pour les valeurs du champ id étant donné que ce sont des chiffres.

2) tu n'es pas obligé de mentionné le champ id dans ta requête insert -> ce dernier se remplira automatiquement étant donné qu'il est auto-increment.

3) je te conseille d'ajouter le nom des champs dans la requête insert pour avoir une meilleure visibilité.
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 16h34   #5
Invité régulier
 
Lycéen
Inscription : mars 2006
Messages : 21
Détails du profil
Informations personnelles :
Âge : 21
Localisation : Maroc

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2006
Messages : 21
Points : 7
Points : 7
Désolé mais ça ne marche toujours pas ...

Je crois que c'est du àa la longueur du texte ...
NeuroGen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 18h13   #6
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 551
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 551
Points : 4 271
Points : 4 271
As-tu un erreur qui s'affiche sur ta page?

Pourrais-tu modier la partie correspondante de ton code par celle-ci
Code :
1
2
3
4
 
mysql_connect('localhost','root','') or die("Connexion: ". mysql_error());
mysql_select_db("site") or die("Sélection db: " . mysql_error()) ;
mysql_query("INSERT INTO news VALUES('','".$titre."','".$contenu."')") or die ("Execution du query: " . mysql_error());
Et nous communiquer les éventuelles erreurs qui pourraient apparaître.
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2006, 19h08   #7
Invité régulier
 
Lycéen
Inscription : mars 2006
Messages : 21
Détails du profil
Informations personnelles :
Âge : 21
Localisation : Maroc

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : mars 2006
Messages : 21
Points : 7
Points : 7
J'ai enfin trouvé

Le texte ne s'écrit pas dans la base de données à cause des apostrophes qui entravent la commande SQL

Il faut donc que j'écrive :

$contenu=addslashes($_POST["contenu"]);

Merci beacoup à tous
NeuroGen 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 00h13.


 
 
 
 
Partenaires

Hébergement Web