Upload de photos selon la catégorie d'inscrits

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Upload de photos selon la catégorie d'inscrits

par Truc » 16 mai 2006, 23:57

Salut,
Ce code est un peu obsolète tu ferais mieux d'en trouver un plus récent (au moins PHP4) soit effectuer les modifications.

Par exemple les données des formulaires doivent être récupérer avec les super globales $_POST et non plus directement l'utilisation d'une variable portant le nom du champ:
$prenom 
devient
$prenom = $_POST['prenom'];
de même pour le champ de type FILE
$pseudo_photo = $_FILE['pseudo_photo'];
sinon comment fait tu la différence entre les deux types de membres ?
une variable ? si oui tu peux adapter comme ceci:
$image = false;
if(exif_imagetype($pseudo_photo))
{
   if (is_writeable ("photo"))   
     $image = copy($pseudo_photo, "photo/$pseudo_photo_name"); 
}

//$image sera égal à "true" ou "false"
// si une image est dispo est l'opération s'est bien déroulée $image vaut "true" 
// s'il y a eu une erreur (ou pas d'image) $image vaut false donc message d'erreur sauf dans le cas ou la variable définisant le membre sans image est vrai.
if($image || $type_membre == "membre_sans_obligation_image") 
{
   print "Votre inscription à bien été enregistrée elle sera confirmée par l'administrateur<br><a href='index.php'>Retour à l'annuaire </a> ";

   //on insère le contenu du formulaire
   mysql_query("INSERT INTO pseudo    (id,date,civilite,prenom,nom,statut,batiment,etage,telephone,email,tel_fixe,tel_portable,fax,adresse_mail,membre_conseil,annee,derniere,pseudo_photo) VALUES ('','$date','$civilite','$prenom','$nom','$statut','$batiment','$etage','$telephone','$email','$tel_fixe','$tel_portable','$fax','$adresse_mail','$membre_conseil','$annee','$derniere','$pseudo_photo_name') ") or die ("erreur insert ".mysql_error());

   //et on referme la connexion
   mysql_close();
}
else
{
   // si pas une image
   echo "Ceci n'est pas une image !<br><a href='javascript:history.back(1)'>Cliquez ici pour revenir en arrière</a>";
} 
Tu devrais peut être commencer par quelques tuto avant d'attaquer l'upload.
site du zero par exemple

par prisma » 16 mai 2006, 12:25

Merci timide pour ta réponse.
si ça peut être plus clair, voici le code de la page inserer.php :
<?
if(empty($prenom) OR empty($nom))
{
	echo"Aucun champ ne peut rester vide.<br><a href='javascript:history.back(1)'>Cliquez ici pour revenir en arrière</a>";
	exit();

}

include "config.php3";
//on se connecte à la base de donnée
$dbconnect = mysql_connect($host,$login,$pass) or die ("erreur de connexion");
//on selectionne votre base
mysql_select_db($db,$dbconnect) or die ("erreur de connexion base");

//on défini une date
$date = date("d-m-Y");


if(exif_imagetype($pseudo_photo))
{
if (is_writeable ("photo"))
{
copy($pseudo_photo, "photo/$pseudo_photo_name");
print "Votre inscription à bien été enregistrée elle sera confirmée par l'administrateur<br><a href='index.php'>Retour à l'annuaire </a> ";

//on insère le contenu du formulaire
mysql_query("INSERT INTO pseudo (id,date,civilite,prenom,nom,statut,batiment,etage,telephone,email,tel_fixe,tel_portable,fax,adresse_mail,membre_conseil,annee,derniere,pseudo_photo) VALUES ('','$date','$civilite','$prenom','$nom','$statut','$batiment','$etage','$telephone','$email','$tel_fixe','$tel_portable','$fax','$adresse_mail','$membre_conseil','$annee','$derniere','$pseudo_photo_name') ") or die ("erreur insert ".mysql_error());
}
}

//et on referme la connexion
mysql_close();

if(!exif_imagetype($pseudo_photo))
{
// si pas une image
echo "Ceci n'est pas une image !<br><a href='javascript:history.back(1)'>Cliquez ici pour revenir en arrière</a>";
}


?>
Que faudrait-il modifier dans inserer.php pour que seuls les membres du conseil aient à uploader une photo ?

Désolée mais suis archi nulle... :oops:

par timide » 16 mai 2006, 08:57

Salut!
Esce que les membres du conseil sont obliger de remplir au moins un champs de la partis basse du formulaire?
Parce que si oui moi je dirait que si l'un de ces champs est remplis tu obliges l'upload de la photo mais si ces champs sont vides tu l'interdit.

En résumé oui je vais devoir modifier "inserer.php"! :D

Upload de photos selon la catégorie d'inscrits

par prisma » 15 mai 2006, 13:04

Bonjour.

J'ai trouvé ce forum hier en fouinant sur le net. Suis archi débutante en php :oops: :lol:

Voilà. J'ai trouvé un script sur le net à l'adresse suivante : http://pilotetest.free.fr/membre/ que j'ai trouvé très bien pour faire ce que je souhaitais : un annuaire pour le site de copropriété que je suis en train de créer.

Voici le formulaire d'inscription tel qu'il était au tout début : http://pilotetest.free.fr/membre/ins.htm

Je l'ai adapté en rajoutant des champs :

Code : Tout sélectionner

<form action="inserer.php" method="post" enctype="multipart/form-data"> <div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="42%" bgcolor="#415A8C" bordercolor="#FFFFFF"> <tr> <td width="40%"><font size="2" color="#FFFFFF">Civilité</font></td> <td><select name="civilite" size="1"> <option selected>-</option> <option>Mr</option> <option>Mme</option> <option>Mr et Mme</option> <option>Dr</option> </select></td> </tr> <tr> <td width="40%"><p align="left"> <font color="#FFFFFF" size="2">Nom *</font></p> </td> <td><p align="left"><font color="#FFFFFF" size="2"> <input type="text" size="40" name="prenom" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;"></font></p> </td> </tr> <tr> <td width="40%"><font size="2" color="#FFFFFF">Prénom *</font></td> <td><font color="#FFFFFF" size="2"> <input type="text" size="40" name="nom" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;"></font></td> </tr> <tr> <td width="40%"><font size="2" color="#FFFFFF">Statut</font></td> <td>&nbsp;<select name="statut" size="1"> <option selected>-</option> <option>propriétaire résidant</option> <option>propriétaire bailleur</option> </select></td> </tr> <tr> <td width="40%"><font size="2" color="#FFFFFF">Bâtiment</font></td> <td>&nbsp;<select name="batiment" size="1"> <option selected>-</option> <option>A</option> <option>B</option> <option>C</option> <option>D</option> <option>Parking seul</option> </select></td> </tr> <tr> <td width="40%"><font size="2" color="#FFFFFF">Etage</font></td> <td><font color="#000000" size="2"> <input type="text" size="15" name="etage" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></td> </tr> </tr> </td> <tr> <td colspan="2"> <p style="margin-top: 10px; margin-bottom: 10px" align="center"> <font size="2" color="#FFFFFF">Eléments qui seront mis en ligne si complétés</font></td> </tr> <tr> <td><font size="2" color="#FFFFFF">Téléphone</font></td> <td><font color="#000000" size="2"> <input type="text" size="20" name="telephone" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></td> </tr> <tr> <td><p align="left"><font color="#FFFFFF" size="2">Adresse E-mail</font></p> </td> <td><p align="left"><font color="#000000" size="2"> <input type="text" size="40" name="email" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></p> </td> </tr> </td> <td colspan="2">&nbsp;</td> </tr> <tr> <td colspan="2"> <p style="margin-top: 10px; margin-bottom: 0" align="center"> <font size="2" color="#FFFFFF">Eléments qui resteront confidentiels et ne seront pas affichés</font></p> <p style="margin-top: 0; margin-bottom: 10px" align="center"> <font size="2" color="#FFFFFF">&nbsp;mais utiles pour le Conseil Syndical.</font></td> </tr> <tr> <td valign="top"><font size="2" color="#FFFFFF">Téléphone fixe</font></td> <td><font color="#000000" size="2"> <input type="text" size="20" name="tel_fixe" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></td> </tr> <tr> <td valign="top"><font size="2" color="#FFFFFF">Téléphone portable</font></td> <td><font color="#000000" size="2"> <input type="text" size="20" name="tel_portable" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></td> </tr> <tr> <td valign="top"><font size="2" color="#FFFFFF">Fax</font></td> <td><font color="#000000" size="2"> <input type="text" size="20" name="fax" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></td> </tr> <tr> <td valign="top"><font size="2" color="#FFFFFF">Adresse E-mail</font></td> <td><font color="#000000" size="2"> <input type="text" size="40" name="adresse_mail" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></td> </tr> <tr> <td valign="top" colspan="2"> <p align="center" style="margin-top: 10px; margin-bottom: 10px"><font size="2" color="#FFFFFF">Eléments pour les membres élus au conseil syndical</font></td> </tr> <tr> <td valign="top"><font size="2" color="#FFFFFF">Première année d'élection</font></td> <td width="59%"><font color="#000000" size="2"> <input type="text" size="10" name="annee" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></td> </tr> <tr> <td valign="top"><font size="2" color="#FFFFFF">Année de la dernière élection</font></td> <td width="59%"><font color="#000000" size="2"> <input type="text" size="10" name="derniere" style="border: 1px solid #000000 font-family: Tahoma; font-size: 9pt;" tupe="text"></font></td> </tr> <tr> <td valign="top"><font size="2" color="#FFFFFF">Votre position dans le conseil syndical</font></td> <td width="59%">&nbsp;<select name="membre_conseil" size="1"> <option selected>-</option> <option>président</option> <option>vice-président</option> <option>membre actif</option> <option>membre suppléant</option> </select></td> </tr> <tr> <td valign="top" colspan="3"> <p style="margin-top: 10px; margin-bottom: 0" align="center"> <font color="#FFFFFF" size="2">Photo à joindre obligatoirement en format JPEG. </font></p> <p style="margin-top: 0; margin-bottom: 10px" align="center"> <font color="#FFFFFF" size="2">Le nom du fichier ne doit pas comporter d'espace ni d'accent.</font></tr> <tr> <td valign="top"><font color="#FFFFFF" size="2">Photo *</td></font> <td> <input type=hidden name=MAX_FILE_SIZE value=50000000000> <input type="file" size="20" name="pseudo_photo" style="border: 1px solid #000000"> </td></td> <td width="65%">&nbsp;</td> </tr> <tr> <td colspan="2"><p align="center"><input type="reset" name="retablir" value="- Retablir -" style="border: 1px solid #000000"> <input type="submit" name="submit" value="- S'inscrire -" style="border: 1px solid #000000"></p> </td> </tr> </table> </center></div><p align="center"><font color="#FFFFFF" size="2">* Les champs précédés d'une (*) sont obligatoires. Merci de les compléter</font></p> <p align="center"><font size="2" color="#FFFFFF"><a href="index.php"> <font color="#FFFFFF">Retour à l'annuaire</font></a></font><br> </p> </form>
Dans cet annuaire, les inscrits seront de 2 catégories : ceux qui seront élus au Conseil Syndical et ceux qui ne le seront pas. Les données sont recueillies dans "inserer.php" qui sert à alimenter une base de données.

Quand j'ai téléchargé puis installé ce script, j'ai remarqué que pour que l'inscription à l'annuaire soit validée, il fallait obligatoirement que le champ "photo" soit complété par celui qui souhaitait s'inscrire : donc upload obligatoire d'une photo.

Le formulaire tel que je l'ai modifié contient 3 parties. Il se trouve ici : http://www.sevben-telesecretariat.com/t ... pe/ins.htm

Voici mes questions :

Le caractère obligatoire concernant l'upload de la photo doit exister mais seulement pour la partie basse du formulaire (seuls les membres du conseil syndical devront uploader une photo) et non pas pour l'ensemble du formulaire comme ça l'est actuellement.

Pourriez-vous m'indiquer s'il est possible de faire cela ? Quelle partie du code du formulaire d'inscription devrais-je modifier ?

Faut-il faire une requête et, si oui, de quelle manière ? Devrais-je obligatoirement modifier les autres pages php qui sont "inserer.php", "index.php" et la partie admin ?

Merci à l'avance pour votre aide et bravo pour ce forum. :D