Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1637 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

[PHP]Problème if else if et connexion

n°1517006
lilougirl8
Posté le 20-02-2007 à 14:26:57  profilanswer
 

Reprise du message précédent :

Code :
  1. if (isset($_POST['login'])) //si utilisateur entre login
  2.    {
  3.    $login = $_POST['login']; //on defini login
  4.    }
  5. else
  6.    {
  7.    $login ="";
  8.    }
  9. if (isset($_POST['mot_de_passe'])) //Si utilisateur entre mot de passe
  10.    {
  11.    $mot_de_passe = $_POST['mot_de_passe']; //on définie mot de passe
  12.    }
  13. else    //Sinon vide
  14.    {
  15.    $mot_de_passe = "";
  16.    }


 
Bon j'ai fait tt bete

mood
Publicité
Posté le 20-02-2007 à 14:26:57  profilanswer
 

n°1517044
lilougirl8
Posté le 20-02-2007 à 14:48:19  profilanswer
 

bon apparement ça roule...content c'est mon 1er script...
bon alor j'ai ma page administration qui contient :  
 

Code :
  1. <?php
  2. session_start();
  3. if (isset($_SESSION['login'])) {
  4. ?>


 
Apparement ça marche quand je suis loggué ça passe sinon ç apasse pas
et j'ai créer un bouton déconnexion avec ça

Code :
  1. <?php
  2. session_start();//On récupère la session
  3. $_SESSION = array(); //On ecrase le tableau
  4. session_destroy(); //On détruit la session
  5. header("Location: admin.php" ); //On renvoi à la page administration
  6. ?>


 
apparement ça marche aussi quand clic et que je revien sur la page en direct j'ai l'erreur

n°1517278
Bob2024
...
Posté le 20-02-2007 à 20:42:41  profilanswer
 

C'est pas mal.
Au début de tes pages fait plutot ça :

Code :
  1. if (!isset($_SESSION['login']){
  2. header("Location : la_page_de_login.php" );
  3. }

n°1517286
lilougirl8
Posté le 20-02-2007 à 20:58:30  profilanswer
 

heu la_page_de_login.php = à la page que je souhaite afficher c'est ça que tu veux dire?
 
Sinonje commence le script de creation d'annonce,
    J'ai créer  la base de donnée,
    J'ai créer le formulaire
    j'ai réussi a enregistrer les variable via le formulaire,
 
Il me reste donc a beaucoup paufiner tout ça avec des condition pour rendre certain champs obligatoire (genre la ville)...  
et surtout le plus dur du plus dur... m'occuper de la partie photo !!!!

n°1517303
lkolrn
&lt;comment ça marche?&gt;
Posté le 20-02-2007 à 21:57:47  profilanswer
 

lilougirl8 a écrit :

heu la_page_de_login.php = à la page que je souhaite afficher c'est ça que tu veux dire?

Vi
 
Sinon à propos du champ obligatoire de la ville... Il va servir à quoi ?

n°1517314
lilougirl8
Posté le 20-02-2007 à 22:18:57  profilanswer
 

ben si je rentre un bien ya des champs qui seront obligatoire, je ne peut pa rentrer un bien si il n'a pas de ville  
 
unpeut comme les formulaire d'inscription avec les mail...
 
Par contre je vien de voir la, les checkbox c'est le bordel pour les recupérer les variables mutliples ds la BDD...
je vais chercher un peut pour voir

n°1517345
lkolrn
&lt;comment ça marche?&gt;
Posté le 21-02-2007 à 00:04:52  profilanswer
 

Explore, explore... Et profites-en pour revenir sur le code déjà produit dès que tu apprends sur quelquechose qui s'y rapporte. Pour l'instant c'est mieux, mais ça peut encore s'améliorer ;)

n°1517448
tsuki75
I belong to you my Lord !
Posté le 21-02-2007 à 10:39:11  profilanswer
 

Un conseil.
 
Tu devrais créer une méthode de connection. Ou simplement utilisé celle de la librairie de PEAR.
 
Dans ta table sql tu devrais aussi crypter tes mots de passes. Jette un coup d'oeil sur les sites web qui te parle d'injection. Ca pourrait être utile.


---------------
Mighty to save.
n°1517470
lilougirl8
Posté le 21-02-2007 à 10:57:35  profilanswer
 

qu'est ce que tu entend par methode de connection?
 
sinon la j'ai regarder donc pour checkbox...c'est compliqué (normal c'est mes début, j'ai pa encore la logique php)....
donc aparement il faut déja que ma checkbox se presente ainsi :
 

Code :
  1. <form action="testphp.php" method="post">
  2. <input type="checkbox" name="prestation[]" value="garage"> garage<br>
  3. <input type="checkbox" name="prestation[]" value="maison"> maison<br>
  4. <input type="checkbox" name="prestation[]" value="terrain"> terrain<br>
  5. <input type="checkbox" name="prestation[]" value="blabla"> blabla<br>
  6. </form>


 
Par contre je galere pour récupérer les réponse...
aparrement faudrait utilisé  
 
 
foreach ($prestation as $value)
{
echo' champs coché '".$value."';
}
 
 
 
je suis sur la bonne voie??

Message cité 1 fois
Message édité par lilougirl8 le 21-02-2007 à 10:57:57
n°1517487
FlorentG
Unité de Masse
Posté le 21-02-2007 à 11:15:28  profilanswer
 

lilougirl8 a écrit :

Code :
  1. <form action="testphp.php" method="post">
  2. <input type="checkbox" name="prestation[]" value="garage"> garage<br>
  3. <input type="checkbox" name="prestation[]" value="maison"> maison<br>
  4. <input type="checkbox" name="prestation[]" value="terrain"> terrain<br>
  5. <input type="checkbox" name="prestation[]" value="blabla"> blabla<br>
  6. </form>



Il est pas valide ton code, manque les labels, le submit et tout :

Code :
  1. <form action="testphp.php" method="post">
  2.     <div>
  3.         <input type="checkbox" name="prestation[]" id="pres1" value="garage"> <label for="pres1">garage</label><br>
  4.         <input type="checkbox" name="prestation[]" id="pres2" value="maison"> <label for="pres2">maison</label><br>
  5.         <input type="checkbox" name="prestation[]" id="pres3" value="terrain"> <label for="pres3">terrain</label><br>
  6.         <input type="checkbox" name="prestation[]" id="pres4" value="blabla"> <label for="pres4">blabla</label><br>
  7.         <input type="submit" value="Envoyer">
  8.     </div>
  9. </form>


Comme ça pas besoin de viser la mini-checkbox, on peut cliquer sur l'intituler, ça coche [:dawa]. Aussi on ne met jamais d'inputs à l'arrache dans un form, il faut toujours un conteneur (genre un div, un p, etc...).


Message édité par FlorentG le 21-02-2007 à 11:15:46
mood
Publicité
Posté le 21-02-2007 à 11:15:28  profilanswer
 

n°1517493
lilougirl8
Posté le 21-02-2007 à 11:20:32  profilanswer
 

je savais pas tien pour le div, ni pour le select avec checkbox je l'utilisait qu'avec les autre genre boite de texte....
 
Sinon ben je vai essayer deja d'afficher les valeur cocher dans une page ça sera deja bien...

n°1517755
lilougirl8
Posté le 21-02-2007 à 16:03:53  profilanswer
 

J'ai un ptit souci,  
j'ai reussi a récuperer les variables des checkbox, et a ecrire dans la base de donnée, mais le probleme c'est que chaque variable me créer un ligne, je voudrai quelle se mettent chacune a la suite c'est possible?
a moins que qu'il faille créer une nouvelle table?

n°1517916
FlorentG
Unité de Masse
Posté le 21-02-2007 à 18:58:29  profilanswer
 

Hein ? [:johneh]

n°1517927
lilougirl8
Posté le 21-02-2007 à 19:20:07  profilanswer
 

ah pas compri je crois lol ... je me sui mal exprimer...
 
donc j'ai créé un formulaire avec tout un tas de données (que je recupère en variables) pour créer un annonce
     comme : type de bien (villa, maison de village, appartement) => choix unique
                  prix...etc etc
 Et            .....prestations (garage, terrasse, double vitrage...) = >choix multiples
 
Donc j'ai bien reussi à recupérer ds la base de donnée toutes mes variables mais "prestations" (la checkbox) me pose un probleme :
 
car : toutes les checkbox ont le nom prestations[] comme tu me l'a inscrit un haut, mais que je les récupère chaque cases cochées me crées une nouvelle entrée dans la base donc si je coche garage, terrasse, FNR (ou autre) ben ça me crée 3 nouvelles entrés dans la base.
 
Moi je voulais que tout s'inscrive a la suite : une seule entrée avec garage, terrasse, FNR...
 
En cherchant je c pas si c'est faisable ou meme si après je pourrai exploiter les donnée...
 
ne serais t'il pas plus logique de créer une nouvelle table avec tout mes champs et faire des checkbox unique??


Message édité par lilougirl8 le 21-02-2007 à 19:22:18
n°1517932
FlorentG
Unité de Masse
Posté le 21-02-2007 à 19:24:58  profilanswer
 

Bien, là je crois qu'on franchit un point :D Sérieusement, ça te dirait pas de faire une formation complète de 6 mois dans les domaines suivants : HTML, CSS, JS, PHP, MySql ? [:dawak]
 
Ca serait tellement plus simple, parce que là en fait tu t'attaques sûrement à un truc un peu trop gros :( Là encore c'est le début, mais plus tu avancera, plus ce sera compliqué, plus ton truc risque de ressembler à un énorme bricolage instable impossible à modifier :(

n°1517945
lilougirl8
Posté le 21-02-2007 à 19:46:22  profilanswer
 

merci mais se serai sympa de me mettre sur la voie... plutot que de me décourager... ya bien un début a tout... c'est en forgeant qu'on deviens forgeront.. j'y met de la bonne volonté...

n°1518068
lkolrn
&lt;comment ça marche?&gt;
Posté le 22-02-2007 à 07:34:06  profilanswer
 

Il a raison. J'ai dis la même chose plus haut, ça va pas se faire en quelques jours...
M'enfin c'est une méthode de tout voir vite pour accumuler les connaissances et se familiariser avec les mécanismes et les pratiques, par contre ça nécessite de tout reprendre après.
 
Sinon : http://cyril-gruau.ftp-developpez.com/ConceptionBD.pdf
Y'a aucun rapport entre le choix multiple dans ta page et le nombre d'enregistrements (lignes) dans ta table (de bdd).
 
* Modèle simplifié : en haut tu as une interface en HTML (pour récupérer et/ou afficher des données), au milieu un traitement en PHP (pour les manipuler), et en bas une base de données (pour les stocker). PHP est capable de tout gérer si on le souhaite, depuis l'affichage jusqu'au requêtage des données dans la base.
 
Ici tu récupères les champs de ton interface HTML avec PHP d'un côté, et tu les insères toujours avec PHP dans ta base (MySQL je suppose) de l'autre. Comprend bien maintenant qu'entre ces 2 étapes (HTML -> PHP // PHP -> MySQL), comme indiqué dans le modèle simplifié*, tu manipules/traites tes données comme tu veux. Profites-en, c'est le seul moment où tu es maître à bord, en haut c'est l'utilisateur qui décide et en bas(e) tes données sont figées.
Rien ne t'oblige donc pendant ton traitement à construire 3 requêtes d'insertion pour tes 3 données à insérer (qui te donnent ici 3 enregistrements en base). Tu peux très bien ne construire qu'1 seule requête qui insère directement tes 3 données dans 1 seul enregistrement (1 seule ligne) en base. Ca dépend de ta base, s'il elle a été conçue pour recevoir effectivement 3 données du bon type par enregistrement, ou pas. (le chiffre 3 est un choix totalement arbitraire, n'importe quel entier positif pas trop grand marche aussi)
 
Je blablate, mais concrètement il faut que tu t'attardes sur la conception d'une base de données. Il serait également bon que tu modifies ton script d'identification à partir du modèle simplifié* (et d'une base bien ficelée), à savoir séparer le formulaire de son traitement. Tu crées un fichier pour chaque : dans le 1er tu mets ta partie affichage (formulaire HTML + bien souvent PHP), et dans le 2nd tu récupères et tu traites (PHP only, avec construction des requêtes SQL).

n°1518110
lilougirl8
Posté le 22-02-2007 à 09:24:44  profilanswer
 

Oui je vois je comprend vos conseil mais bon j'aimerai faire ça moi meme le temps j'en dispose ce n'est pas le probleme, je fais ça sur mon temps de disponible et la volonté aussi je l'ai...puis j'ai déja appris certaine chose comme quoi je peu peu etre y arrivé avec du temps et de la patience....
 
Concernant mes pages, je souhaite d'abord les réaliser c'est a dire que l'action que je souhaite faire MARCHE, ensuite je passe a la suivante, quand j'ai tout fini (et que tout marche sans bug) j'obtimise et je sécurise tout ça...car etant novice je peux pas sortir un code de pro tout fait du premiere coup et a chaque page je découvrirai des nouvelle technique...que je pourrais me servire sur les pages crées..
 
J'aimerai juste un conseil.... dans ma base de donnée elle est conçu comme ça :  
ID, type_bien , type_affaire, ...,prestation,annonce.
 
Je pense avoir fait une erreur en choisisant varchar pour prestations
 
Alor c'est quoi le mieu créer une nouvelle table contenant toutes mes prestations (il sera surement plus simple de les retravailler par la suite je me trompe? :  
garage, terrasse, piscine...
 
ou bien (j'ai decouvert ça je c pas si ça sert vraiment à ça) définir un nouveau champs de type SET avec tout mes choix ?
 

n°1518152
lkolrn
&lt;comment ça marche?&gt;
Posté le 22-02-2007 à 10:29:46  profilanswer
 

C'est possible avec SET ouais, par contre c'est pas forcément judicieux. Faudrait poster la liste de tous tes critères pour mieux voir.

n°1518172
tsuki75
I belong to you my Lord !
Posté le 22-02-2007 à 11:00:29  profilanswer
 

Comment t'expliquer ce qu'est une méthode...
Disons que c'est une fonction que tu appels à partir d'une classes.
 
C'est quoi une classe ? ... hum... La, il faudrait peut etre lire le cours sur la programmation orienté objet.
 
Par défaut, avec la bibliothèque PEAR, livré avec PHP, tu as déjà une classe et une méthode de connection que tu peux réutiliser.
 
Grossierement tu déclares ta classe, tu appels ta méthode de connection et le tour est joué.
 
Plus d'info sur PEAR : http://pear.php.net/
 
Sinon, quand tu fais une page formulaire que tu déclare en POST ou en GET, il faut récupérer les variables de ton formulaire.
 
En utilisant par exemple $_POST['variable'];
 
En supposant que dans ton formulaire en html, tu définis une variable "login" et une "password" qui envoi les donné sur "verif.php" par méthode "POST".
 
Dans ton fichier "verif.php" tu devra avoir :
<?php
 
// recuperation des valeurs des variables login et password
$login=$_POST["login"];
$password=$_POST["password"];
 
// puis par exemple tu pourrais les afficher
echo "Login saisie : $login<br />";
echo "Password saisie : $password<br />";
 
// ou sinon tu peux les stocker dans une base Mysql
// Je suppose que tu as déjà une méthode pour la connection et que celle-ci est appelé en amont.
 
$sql = "INSERT INTO person VALUES(login,password) , ($login,$password)"; // requete sql d'insertion dans la table person sur les champs login/password
$this->getsql($sql); // Appel d'une méthode de connection à mysql prédéfini en amont.
 
?>
 
 
Ceci est exemple pour t'expliquer le principe... A ne surtout pas à utiliser en production !


---------------
Mighty to save.
n°1518283
lilougirl8
Posté le 22-02-2007 à 13:27:23  profilanswer
 

donc la liste des criteres pour mon champs prestation  : ça se présente comme ça :  
garage, terrasse, abri, piscine, forage,...
 
Je n'ecris pas tout c'est inutle mais yen a environ une trentaine...
 
Si je comprend bien SET ça pourrait faire affaire mais après ça posera probleme quand je voudrai exploiter ces donnée...
 
car en fait je voudrait après pour afficher ça sous forme de <li></li> pour chaque prestations...
Je pense que je devrais plutot pencher vers la solution je créer une table contenant toute prestation en champs différents... comme ça si je veux récupéré garage par exemple ça sera plus simple
 
je me trompe?

n°1518290
lkolrn
&lt;comment ça marche?&gt;
Posté le 22-02-2007 à 13:37:31  profilanswer
 

Non.
 
Par contre si effectivement tu as beaucoup de critères dans les prestations, il est possible de les mettre à part pour simplifier, c'est moins le binz qu'une seule table avec moults attributs. Et tu noues la relation 1:1 (par le biais de l'ID unique), N prestations (=1 enregistrement) pour 1 annonce.
Après il faut typer au plus près tes attributs (les prestations), genre chaîne de caractères, entier, booléen, etc... en pensant d'abord aux valeurs maximales possibles pour chacun d'entre eux.
 
PS : pour SET il faut l'inclure dans toutes requêtes INSERT, UPDATE, SELECT, et c'est limité à 64 (?) éléments.

n°1518301
lilougirl8
Posté le 22-02-2007 à 14:02:00  profilanswer
 

d'accord bon j'ai bien compris le raisonnement et je suis pas tant a coté de la plaque que ça... c'est juste dur pour un novice :s... en tout cas je vous remercie vraiment de m'aider c'est  super sympa....
 
dans mes prestation normalement j'aurais que des chaines charactere... donc pour ça probleme résolut.
 
Dès que je peut je posterai une ebauche de code de test, j'ai créer une table de test avec 4 champs de prestation... pi jessayerai de rentré mes  données via PHP et le formulaire si j'y arrive.. ben gogogogo je continue...

n°1518728
lilougirl8
Posté le 23-02-2007 à 10:29:40  profilanswer
 

Code :
  1. <?php
  2. mysql_connect("localhost", "root", "" );// on se connecte à MySQL
  3. mysql_select_db("administration" );// on sélectionne la base
  4. ?>
  5.       <form action="testphp.php" method="post">
  6.           <div>
  7.               <input type="checkbox" name="prestation[]" id="pres1" value="garage"> <label for="pres1">garage</label><br>
  8.               <input type="checkbox" name="prestation[]" id="pres2" value="maison"> <label for="pres2">maison</label><br>
  9.               <input type="checkbox" name="prestation[]" id="pres3" value="terrasse"> <label for="pres3">terrain</label><br>
  10.               <input type="checkbox" name="prestation[]" id="pres4" value="blabla"> <label for="pres4">blabla</label><br><br>
  11.               <input type="submit" value="Envoyer">
  12.           </div>
  13.       </form>
  14. <?php
  15.            if (isset($_POST['prestation'])) //Si utilisteur post prestation  
  16.   
  17.     {
  18.         $prestation = $_POST['prestation'];  //on créer la variable creation
  19.    
  20.       foreach ($prestation as $key => $value) //on fait une boucle pour récupérer les valeur de la checkbox
  21.         {
  22.                    echo ''.$value.'<br>';
  23.          }
  24.             echo'<br>formulaire enregistré';//on envoi un message de confirmation
  25.         }
  26.  ?>


 
bon avec ça vous voyez comment se présente les choses...
J'arrive effectivement (après pas mal de recherche) a récupérer les valeurs des cases cochés avec la boucle "foreach"
donc apparement ça fonctionne comme ça :
//tant que "prestation" a une valeur  
//j'affiche la valeur...
 
Maintenent il faudrai que j'arrive a recupérer tout les valeurs enfin a les "distingués" pour pouvoir ensuite les enregistrée via la base de donnée dans ma nouvelle table qui se présente ainsi :  
Nom de table : prestation
ID (int)
garage(varchar 50)
terrasse(varchar 50)
terrain(varchar 50)
blabla(varchar 50)
 
voili voilou ou j'en suis

n°1518750
FlorentG
Unité de Masse
Posté le 23-02-2007 à 11:03:26  profilanswer
 

Attention au  

Code :
  1. if(isset($_POST['prestation'])) {


Je sais pas si tu coches rien, si prestation figure dans la requête (à vérifier). Le mieux dans ce cas est de tester le type de requête :

Code :
  1. if(strtolower($_SERVER['REQUEST_METHOD']) == 'post') {

n°1518768
lilougirl8
Posté le 23-02-2007 à 11:16:23  profilanswer
 

je comprend mon probleme mais j'arrive pas a la résoudre...grrr faut faire travaillé ses neurones et le pire c'est que je sais que je suis pas loin et que ça doit etre tout con...
Le probleme vient de mon script et de ma boucle...
pour chaque valeur (donc $value" ) entré il me créer un nouveau $value
mais comment distinguée ses $value d'un autre...je ne teste pas encore de les envoyer sur la BDD je sais le probleme qu'il y aura a l'avance, il me mettra une valeur par ligne... normal... il comprendra pas que chaque valeur sont "lié"...il faut que je trouve comme les rassembler...
j'ai essaye apres 'foreach...' de mettre  

Code :
  1. if ($value =='garage')
  2. {
  3. $garage = "Garage";
  4. }

 
 
et ainsi de suite mais le probleme est le meme ... normal je les distingue certe... mais ma boucle fais de ces valeur une nouvelle à chaque fois...  
donc si j'essai par la suite de faire un echo il me prend toujours la derniere valeur...normal aussi la derniere valeur entré est celle qu'il défini comme valeur ecristant puisque je suppose qu'elle ecrase les autres...

n°1518806
lilougirl8
Posté le 23-02-2007 à 12:11:54  profilanswer
 

j'y suis presque en cherchant j'ai découvert la fonction "implode"
 
Donc j'ai fais :  

Code :
  1. if(isset($_POST['prestation']))  //Si utilisteur post prestation  
  2.  {
  3.   $prestation = $_POST['prestation'];  //on créer la variable creation
  4.  
  5.   $donnee= implode ($prestation," " );
  6.   echo 'vous avez choisis : '.$donnee.'<br>';
  7.   mysql_query("INSERT INTO prestation (ID,garage) VALUES ('','".$donnee."')" );//on recupere le mot de passe et on le compare au login
  8.   }  
  9.  else{    
  10.   $prestation ="";  
  11.       //on envoi un message de confirmation
  12.         } ]


 
 
avec ça j'ai reussi en fait a faire ce que je voulais faire au début c'est a dire...mettre toutes es valeurs sur un seul champs...
mais je pense que ça sera chiant pour récupérer mes valeur...
il me reste plus qua tout séparer pour le metre ds la table...


Message édité par lilougirl8 le 23-02-2007 à 12:36:40
n°1519032
lilougirl8
Posté le 23-02-2007 à 16:50:57  profilanswer
 

Voila ou j'en suis, mes travaux avance, j'ai effectivement reussi a ecrire dans la base tout les critere "prestations" dans mon champs prestation (seul)...(que j'ai créer en tant que TEXT)
J'ai aussi reussi a récupérer les résultat et a m'en servir grace à implode et explode (j'ai par la meme occasion appris la notion de chaine)
donc... je recupere les donnée avec implode qui me crée une chaine,  
ensuite pour les recupéré je les remet en tableau, puis je les retransforme en chaine, je coupe la casse la chaine a chaque espace  
Avec ça j'ai reussi afficher ça sous forme de li.....
 
Effectivement ça marche, mais je pense peu etre meme si j'ai reussi qu'il est préférable d'enregistré tout ça sur une table différente avec pour chaque prestations un champs différents qui sera beaucoup plus exploitable (partant du principe ou je pourrait afficher que ceux qui me chante...)
Car la c'est bien j'afficher les prestation... mais si je ne veux pas afficher par exemple FNR, ou que je veu le mettre ailleur ... ben ça va pas le faire....
 
Donc moralité.. si quelqu'un peut m'aiguiller... :
Comment faire un sorte que mes case cocher aille dans le bon champs sachant que les case coché sont aléatoire?
par exemple :  
prestation[0] aura pour valeur garage
prestation[1] aura pour valeur picsine
prestation[2] aura pour valeur terrasse
...etc
Mais si d'autre case sont coché
 
prestation[0] aura pour valeur FNR
prestation[1] aura pour valeur double vitrage
prestation[2] aura pour valeur clim
 
Je c'est pas comment m'y prendre la....
car, après quand je vais ecrire ds ma table...dans prestation[1] j'aurai un coup garage, un coup FNR... etc..
 
Help me :)

n°1519571
lilougirl8
Posté le 25-02-2007 à 11:28:04  profilanswer
 

petit up si quelqu'un a une idée..?

n°1520712
lilougirl8
Posté le 27-02-2007 à 09:58:41  profilanswer
 

bon personne apparement,....bon j'ai tout de meme beaucoup avancé, finalement j'ai laisser tombé pour enregistrer chaque critere dans un champs...
Ce que j'ai fait :  
Je diviser en 2 mes prestations : intérieur et exterieur...finalement j'en ai pas 60 en tout mais environ 20.
J'ai créer 2 champs SET avec les criteres...
Et avec ça j'arrive facilement a les exploiter...pour l'utilisation que j'en ai.
La je commence la partie photo ça avance petit petit... j'ai reussi a transferer les photo avec $_FILES, et aussi a les redimenssion au passage (pour les miniatures) ça a l'air de marcher... on verra par la suite...la je sui en trin de faire en sorte a créer un dossier au nom de la photo pour les stocker plus facilement et les recupérer plus facilement...(surement en scanant le repertoire et en affichant tout ce qui s'y trouve?? je verrai ça)
Voila l'avancement de mes travaux de débutant...prise de tete parfois lol

n°1520989
lilougirl8
Posté le 27-02-2007 à 14:38:36  profilanswer
 

Voila une ebauche ....faut que j'améliore tout ça encore
 

Code :
  1. <form method="POST" action="testup.php" enctype="multipart/form-data">
  2.       <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
  3.       <fieldset>
  4.       <legend>Envoi de fichiers</legend>
  5.       <p><label for="photo">Photo :</label>
  6.   <input type="file" name="photo" /></p>
  7.       <p><label for="photo">Photo :</label>
  8.   <input type="file" name="photo2" /></p>
  9.  
  10.  
  11.   <p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
  12.       </legend>
  13.       </fieldset>
  14.       </form>
  15. <?php
  16.   if(isset($_FILES['photo']))//Si l'utilisateur post photo
  17.     {
  18.   $nom_original = $_FILES['photo']['name'];//on définie la variable nom
  19.   $nom_original_sans_extension = basename($nom_original,".jpg" );//on définie la variable nom sans extension
  20.          $chemin_miniatures = './photos_miniatures/';//chemin des miniatures
  21.   $chemin_villas = './villas/';// chemin des photos
  22.   $chemin_villas_newdir = './villas/'.$nom_original_sans_extension.'/';//chemin du nouveau dossier dans villas génerer dynamiquement
  23.   $chemin_photos_miniatures_newdir = './photos_miniatures/'.$nom_original_sans_extension.'/';// chemin du nouveau dossier sans photos miniatures génerer dynamiquement
  24.   $nom_temporaire = $_FILES['photo']['tmp_name'];//on définie la variable nom temporaire
  25.   $extensions = array('.png', '.gif', '.jpg', '.jpeg');//On crée un tableau avec les extensions autorisées
  26.   $extension_test = strrchr($_FILES['photo']['name'], '.');//on recupère l'extension pour la tester
  27.   $taille_maxi = 1000000;// taille maximum (en octets)
  28.   $taille = filesize($_FILES['photo']['tmp_name']);//Taille du fichier  
  29.   if(!in_array($extension_test, $extensions)) //Si l'extension n'est pas dans le tableau
  30.     {
  31.          $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';//on créer une variable erreur
  32.     }
  33.   if($taille>$taille_maxi)//Si La taille est trop grande   
  34.        {
  35.               $erreur = 'Le fichier est trop gros...';// on définit un erreur pour la taille
  36.               }
  37.     
  38.   if(!isset($erreur))//Si il n'y a pas d'erreur
  39.     {
  40.        mkdir( $chemin_villas.$nom_original_sans_extension,0777);
  41.     mkdir($chemin_miniatures.$nom_original_sans_extension,0777);
  42.    
  43.    
  44.        $source = imagecreatefromjpeg($nom_temporaire);//On crée l'image a partie de la source  
  45.            $destination = imagecreatetruecolor(179, 120); // On crée la miniature vide au nouveau format
  46.           $largeur_source = imagesx($source);//dimension image source
  47.            $hauteur_source = imagesy($source);//dimension image source
  48.            $largeur_destination = imagesx($destination);//dimension miniature
  49.            $hauteur_destination = imagesy($destination);//dimension miniature
  50.         
  51.            imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);// On crée la miniature
  52.  
  53.         imagejpeg($destination, $chemin_photos_miniatures_newdir.$nom_original); //on enregistre sous le nom original la photo
  54.    
  55.        $nom_original = strtr($nom_original,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  56.        $nom_original = preg_replace('/([^.a-z0-9]+)/i', '-', $nom_original);
  57.    
  58.        $upload = move_uploaded_file($nom_temporaire, $chemin_villas_newdir.$nom_original); //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
  59.     
  60.       if ($upload = true)
  61.     {
  62.     echo'Le fichier a été correctement uploader';
  63.     }
  64.     else
  65.     {
  66.      echo'c\'est pas bon';
  67.     }
  68.    }
  69.    else
  70.    {
  71.    echo $erreur;
  72.    }
  73.  }
  74. ?>

n°1521322
lilougirl8
Posté le 27-02-2007 à 23:02:00  profilanswer
 

J'ai beosin d'un conseil....voila tout marche :  
 

Code :
  1. <form method="POST" action="testup.php" enctype="multipart/form-data">
  2.       <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
  3.       <fieldset>
  4.       <legend>Envoi de fichiers</legend>
  5.       <p><label for="photo">Photo :</label>
  6.   <input type="file" name="photo" /></p>
  7.       <p><label for="photo">Photo :</label>
  8.   <input type="file" name="photo2" /></p>
  9.  
  10.   <p><input type="submit" name="envoi" value="Envoyer les fichiers" /></p>
  11.       </legend>
  12.       </fieldset>
  13.       </form>
  14. <?php
  15.   if(isset($_FILES['photo']))//Si l'utilisateur post photo
  16.     {
  17.   /*=======   Definition de toutes les variables =======================*/
  18.   $nom_original = $_FILES['photo']['name'];//on définie la variable nom
  19.   $nom_original_sans_extension = basename($nom_original,".jpg" );//on définie la variable nom sans extension
  20.   $nom_dossier = substr($nom_original_sans_extension, 0, -2);
  21.          $chemin_miniatures = './photos_miniatures/';//chemin des miniatures
  22.   $chemin_villas = './villas/';// chemin des photos
  23.   $chemin_villas_newdir = './villas/'.$nom_dossier.'/';//chemin du nouveau dossier dans villas génerer dynamiquement
  24.   $chemin_villas_newdir2 = './villas/'.$nom_dossier.'';
  25.   $chemin_photos_miniatures_newdir = './photos_miniatures/'.$nom_dossier.'/';// chemin du nouveau dossier sans photos miniatures génerer dynamiquement
  26.   $chemin_photos_miniatures_newdir2 = './photos_miniatures/'.$nom_dossier.'';// chemin du nouveau dossier sans photos miniatures génerer dynamiquement
  27.   $nom_temporaire = $_FILES['photo']['tmp_name'];//on définie la variable nom temporaire
  28.   $extensions = array('.png', '.gif', '.jpg', '.jpeg');//On crée un tableau avec les extensions autorisées
  29.   $extension_test = strrchr($_FILES['photo']['name'], '.');//on recupère l'extension pour la tester
  30.   $taille_maxi = 1000000;// taille maximum (en octets)
  31.   $taille = filesize($_FILES['photo']['tmp_name']);//Taille du fichier  
  32.   /*=======================================================================*/
  33.   /*===============  Definition des erreurs ===========================================*/
  34.   if(!in_array($extension_test, $extensions)) //Si l'extension n'est pas dans le tableau
  35.     {
  36.          $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';//on créer une variable erreur
  37.     }
  38.   if($taille > $taille_maxi)//Si La taille est trop grande   
  39.        {
  40.               $erreur = 'Le fichier est trop gros...';// on définit un erreur pour la taille
  41.               }
  42.    /*==================================================================================*/
  43.    
  44.      /*======================== Test si fichier existe ====================================*/
  45.   if(!isset($erreur))//Si il n'y a pas d'erreur
  46.     {
  47.        if (is_dir($chemin_photos_miniatures_newdir2))//Si le dossier existent déja  
  48.        {
  49.      if (is_file($chemin_photos_miniatures_newdir.$nom_original))//Si le fichier existe
  50.          {
  51.          unlink($chemin_photos_miniatures_newdir.$nom_original);//On supprime le fichier existant
  52.          }
  53.       }
  54.      else{
  55.        mkdir($chemin_miniatures.$nom_dossier,0777);//sinon on crée le dossier
  56.        }
  57.      if (file_exists($chemin_villas_newdir2))//Si les dossiers existent déja  
  58.         {
  59.         if (is_file($chemin_villas_newdir.$nom_original))//Si le fichier existe
  60.          {
  61.        unlink($chemin_villas_newdir.$nom_original);//On supprime le fichier existant
  62.        }
  63.      }
  64.      else{
  65.       mkdir( $chemin_villas.$nom_dossier,0777);//sinon on crée le dossier
  66.        }
  67.    /*===========================================================================*/
  68.    /*=========================   Creation de l'image    ==============================*/
  69.        $source = imagecreatefromjpeg($nom_temporaire);//On crée l'image a partir de la source  
  70.            $largeur_source = imagesx($source);//dimension image source
  71.            $hauteur_source = imagesy($source);//dimension image source
  72.        if ($hauteur_source > $largeur_source)//Si hauteur supérieur a largeur (donc format portrait)  
  73.           {
  74.           $destination = imagecreatetruecolor(120, 179); // On crée la miniature vide au nouveau format portait
  75.                 $largeur_destination = imagesx($destination);//dimension miniature
  76.                 $hauteur_destination = imagesy($destination);//dimension miniature
  77.           }
  78.            else
  79.         {
  80.           $destination = imagecreatetruecolor(179, 120); // On crée la miniature vide au nouveau format paysage
  81.                 $largeur_destination = imagesx($destination);//dimension miniature
  82.                 $hauteur_destination = imagesy($destination);//dimension miniature
  83.                }
  84.            imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);// On crée la miniature
  85.  
  86.         imagejpeg($destination, $chemin_photos_miniatures_newdir.$nom_original); //on enregistre sous le nom original la photo
  87.    
  88.        $nom_original = strtr($nom_original,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
  89.        $nom_original = preg_replace('/([^.a-z0-9]+)/i', '-', $nom_original);
  90.    
  91.        $upload = move_uploaded_file($nom_temporaire, $chemin_villas_newdir.$nom_original); //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
  92.     
  93.      /*==========================================================================================================*/
  94.     
  95.    }
  96.    else
  97.    {
  98.    echo $erreur;
  99.    }
  100.  }


 
Je veux juste savoir si je suis oblgier de copier le script pour autant de input=file ou est ce qu'il es possible de faire une boucle car je trouve que ça rique de faire lourd je voudrai en mettre 8 et le copier 8 fois je trouve ça bcp

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Probleme masterPageprobleme thread pthread_join
[Php] Indexation de document Pdf, Doc ou Xls sous PHP / MySQLJe cherche ce Script PHP
Probleme pour ouvrir POPUP avec IE et flash[PHP] Réponses à un questionnaire en ligne
problème compilation (link)[résolu] Probleme d'appel d'un objet dans ma classe
Probleme de différence firefox/ieProblème DATETIME US
Plus de sujets relatifs à : [PHP]Problème if else if et connexion


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR