Page 1 sur 2
erreur:-S
Posté : 06 mai 2005, 14:31
par jojo
Bonjour
Il y a une erreur dans se script enfin... toute la page s'afiche mais quen j'envoi le contenue du formulaire, cela n'envoi rien dans la table
<html>
<head>
<title>°OoAAFgtnoO°</title>
<head>
<body>
<p>Bienvenue sur l'administeation des news:</p>
<fieldset><legend align="center">News</legend><form action="news.php" method="POST"/><p>
<input type="hidden" value="<?
$timestamp = time();
echo "date('d m y /a h/hi','".$timestamp."')";
?>" name="date"/>
<label>TITRE: <input type="test" name="titre" value="titre"/></label></br>
<label>Com: <textarea type="text" name="com" cols="20" rows="15">Votre commentaire</textarea></label></p>
<input type="submit" value="lancer la news"/></form></fieldset>
<?
if(isset($_POST['com']) and isset($_POST['titre']) and isset($_POST['date']))
{
if($_POST['com']!=null and $_POST['titre']!=null)
{
$titre=$_POST['titre'];
$com=$_POST['com'];
$date=$_POST['date'];
mysql_connect('localhost','root');
mysql_select_db("gtn");
mysql_query("INSERT INTO news value('','".$titre."','".$com."','".$date."')");
mysql_close();
echo 'news envoyer';
}
else
{
echo 'REMPLISSER LES CHAMP';
}
}
?>
</body>
<html>
Posté : 06 mai 2005, 14:33
par iclo
Décidement tu ne sais pas lire ou bien te moques-tu des membres de ce forum ???
Posté : 06 mai 2005, 18:36
par fab
un peu de politesse ne te ferais pas de mal...
c'est quoi ton message d'erreur ?
si tu nous donnes rien on ne pourras pas t'aider ....
Posté : 06 mai 2005, 19:03
par Cyrano
jojo, je vais faire preuve de bonté et te mettre un formulaire qui devrait mieux fonctionner. J'ai pris le temps de regarder un peu ton code, au moins je note un effort certain dans l'écriture de code propre, c'est bien. Il te reste à acquérir la logique et là, c'est moins évident. Essaye de suivre le raisonnement, j'ai ajouté des commentaires. J'espère que ça te servira à quelque chose, sinon, je suis sûr que de toute façon d'autres y trouveront leur bonheur.
<html>
<head>
<title>°OoAAFgtnoO°</title>
<head>
<body>
<p>Bienvenue sur l'administration des news:</p>
<?
/* On vérifie si le bouton d'envoi a été cliqué */
if(isset($_POST['com']))
{
/* On vérifie que les champs du formulaire on correctement été remplis (tous les deux) */
if($_POST['com']!= "" || $_POST['titre']!= "")
{
$titre=$_POST['titre'];
$com=$_POST['com'];
$date=$_POST['date'];
mysql_connect('localhost','root');
mysql_select_db("gtn");
$enregistrement = mysql_query("INSERT INTO news value('','".$titre."','".$com."','".$date."')");
mysql_close();
/* On vérifie que l'enregistrement n'a pas renvoyé FALSE */
if($enregistrement)
{
echo("<p>news envoyer</p>\n");
}
else
{
echo("<p>Un incident s'est produit et l'enregistrement n'a pas eu lieu</p>\n");
}
}
else
{
/* Il reste des champs vides, on affiche le message d'avertissement et à nouveau le formulaire */
echo 'VEUILLEZ REMPLIR LES CHAMP VIDES';
?>
<form action="news.php" method="POST"/>
<fieldset>
<legend align="center">News</legend>
<input type="hidden" value="<? echo date('Y-m-d h:i'); ?>" name="date" />
<label>TITRE: <input type="test" name="titre" value="<?php echo($titre) ?>"/></label></br>
<label>Com: <textarea type="text" name="com" cols="20" rows="15"><?php echo($com); ?></textarea></label></p>
<input type="submit" value="Lancer la news"/>
</fieldset>
</form>
<?php
}
}
else
{
/* Le bouton d'envoi n'a pas été cliqué, on affiche le formulaire vide */
?>
<form action="news.php" method="POST"/>
<fieldset>
<legend align="center">News</legend>
<input type="hidden" value="<? echo date('Y-m-d h:i'); ?>" name="date" />
<label>TITRE: <input type="test" name="titre" value="titre"/></label></br>
<label>Com: <textarea type="text" name="com" cols="20" rows="15">Votre commentaire</textarea></label></p>
<input type="submit" value="Lancer la news"/>
</fieldset>
</form>
<?php
}
?>
</body>
<html>
Un détail, j'ai supposé que la date est au format DATETIME dans ta base et j'ai modifié le bafouillis dans ton champ caché.
Posté : 06 mai 2005, 19:09
par jojo
Il n'y a pas d'erreur : le formulaire envoyer la table sql reste vide pour temps j'ai beau vérifier c'est la bonne bdd la bonne table et le bonne ordre (bdd = gtn) (table=news) (ordre "id,titre,com,date")
voila le code :
<html>
<head>
<title>°OoAAFgtnoO°</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<head>
<body>
<p>Bienvenue sur l'administeation des news:</p>
<fieldset><legend align="center">News</legend><form action="news.php" method="POST"/><p>
<input type="hidden" value="<?
$timestamp = time();
echo "date('d m y /a h/hi','".$timestamp."')";
?>" name="date"/>
<label>TITRE: <input type="test" name="titre" value="titre"/></label></br>
<label>Com: <textarea type="text" name="com" cols="20" rows="15">Votre commentaire</textarea></label></p>
<input type="submit" value="lancer la news"/></form></fieldset>
<?
if(isset($_POST['com']) and isset($_POST['titre']) and isset($_POST['date']))
{
if($_POST['com']!= null and $_POST['titre'] != null and $_POST['date'] != null)
{
$titre=$_POST['titre'];
$com=$_POST['com'];
$date=$_POST['date'];
mysql_connect('localhost', 'root');
mysql_select_db("gtn");
mysql_query("INSERT INTO news VALUES('','".$titre."','".$com."','".$date."')");
mysql_close();
echo 'news envoyer';
}
else
{
echo 'REMPLISSER LES CHAMP';
}
}
?>
</body>
<html>
excuser moi pour les faute je fait de mon mieux j'écrie mes message sur worde le plus souvent possible!...
Encore desoler...
iclo il ne faut non plus pas pousser

Posté : 06 mai 2005, 19:12
par Cyrano
Ce qui est probable jojo, c'est que dans ta table, tu dois avoir des champs en NOT NULL et si tu envoies des données vides, il n'enregistrera rien.
D'autre part, si tu envoies des données dans un format inapproprié, l'enregistrement sera refusé aussi.
Si ce que j'ai mis plus haut ne fonctionne pas, reviens avec la structure de ta table.
Posté : 06 mai 2005, 19:32
par jojo
Merci
Oui ton code marche à pare la date qui n’affiche que l’année mais c'st un petit probleme...
Qua tu vraiment modifier qui a arranger l’erreur?
Je viens de relire ton code et je ne trouve pas ce qui a résolue l’erreur.
Posté : 06 mai 2005, 19:36
par Cyrano
Je serais tenté de te dire : imprime ton code, imprime le mien et mets les deux feuilles l'une à coté de l'autre : tu verras toi-même les différences: il est important que tu découvres toi-même ce qui clochait dans ton code, sinon, tu referas les mêmes erreurs.
Une chose aussi : quand tu écris du code, mets une indentation pour te repérer beaucoup plus facilement et rapidement. Quand tout le code est collé à gauche, il est difficile de suivre et de trouver le début ou la fin d'une routine d'instructions.
Posté : 06 mai 2005, 20:03
par jojo
Voila le code, j'ai imprimer comme tu a dit j'ai modifier mon code il me semble jumeler au tien il y manque juste les commentaire et toute est a gauche (je ferai attention a sa sur mes prochain code

) pourtant...

j'en peux plus

J’ai pourtant relue ligne par ligne
<html>
<head>
<title>°OoAAFgtnoO°</title>
<head>
<body>
<?
if(isset($_POST['com']) and isset($_POST['titre']) and isset($_POST['date']))
{
if($_POST['com']!= "" || $_POST['titre'] != "")
{
$titre=$_POST['titre'];
$com=$_POST['com'];
$date=$_POST['date'];
mysql_connect('localhost', 'root');
mysql_select_db("gtn");
$enreg=mysql_query("INSERT INTO news VALUE('','".$titre."','".$com."','".$date."')");
mysql_close();
if($enreg)
{
echo '<p>news envoyer</p>';
}
else
{
echo 'ERREUR';
}
}
else
{
echo '<p>remplisser les champ</p>';
?><p>Bienvenue sur l'administeation des news:</p>
<form action="news.php" method="POST"/><p>
<fieldset>
<legend align="center">News</legend>
<input type="hidden" value="<?echo "date('d m y /a h/hi')";?>" name="date"/>
<label>TITRE: <input type="text" name="titre" value=<? echo ($titre);?>/>
</label></br>
<label>Com: <textarea type="text" name="com" cols="20" rows="15"><? echo($com)?></textarea></label></br>
<input type="submit" value="lancer la news"/>
</fieldset></p>
</form>
<?
}
}
else
{
?><p>Bienvenue sur l'administeation des news:</p>
<form action="news.php" method="POST"/><p>
<fieldset>
<legend align="center">News</legend>
<input type="hidden" value="<?echo "date('d m y /a h/hi')";?>" name="date"/>
<label>TITRE: <input type="text" name="titre" value="titre"/>
</label></br>
<label>Com: <textarea type="text" name="com" cols="20" rows="15">Votre commentaire</textarea></label></br>
<input type="submit" value="lancer la news"/>
</fieldset></p>
</form><?
}
?>
</body>
<html>
Posté : 06 mai 2005, 20:16
par Cyrano
Ce que je ne sais pas c'est si ton propre code corrigé fonctionne...

et sinon as-tu un message d'erreur ?
Posté : 06 mai 2005, 20:20
par jojo
Aucun message d’erreur a pare le mien « errore » quant php vérifie mysql_query(« INSERT INTO news value() »)
Ma table reste toujours vide je c’est plus ou donner de la tête
Posté : 06 mai 2005, 20:26
par Cyrano
Je viens de trouver, il y a un détail que je n'avais pas vu: comme quoi, il est important de bien écrire sans faire de fautes : dans la requête d'insertion, il faut mettre "VALUES" et non "VALUE"
Posté : 06 mai 2005, 20:34
par jojo
Bien malheureusement Value marche aussi bien

rajouter un S n'arrange rien

j'ai déjà essayer et je viens de réessayer de plus ton code marche et values est écrit sen S

c'est confu tout sa
Posté : 06 mai 2005, 20:45
par Cyrano
J'ai encore trouvé autre chose:
D'abord, je confirme, c'est VALUES AVEC un S
regarde la première alternative if() : la tienne :
if(isset($_POST['com']) and isset($_POST['titre']) and isset($_POST['date']))
J'ai encore laissé passer un truc : ton bouton submit n'a pas d'attribut name;
Ajoute un attribut name="envoi" et remplace la ligne ci-dessus par:
if(isset($_POST['envoi'])
Ensuite, tu n'as pas recopié correctement : regarde ton formulaire :
<input type="hidden" value="<?echo "date('d m y /a h/hi')";?>" name="date"/>
C'est quoi cette valeur d'attribut ?? tu appelles une fonction date entre guillemets, c'est pris comme une chaine de caractères et ça n'est plus au format approprié, donc, ça n'enregistre plus.
Ce que j'avais fait, c'est mettre la date au format AAAA-mm-jj hh:mn
Avec ton système, tu n'obtiens rien du tout ou plutot, tu essayes d'enregistrer "date('d m y /a h/hi')" tel quel.
Posté : 06 mai 2005, 20:55
par jojo
!!! sa marche !!!

le probleme venait de la date
Merci beaucoup c'est la 1er foi que j'ecrivai la date de cette maniere
en generale je fait
$date = date(H/hi);
echo 'Bienvenue il est'.$date.'.';

encore merci
