conception de sites :

- formulaire d'annonce

Site gratuit de petites annonces autos
occasion Volkswagen
Autres messages sur des sujets similaires :
Création de formulaire chez FREE
Formulaire et variable en javascript
Formulaire en php
formulaire script livre d'or
Formulaire envoyé par mail
Cours HTML / Javascript / PHP disponibles :
Créer un formulaire en javascript



 Retour Site Honolulu  |  Nouveau sujet  |  Retour aux sujets  |  Chercher  |  Connexion    
 formulaire d'annonce
Auteur: sylvain
((---.ipt.aol.com)
Date: 21-08-2002 16:26
 messages postés sur  la création de sites [ msg ]
Vous avez tous vu le lien vers les pages d'annonce de ce site?
Et bien je cherche à faire quelque chose de similaire.

Mon problème, je n'arrive pas à uploader de photo ni à l'afficher. (les champs de texte sont bien renseignés et affichés).

j'ai une page nomée "inserer2.php"
qui comprends les champs de saisie.

et une page "phpannonce2.php"
qui affiche les résultats

voici le code de ma page nomée "inserer2.php"
- - - - - - - - - - - - - - - - - - - - - - -

<html>
<head>
<title>formulaire</title>
</head>
<body>
<form method="post" action="inserer2.php">
<B>Modèle:- - - - - -></B><input type="varchar" name="modele" size="30"><br>
<B>Année:- - - - - - -></B><input type="varchar" name="annee" size="4"><br>
<B>Kilometrage:- -> </B><input type="varchar" name="kilometrage" size="5">  KM<br>
<B>Couleur:- - - - -> </B><input type="varchar" name="couleur" size="20"><br>
<B>Description:- -> </B><textarea wrap="physical" rows="5" cols="30" name="description"></textarea><br>
<B>Prix:- - - - - - - -> </B><input type="varchar" name="prix" size="5">  €<br>
<form enctype="multipart/form-data" action="inserer2.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="200"><br>
<b>Photo: </B><input type="file" NAME="image"><br>
<input type="submit" name="submit" value="Insèrer dans la base">
</form>
<?
if ( isset ($modele) ) {
$db = mysql_connect('localhost','occas') or die ("erreur de connexion");
mysql_select_db('occas',$db) or die ("erreur de connexion base");
$date = date("d-m-Y");
mysql_query("INSERT INTO occasions VALUES ('$modele','$annee','$kilometrage','$couleur','$description','$prix','$image') ");
mysql_close(); }
?>
<br><br><br>
<p><a href="http://localhost/occas2/phpannonce2.php">visualiser la page d'annonce</a></p>

</body>
</html>

- - - - - - - - - - - - -
j'ai bien mis un textarea wrap="physical"...etc à la place de input type pour la partie description, mais à l'affichage sur la page phpannonce2.php, tout est sur une seule ligne. Je dois changer quelques choses sur ma page phpannonce2.php ?

Voici par ailleurs le code de ma page phpannonce2.php
- - - - - - - - - - - - - - - -- - - - -


<HEADER>
<TITLE>phpannonce</TITLE>
</HEADER>
<BODY> <div align="center"><center>

<?$db = mysql_connect('localhost','occas') or die ("erreur de connexion");
mysql_select_db('occas',$db) or die ("erreur de connexion base");
$req = mysql_query("SELECT modele,annee,kilometrage,couleur,description,prix,image from occasions");
print"<table>";

while ($resultat = mysql_fetch_array($req))
{print "<table border=2 width=600 bordercolor=#008000>
<tr>
<td ><B>Modèle :  </B>$resultat[modele]<br></td>
<td rowspan=6 width=300><B>Photo:</B>$resultat[image]<br><br></td>
</tr>
<tr >
<td ><B>Année :   </B>$resultat[annee] <br></td>
</tr>
<tr >
<td><B>Kilometrage :   </B>$resultat[kilometrage]  Km<br></td>
</tr>
<tr >
<td ><B>Couleur :   </B>$resultat[couleur]<br></td>
</tr>
<tr >
<td ><B>Description :   </B>$resultat[description]<br></td>
</tr>
<tr >
<td ><B>Prix :   </B>$resultat[prix]   Euro<br></td>
</tr>
<br><br>

";
} print"</table>";
mysql_close();
?>
</center></div>
</body>
</html>
- - - - - - - - - - - - -- - - - --

Que dois-je modifier et ou dois-je l'inserer sur cette seconde page pour que mon image s'affiche?

Je suis aussi en train de plancher sur le moyen de supprimer une annonce, mais je ne veux pas que l'on puisse le faire à partir de la page ou s'affiche les annonces. Sur ce point là, je fouille aussi dans les divres tutoriaux que je trouve, mais si vous avez des conseils à me donner...


J'ai eu des bribes de réponses dans des forums, mais elles ne tiennent pas forcément compte du code actuel de mes pages, du coup, je ne sais pas ce qu'il faut retirer ou bien ou ajouter ce que l'on me dit.

C'est peut etre basique, mais je débute, merci d'avance.

Je pense que ce script risque d'interesser pas mal de gens.

Et encore un grand BRAVO au webmaster d'honolulu pour sa capacité à nous simplifier l'incompréhensible.

Répondre à ce message
 
 Re: formulaire d'annonce
Auteur: honolulu
((---.ipt.aol.com)
Date: 21-08-2002 17:05
 messages postés sur  la création de sites [ msg ]
Salut,
avant tout, tu dois créer un répertoire IMAGE_CLIENT (attention à la casse)...
juste un truc : avec mysql, habituellement, une requete est comme ceci :
$requete = "INSERT INTO ta_table (pseudo,mail,comment,date,heure) VALUES ('$pseudo','$mail','$comment','$date','$heure')";
et en html : on met habituellement <input type="text"> pas type="varchar" mais bon si ça marche :o))

dans la première page,
-- pour résoudre ton souci de textarea sur une seule ligne tu inclus ceci dans ton code php (avant ta requête d'insertion):
$description=nl2br($description);

-- pour l'upload à proprement parler, tjs dans la première page, tu mets ceci :
srand((double)microtime()*1000000);
$sort=rand(1,9999);
$extension=substr($image_name,strrpos($image_name,"."));
$nom_image=$pseudo.$sort.$extension;
copy($image,"IMAGE_CLIENT/".$nom_image);

-- dans ta requête d'insertion, tu remplaces $image par $nom_image

dans la deuxième page,
pour pas de confusion >> si ton champ dans ta table s'appelle bien 'image',
--dans ta requête d'affichage, tu remplaces print "$resultat[image]"; par
print "<img src='IMAGE_CLIENT/$resultat[image]'>

pour supprimer un enregistrement, pour y arriver c'est avec la fonction mysql DELETE mais c'est + simple si tu as créé aussi un id unique auto-increment pour chaque ligne d'enregistrement... ($requete=DELETE FROM ta_table WHERE id='un_numéro _d'enregistrement';

bon voilà, je te laisse essayer tout ça, tiens moi au courant :o)

Répondre à ce message
 
 Re: rectif...
Auteur: honolulu
((---.ipt.aol.com)
Date: 21-08-2002 17:24
 messages postés sur  la création de sites [ msg ]
dans la partie upload "$nom_image=$pseudo.$sort.$extension;" $pseudo n'a rien à voir avec ton script (j'ai fait un copier-coller d'un des miens :o)) donc tu remplaces $pseudo par $modele... ou $pseudo si tu as un tel champ dans ton formulaire..... j'en ai pas vu, ce qui me fait penser que tes utilisateurs vont rester dans l'anonymat ??

Répondre à ce message
 
 Re: formulaire d'annonce
Auteur: sylvain
((---.ipt.aol.com)
Date: 21-08-2002 17:56
 messages postés sur  la création de sites [ msg ]
Je m'y met et je te tiens informé

Répondre à ce message
 
 Re: formulaire d'annonce
Auteur: sylvain
((---.ipt.aol.com)
Date: 21-08-2002 19:09
 messages postés sur  la création de sites [ msg ]
1/ quand je mets <input type text sur ma page, ca marche. Mais si je mets text au lieu de varchar dans ma table,
j'ai un message "something is wrong in your syntax...... quand je veux l'enregister. donc j'ai changé dans la page, mais pas dans la table.



2/Si je remplace ce que tu m'as écrit, soit:
srand((double)microtime()*1000000);
par:
$rand..........
j'ai l'erreur suivante
Fatal error: Call to undefined function: () in c:\easyphp\www\occas2\inserer2.php on line 24

la ligne 24, c'est justement $rand.........


si je laisse srand... comme tu l'as écrit, j'ai l'erreur


Warning: Unable to create 'IMAGE_CLIENT/bbb8714': No such file or directory in c:\easyphp\www\occas2\inserer2.php on line 28

la ligne 28, c'est:
copy($image,"IMAGE_CLIENT/".$nom_image);

voici l'ensemble du code de ma page

- - - - - - - - -

<html>
<head>
<title>formulaire</title>
</head>
<body>
<form method="post" action="inserer2.php">
<B>Numéro: - - - - - ></B><input type= "int" name="id" size="3"><br>
<B>Modèle:- - - - - -></B><input type="text" name="modele" size="30"><br>
<B>Année:- - - - - - -></B><input type="text" name="annee" size="4"><br>
<B>Kilometrage:- -> </B><input type="text" name="kilometrage" size="5">  KM<br>
<B>Couleur:- - - - -> </B><input type="text" name="couleur" size="20"><br>
<B>Description: - -> </B><textarea wrap="physical" rows="5" cols="30" name="description"></textarea><br>
<B>Prix:- - - - - - - -> </B><input type="text" name="prix" size="5">  €<br>
<form enctype="multipart/form-data" action="inserer2.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="200"><br>
<b>Photo: </B><input type="file" NAME="image"><br><br><br>
<B>Validation:- - - - - - - -> </B><input type="submit" name="submit" value="Insèrer dans la base">
</form>
<?
if ( isset ($modele) ) {
$db = mysql_connect('localhost','occas') or die ("erreur de connexion");
mysql_select_db('occas',$db) or die ("erreur de connexion base");
$date = date("d-m-Y");
$rand((double)microtime()*1000000);
$sort=rand(1,9999);
$extension=substr($image_name,strrpos($image_name,"."));
$nom_image=$modele.$sort.$extension;
copy($image,"IMAGE_CLIENT/".$nom_image);
mysql_query("INSERT INTO occasions VALUES ('$id','$modele','$annee','$kilometrage','$couleur','$description','$prix','$nom_image') ");
mysql_close(); }
?>
<br><br><br>
<p>      <a href="http://localhost/occas2/phpannonce2.php">visualiser la page d'annonce</a></p>

</body>
</html>

- - - - - - --

3/pour la ligne
$description=nl2br($description);
que je dois mettre avant ma requete d'insertion, j'ai tout essayé sans succes.
Je ne la place peut etre pas au bon endroit?

Pour la partie suppression d'un enregistrement, je teste.


ps: sur la deuxiemme page, j'ai bien une petite croix rouge de photo qui s'affiche au lieu du chemin de mon fichier, donc ca avance.

Répondre à ce message
 
 Re: formulaire d'annonce
Auteur: honolulu
((---.ipt.aol.com)
Date: 21-08-2002 19:23
 messages postés sur  la création de sites [ msg ]
pour le 1/ ok, c'est normal "text" est réservé à html et varchar à mysql

pour le 2/ tu dis "Si je remplace ce que tu m'as écrit, soit:
srand((double)microtime()*1000000);
par: $rand.......... j'ai l'erreur suivante Fatal error: Call to undefined function: () "
>>>>>>>>>> je comprends pas .... il n'y a rien à remplacer srand reste srand, c'est pas $rand...

l'erreur "Warning: Unable to create 'IMAGE_CLIENT/bbb8714': No such file or directory in c:\easyphp\www\occas2\inserer2.php on line 28" signifie que tu n'as pas créé le répertoire IMAGE_CLIENT (celui qui va accueillir tes images....)

pour le 3/ mets "$description=nl2br($description); " avant la requête d'affichage, ça devrait aller mieux :o))

Répondre à ce message
 
 Re: formulaire d'annonce
Auteur: sylvain
((---.ipt.aol.com)
Date: 22-08-2002 10:51
 messages postés sur  la création de sites [ msg ]
MERCI MERCI !!!

Les photos s'affichent!!! youpi youpi!!

Par contre, voici les problèmes encore non résolus.

1/ Tu vas me prendre pour un crétin, mais mon histoire de texte sur une seule ligne ne va pas mieux :o(
Je pense que je ne place pas ton code au bon endroit.
J'ai pourtant essayé un peu partout...
Quand tu me dit "avant ta requete d'affichage",
c'est bien sur la deuxiemme page, entre:
mysql_select_db('occas',$db) or die ("erreur de connexion base");

et

$requete = mysql_query("SELECT id,modele,annee,kilometrage,cou.......

2/ Par rapport à l'anonymat des visiteurs, tu as tout compris.
En fait, j'essaye de faire tout ce bingz pour un ami qui a un site et qui veut, entre autre, pouvoir vendre quelques motos d'occasion.
Il ne connait pas grand chose à la réalisation d'un site, et je veux lui ajouter des pages lui laissant la possibilité de saisir ses annonces lui même.
Il n'y a donc que lui qui aurait acces a la page d'insertion d'annonce.

J'ai fait ce que tu m'as dit et j'ai ajouté une colonne "id" dans ma table.
Cette colonne s'incrémente toute seule.
(je ne comprends toutefois toujours pas pourquoi sur ma deuxiemme page l'ordre d'apparition des annonces ne se fait pas par id croissante, mais bon...)

Mon soucis actuel, c'est que j'aimerai créer une page ou il peut rentrer lui même l'id qu'il désire et cliquer sur un bouton pour effacer l'annonce concernée.

et la, et bien je patouille à mort...

ps: Une fois que j'en aurais fini avec ce truc, ce serait peut être une bonne idée de laisser ce code ouvert à tous, non?

Répondre à ce message
 
 Re: formulaire d'annonce
Auteur: honolulu
((---.ipt.aol.com)
Date: 22-08-2002 11:28
 messages postés sur  la création de sites [ msg ]
Bon ben tant mieux :o)
pour le 1/ oublie nl2br et essaye ceci avant ta requête d'affichage :
$resultat['description']=htmlentities($resultat['description']);
$resultat['description']=str_replace("\r","<br>",$resultat['description']);

pour l'ordre d'affichage, vu que tu as un champ date essaye avec
"select.......... ORDER BY date DESC";
ou
"select.......... ORDER BY date ASC";
tu verras toi-même la différence entre les deux....
pour le code ouvert, il l'est déjà (jette un coup d'oeil à ma page d'accueil, rubrique fichiers.......)
A+

Répondre à ce message
 Retour Site Honolulu  |  Liste des Forums    

 Liste des Forums  |  Nouvel utilisateur ? Enregistrez-vous ici 
 Connexion
 Nom d'utilisateur:
 Mot de passe:
 Enregistrer mon profil:
   
 Mot de passe perdu ?
Écrivez votre adresse Email ou votre Identifiant ci-dessous et un nouveau mot de passe sera envoyé sur l'Email lié à votre profil.
phorum.org
Honolulu : créateur de site internet à Annecy et sur le web !