Tuto des scripts PHP les plus demandés et des astuces. - PHP - Programmation
Marsh Posté le 12-12-2004 à 20:26:16
5 Comment utiliser les sessions et les cookies?
- Ecoute sale petit corbeau . Pour les sessions il y a plusieurs chose à faire.
Il faut placer obligatoirement la fonction en haut du fichier session_start() pour initialisé les sessions. Il est possible de placer des variables de tableau aussi. Il n'est pas possible de mettre une connexion à une base de données les ressources ne passes pas.
Code :
|
Code :
|
: Comme pour le cookie il ne faut pas qu'il est de sortie écran avant l'affectation d'une variable de session.
Pphpy !Comment utiliser les cookies?.
C'est simple petit morveux il faut utiliser la fonction setcookie .
Code :
|
il faut l'utiliser avant toute sortie écran c'est à dire pas 'echo' avant ou l'affichage d'erreur sinon bug:o.
Pour récupérer la valeur d'un cookie.
Code :
|
.
6 Comment gérer les dates en Php.
- Ecoute sale vermine, je vais t'expliquer comment ça marche . En php, les fonctions pour gérer date sont très complètes il y a de quoi faire. Voici ces élément.
Code :
|
: Attention le parametre format est sensible à la casse.
Voici les principaux format possible avec la fonction date() :
Avec ces éléments vous pouvez récupérer une date au format que vous voulez.
Il y a une fonction très utile pour récupérer une date au format SQL (datetime) sans prise de tête.
strotime()
Topic dédié Merci T509
Code :
|
7 Comment ouvrir une ou plusieurs connexion Mysql en même temps ?
- Et deux claque à l'ancienne tu veux pas aussi? Bon je sais pas pourquoi tu voudrais deux connexion en même temps mais bon je te donner la technique de la griffe du loup sale petit morpion .
Code :
|
Code :
|
8 Comment lister les tables d'une base de données ?(Astuce)
- Je vais te mettre de l'astuce dans ton derrière toi . Utiliser la fonction mysql_liste_tables().
Exemple
Code :
|
Il y a d'autre information qu'il est possible de récupérer comme par exemble :
. mysql_list_dbs // Liste les base de données sur le serveur Mysql
. mysql_list_fields // Les les champs d'une table.
Marsh Posté le 12-12-2004 à 22:40:18
9 Développer en mode bo gosse!
Avant il etait possible d'exploiter une variable directement à partir des paramètre d'une url de méthode GET, POST, FILE, SESSION, COOKIE.
Exemple :
Code :
|
Ceci est pareille pour récupérer une valeur d'un cookie, d'une session, d'un champ de formulaire.
Problème c'est que dans le code cela pouvait rendre confu et pas très lisible ainsi qu'un problème de sécurité assez importante. Voila pourquoi depuis un certain temps la version de php il n'est plus possible de récupérer des paramètres à la mode barbare. Il existe beaucoup d'hébergeur ayant le register_global à on pour rendre les anciens scripte compatible. Voici les variables permettant de récupérer les données :
Code :
|
Quel est l'intérèt de développer en affichant toutes les erreurs, parce que l'erreur de type:notice ne pose pas problème et bloque pas le script.
Question! Trouvez-vous logique et correcte ce bout de code?
Code :
|
Celui qui dit oui ben !...
Comparé-le avec celui-ci:
Code :
|
Dans le premier cas il va vous afficher une erreur de type notice dans le second, il retournera rien ça sera ok.
Dans le premier cas il y une condition sur une variable qui n'a pas été initialisée il test sur une variable qui n'existe pas. Php retourne une erreur disant que cette variable n'est pas initialisé.
développer en mode E_ALL peut poser quelque problème notament pour les variable venant d'un champ de formulaire en GET ou en POST. Si la valeur attendu n'est pas dans $_POST ou $_GET il retourne un notice. Pour contrer à cela il y a un moyen. Dans le champs de formulaire ou dans les parametre il faut initialiser les variable.
www.monsite.com/index.php?param1=0 [...] aram3=toto
www.monsite.com/index.php?param1=1 [...] 0¶m3=0
quand vous avez poster une page utilisé l'une de ces conditions
Code :
|
Si toute de fois vous êtes face à une impace vous pouvez mettre ceci @ devant. L'arobase permet d'empécher une sortie d'erreur, elle fonctionne aussi pour les fonctions.
Exemple :
Code :
|
- Je vois beaucoup de jeune corbak faire n'importe quoi avec les chaines de caractere. Voici ce qui me fait défriser les poils.
Code :
|
pitié quand je vois cela !...
Il faut faire ceci
Code :
|
Mais pourquoi ? , Simplement parce une chaine est une chaine faut pas mélanger les pommes de terres avec les carrotes . De plus c'est une mauvaise habitude car si vous voulez placer un tableau, une fonction vous allez avoir une erreur.
Code :
|
Parfois nous avons besoin de faire un retour à la ligne parce exemple lorsque nous générons du code HTML avec php.
Selon l'os cela ne fonctionne pas pareille, voici les deux méthode.
Code :
|
Vous prenez celui que vous voulez
Marsh Posté le 12-12-2004 à 22:49:07
Ouais, en payant plus cher ce serait pas possible d'avoir un ton plus neutre?
En tout cas pour l'idée
Marsh Posté le 12-12-2004 à 22:53:58
Ace17 a écrit : Ouais, en payant plus cher ce serait pas possible d'avoir un ton plus neutre? |
Je vise personne en prenant ce ton, c'est juste un brin d'humour de vieux
Marsh Posté le 12-12-2004 à 22:57:06
perso le ton ne me gene pas, je trouve ça plutot marrant
et c'est vrai que si ça évite d'avoir à répéter ces trucs basics comme on arrete pas de le faire depuis des lustres, ben je dis un grand BRAVO.
Marsh Posté le 13-12-2004 à 00:24:56
10 - Condition de frimeur
- Il y a plusieurs moyen de faire une condition.
Code :
|
La méthode 2 et 3 ne fonctionne que s'il y a une seul instruction dans la condition. Néanmoin il est pas recommandé d'utiliser ces derniers dans le cas ou vous travailler à plusieurs sur le projet, ceci peut entrainer une gène pour ceux qui ne sont pas habitué mais en tous cas vous serez un bête de frimeur au yeux des autres .
Code :
|
11 Pphpy Comment alterner les couleurs d'un tableau.
- Sale morpion j'ai déjà entendu cette question 1000 fois j'espère que ça sera la derniere fois.
Il y a deux moyen.
1 - Mode normal :
Code :
|
2 - Méthode pro en utilisant le modulo
Code :
|
Il y a quasi aucune différence.
12 - Pphpy! as-tu une méthode pour bien organiser son fichier?
- Très bonne question ma couille. Organiser un fichier est très important, pour soit et pour les autres afin d'avoir un vue claire sur son code surtout s'il y a un bug. Personnellement, j'ai une méthode pour organiser mon fichier il y en a peut être d'autre, vous pouvez les proposer je ferais une mise à jour avec le nom de l'auteur.
- 1 Methode Pphpy.
Moi personnellement mon fichier est divisé en deux grosse parties. Une partie pour le code pure Php la seconde uniquement du HTML.
Dans cette partie je place tout les scripts necessaire pour initialiser mes variable, la récupération des données venant du base de données, divers opération.
Le resultat d'une requettes SQL sont toute stockés dans un tableau puis ces données sont exploité dans la partie HTML.
Exemple :
Code :
|
- Pourquoi? de cette maniere toute vos requette sont placées au même endroit donc facilement repérable plutot que de le placer directement dans le tableau html. Aussi les données sont stocké donc peuvent être réutilisé pour d'autre traiment plutôt que de refaire une requette pour récupérer les mêmes information.
Voici comment j'organise mes fichiers. Par ordre hiérarchique.
Bien évidement selon les situations, l'ordre peut être différent.
Chaque partie est marqué par un commentaire bien visible. Afin de trouver facilement la partie que vous chercher en scrollant sur l'éditeur.
Code :
|
2- Méthode T509
Je suis partisan d'une chose : séparer le fond de la forme. c'est pour moi très mauvais (ne serait-ce qu'en débuggage) de mélanger HTML et PHP.
Pour bien d'organiser je conseille plutôt une organisation en plusieurs fichiers
cette méthode a plusieurs avantages : différencier le débug PHP, les corrections de mise en page et les modifications de config. De plus si demain, vous voulez changer la mise en page permet de simplement changer le template sans avoir à toucher le script qui est toujours valable.
Marsh Posté le 13-12-2004 à 05:48:57
13 Pphpy Comment faire une pagination avec Mysql?
-Ha voila une très bonne question . Lorsque j'étais débutant, j'avais réussi à faire une pagination avec des methode de calcule supra complexe. la dll Php a dù m'insulter à chaque qu'il devait parser cette page . Il y a une méthode simple mais faut faire les choses dans l'ordre.
1- SQL (Mysql).
Il y a un paramètre qui est bien utile dans mysql, qui est le LIMIT
Il y a deux paramètres.
param1 : A partir quel numéro d'enregistrement il va commencer
param2 : Combien d'enregistrement il va ressortir.
LIMITE param1,param2
Exemple :
Citation : SELECT id, nom FROM ma_table LIMIT 7,5. |
C'est simple, non?
Voici un code complet pour afficher des images.
Code :
|
Avec ça vous auriez normalement compris
Pour ceux qui veulent des liens de type:
[1-10][11-20][21-30] ...
Code :
|
Merci qui ?
Merci Pphpyyyyyy
Marsh Posté le 13-12-2004 à 07:03:51
14 - Pphpy! Comment éviter de se faire plomber une bd par un simple bitos?
Très bonne question .
- Nous le savons pas forcément mais il est très simple de blinder une base de données et d'énerver le webmaster qui doit gérer ces informations après.
Normalement quand il arrive le lundi matin pas très fresh, la tête dans le cul et qu'il s'aperçoit en regardant la partie admin du site qu'il gère plus de 10 000 nouveau client ou message et qu'en plus il y a eu un envoy d'email pour chaque enregistrement parce que le script prévient par email, ben là .
Le pire c'est que ce genre de chose peut être l'oeuvre d'un simple .Je ne vous dirais pas comment cela est possible car c'est pas le but mais avec du javascript c'est assez simple.
- Il y a aussi ceux qui peuvent vous faire planter votre base et de cette maniere récupérer le nom du fichier qui gère les opérations sur la base de donnée dans le cas ou vous n'avez pas coupé l'affichage des erreurs.
Ce genre de chose peut arrivé lorsque vous faite un contrôle des champs de formulaire simplement en javascript. C'est une grosse erreur, le javascript peut être desactivé, après il y a plus de contrôle possible des données qui vont rentrer en base. Sauf si vous utilisez document.formulaire.submit(); mais bon c'est pas conseillé.
Préféré un contrôle coté serveur, de plus cela peut être énèrvant les contrôles javascript avec l'alert. Imaginé qu'il y a un formulaire avec 20 éléments à remplire. Sur les 20, l'internaute a fait 10 fautes (gros boulet ), a chaque fois il va cliquer sur ok hop! une alerte et ceci 10 fois, cela finit par être enervant:fou: et peut partir. Autant faire un contrôle coté serveur puis retourner la page en indiquant ou il y a eu une erreur de saisie.
- Il y a aussi l'internaute qui est là sans mauvaise intention mais lorsqu'il post un formulaire clique plusieurs fois sur le bouton 'valider' parce que la page ne bouge pas, ce qui à pour action de valider plusieurs fois le formulaire.
Voici quelques petit conseil pour éviter ce genre de désagréments.
Exemple
Fichier 1
Code :
|
Fichier 2 traitement/mapage.php
Code :
|
Marsh Posté le 13-12-2004 à 07:48:15
15 - Pphpy Comment contrôler le bon formatage d'une adresse email ?
- Ecoute sale petit chameaux tu as raison de poser cette question .
C'est bête de perdre un client ou un contact à cause d'un mail formé.
Voici un script que j'ai pondu, elle est peut être pas parfaite mais il ronfle bien.
Code :
|
Methode courte avec les expressions régulières, merci Xav_
Code :
|
Marsh Posté le 13-12-2004 à 08:11:03
16 - Pphpy ! Tu peux me faire un script gratis stp ?
Marsh Posté le 13-12-2004 à 08:12:44
j'ai un peu plus court pour le test de formatage du mail:
Code :
|
Marsh Posté le 13-12-2004 à 08:16:26
Yes, comme je ne connais pas les expréssions régulière.
J'ai édité plus haut. Merci
Marsh Posté le 13-12-2004 à 08:30:08
17 - Un INSERT comme un UPDATE (Mysql) ?
Dit donc bébé sa te dit que je te fasse un insert into heuuu!...
Non je préfère le INSERT ma_table SET
Le saviez-vous ?
Les insert sont de cette forme.
INSERT INTO ma_table (mes_champs) VALUES (mes_valeurs)
Mais vous pouvez le faire a la forme update
INSERT ma_table SET (mes_champs = mes valeurs)
Marsh Posté le 13-12-2004 à 09:18:21
berceker united a écrit : 17 - Un INSERT comme un UPDATE ? |
Citation : |
Tu serais gentil de préciser le SGBD hein...
Marsh Posté le 13-12-2004 à 09:24:15
skeye a écrit :
|
Mysql. tu as testé sur quoi?
Marsh Posté le 13-12-2004 à 09:24:23
berceker united a écrit :
|
Je voudrais pas dire de conneries, mais là tu affiches que '.' et '..'
[edit]
Ah non même pas, puisque tu fais un test avec = au lieu de ==
Marsh Posté le 13-12-2004 à 09:27:30
Bon, remarques générales :
1) Tu parles de 'base de données' en général, alors que tu ne traites que mysql.
2) Tes scripts sont truffés de petites fautes...
[edit]
3) Fautes de français...
4) Je ne suis pas d'accord avec tout...par exemple la possibilité de mettre $truc dans une chaine de caractères délimitée par des " " est volontaire, pas de raison de faire autrement et d'alourdir avec un paquet de '.'
Marsh Posté le 13-12-2004 à 09:27:37
skeye a écrit : Je voudrais pas dire de conneries, mais là tu affiches que '.' et '..' |
Non en faite tu as raison j'ai oublié le !=
Marsh Posté le 13-12-2004 à 09:31:16
skeye a écrit : Bon, remarques générales : |
- Oui je parle de mysl quand je parle bd je vais pas m'étaler sur les autres ici c'est pour les newbiz. je vais commencer a parler d'oracle, sqlServern, Postgress.
- Taper du code dans un text area il y a mieu , regarde à quelle date le topic a été crée et les date des édite j'ai pas trop dormis d'ailleur je vais bientot y aller.
Marsh Posté le 13-12-2004 à 09:40:16
berceker united a écrit : |
Il y a un procédé magnifique sous tous les OS que je connais, ça s'appelle "copier/coller"...
Poster du code pour des newb. sans le tester auparavant, c'est mal.
Marsh Posté le 13-12-2004 à 09:45:53
skeye a écrit : Il y a un procédé magnifique sous tous les OS que je connais, ça s'appelle "copier/coller"... |
ça va leur apprendre à pas copier un code bêtement .
Il sagit pas de recopier un code mais de le comprendre sinon ça sert à rien que je donne des explications et c'est pas la meilleur façon d'apprendre.
J'ai pas de serveur sur ce pc mais le portable.
J'ai fais quelques corrections.
Marsh Posté le 13-12-2004 à 12:07:28
ReplyMarsh Posté le 13-12-2004 à 12:09:22
La "technique de la griffe du loup" !!!
qui consiste a utiliser deux handles au lieu d'un!!
Marsh Posté le 13-12-2004 à 15:01:13
skeye a écrit : Bon, remarques générales : |
C'est une pure mauvaise habitude de placer des variables dans une chaine de caractère. Php est l'un des rares à accepter ce genre de chose.
Marsh Posté le 13-12-2004 à 15:02:52
berceker united a écrit : C'est une pure mauvaise habitude de placer des variables dans une chaine de caractère. Php est l'un des rares à accepter ce genre de chose. |
...et pourquoi une mauvaise habitude?
C'est prévu par le langage, ça fonctionne, et dans certains cas ça allège l'écriture...
Marsh Posté le 13-12-2004 à 15:12:01
skeye a écrit : ...et pourquoi une mauvaise habitude? |
non ça allège en rien l'écriture cela peut même être déroutant. Php est obliger de parser la chaine pour savoir s'il y a une variable. d'ou la différence entre "" et ''
Si tu savais le nombre de chose prévus par php et qui ne sont pas logique. c'est juste qu'il n'est pas logique de placer à même une chaine de caractère, une variable.
C'est juste une convention global des languages. On reproche souvent que le php pousse à faire développer n'importe comment parce qu'il laisse faire n'importe quoi.
Marsh Posté le 13-12-2004 à 15:18:25
berceker united a écrit : non ça allège en rien l'écriture cela peut même être déroutant. Php est obliger de parser le code pour savoir s'il y a une variable. |
Trop dur pour lui...
Si tu trouves pas un
Code :
|
plus léger que
Code :
|
je peux plus rien pour toi...
berceker united a écrit : |
La logique en l'occurrence on s'en branle. C'est prévu, ça tourne, c'est lisible, on peut.
berceker united a écrit : |
S'il y a bien des choses qu'on peut reprocher, ça ça me dérange pas du tout.
Par contre une écriture du style $this->{variable_ayant_pour_valeur_le_nom_de_ma_var_membre} ça me gêne énormément.
Marsh Posté le 13-12-2004 à 15:26:44
skeye a écrit : Trop dur pour lui...
|
Marsh Posté le 13-12-2004 à 15:33:33
berceker united a écrit : |
Utiliser par défaut la solution chiante n'a pas de sens AMHA.
berceker united a écrit : |
Forcément, si tu prends le cas de quelqu'un qui commence la prog par le php...
Pour moi le php est le pire des langages pour apprendre quoi que ce soit en programmation. Il ne devrait même pas être envisagé de s'en servir avant d'avoir appris à coder avec un vrai langage.
berceker united a écrit : |
Pour quelqu'un qui sait ce qu'il fait, cela ne pose aucun problème.
Au pire, on lit 3 lignes de doc et c'est réglé.
Les seuls qui seront gênés sont les gens qui font de la programmation approximative (à coups de copier/coller la plupart du temps) et ne réalisent pas vraiment comment ça marche.
Bref, ceux qui commencent par php ou quelquechose du même style.
Marsh Posté le 13-12-2004 à 15:50:09
Ben finalement nous somme daccord. C'est vrai que php n'est pas le meilleur language pour apprendre mais un débutant qui souhaite faire un site rapidement ne va pas comencer à apprendre le c ou java .
En faite ce topic est là principalement montrer les scripts les plus demandé. Combien de question sur les cookies, les sessions.
Marsh Posté le 13-12-2004 à 16:40:10
Très bon tomic, old timer, bonne initiative, on pourra toujours renvoyer ici les newbies qui n'ont pas fait leurs devoirs.
Citation : Si vous constater des erreurs n'hésité pas à me prévenir. |
constatez - n'hésitez pas
Ca vaut pour 80% des gens sur ce forum : faites un tour ici.
Marsh Posté le 14-12-2004 à 15:12:13
Personne ? ben c'est pas la peine que je prenne mon temps a faire ce topic
Marsh Posté le 14-12-2004 à 15:22:09
chacal_one333 a écrit : ya deja un topic truc et astuce php |
ha oui ? ou cela parce qu'apparément personne a l'air de s'y interesser vu que les mêmes questions reviennent
Marsh Posté le 14-12-2004 à 15:23:11
berceker united a écrit : ha oui ? ou cela parce qu'apparément personne a l'air de s'y interesser vu que les mêmes questions reviennent |
Les mêmes questions reviennent parce-que la cat' php a une furieuse tendance à être un repaire à boulets, point barre.
Tu peux tjrs essayer de leur refiler des solutions prémachées ils iront pas les pêcher tout seuls.
Marsh Posté le 14-12-2004 à 15:28:06
Justement c'est a vous d'empecher ce genre de chose en disant "tu trouveras ta réponse dans ce topic". plutot de répondre a chaque fois à la meme quesion x fois posé
Marsh Posté le 14-12-2004 à 15:32:14
à nous à nous...on a rien demandé nous.
Et 99% de questions dont on parle trouvent leur réponse dans la doc. Les diriger vers la doc dont ils ont besoin est infiniment plus productif pour eux que leur filer un script tout cuit qu'ils ne chercheront pas à comprendre.
Marsh Posté le 14-12-2004 à 15:35:10
skeye a écrit : à nous à nous...on a rien demandé nous. |
La doc ne répond pas tous, par exemple une pagination n'est pas dans la doc, quelques régles de sécurité etc...
Marsh Posté le 12-12-2004 à 18:27:04
Bonjour.
Bonjour bande de p'tit c**, comme à mon age j'en ai marre que certains petits moutards posent les mêmes questions sans faire de recherche, je fais un topic des petits trucs/astuces et tutos pour que vous puissiez vous y retrouver rapidement. A mon âge ce n'est plus possible.
.Pphpy.
Si certains ont d'autres conseils à vouloir indiquer, qu'ils le fassent savoir je ferais une mise à jour si je ne suis pas fatigué. Pour ceux qui diront que ça va être un bide, je m'en tape
Si vous constatez des erreurs n'hésitez pas à me prévenir.
-Désolé pour les fautes d'orthographe.
Les liens utiles.
Pphpy ! Comment lister le contenu d'un répertoire ?
C'est simple petit morveux, Il faut utiliser principalement la fonction opendir .
Version simplifié et rapide. Merci ratibus
-Comment faire un traitement récursif sur tous les fichiers ou répertoires ? Merci Fred999
Cela peut être utile pour plusieurs choses. Exemple : compter le nombre de fichier ayant une extention de type image, php, html, ... Ou bien chercher un chaine de caractère afin de la changer par une autre spécifique dans un fichier de type texte comme le html, php.
Il faut faire attention avec cette methode car elle consomme pas mal de ressources CPU et peut mettre un peu de temps pour se terminer car il parcours un à un le contenu d'un disque dur et selon le traitement sur le fichier le max_execution_time peut vous stopper.
Pphpy ! Comment envoyer un mail en texte simple?.
C'est simple petit morveux, il y a plusieurs choses à prendre en compte. .
1-Si vous êtes en local sur votre machine
- Il faut configurer le fichier php.ini et chercher la ligne [mail function] et placer l'adresse de votre serveur smtp
Redémarrez votre serveur Apache pour prendre en compte les modifications.
Voici le petit script qui permet de tester la fonction mail
Pphpy ! Donne moi quelques astuces.
- Dis "s'il te plait" petit morveux . Allé je te montre quelques variables d'environnement bien fort utiles.
Il y a une variable qui s'appelle $_SERVER qui contient des valeurs riches en informations.
Je ne vais pas tout mettre mais pour voir le contenu de cette variable : (Regardez aussi dans un fichier contenant juste <? phpinfo();?> )
Pphpy !Faire un menu select à partir d'une base de donnéess.
* Corrigé par DJ Yel
Message édité par Berceker United le 12-07-2006 à 11:03:47