Tuto des scripts PHP les plus demandés et des astuces.

Tuto des scripts PHP les plus demandés et des astuces. - PHP - Programmation

Marsh Posté le 12-12-2004 à 18:27:04    

Bonjour.
[:papy] 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  :o  
Si vous constatez des erreurs n'hésitez pas à me prévenir.  
-Désolé pour les fautes d'orthographe.
 
 
Les liens utiles.
 


 
 
 
 


 
 
 
Pphpy [:atlantis]! Comment lister le contenu d'un répertoire ?
C'est simple petit morveux, Il faut utiliser principalement la fonction opendir [:papy].

Code :
  1. // Ouvre un dossier bien connu, et liste tous les fichiers
  2. $directory = $_SERVER['DOCUMENT_ROOT'].'/toto/';
  3. if (is_dir($directory)) {
  4.   if ($dh = opendir($directory)) {
  5.     while (($file = readdir($dh)) !== false) {
  6.       if($file!='..' && $file!='.'){//N'affiche pas le . et ..
  7.         echo $file.'<br>'.chr(13);
  8.       }
  9.     }
  10.     closedir($dh); //Il est vivement conseillé de fermer le repertoire pour toute autre opération sur le systeme de fichier.
  11.   }
  12. }


Version simplifié et rapide. Merci ratibus

Code :
  1. //Version rapide et simple de ce qui est fait plus haut.
  2. foreach (glob($directory."*.jpg" ) as $filename) {
  3.    $arrFichier[] = $filename;
  4. }


 
-Comment faire un traitement récursif sur tous les fichiers ou répertoires ? Merci Fred999
 

Code :
  1. //$repertoire => Nom du répertoire à scanner, '.' si répertoire courant.
  2. function f_scan($repertoire) {
  3. echo "Traitement du répertoire " . '\\' . $repertoire . "\n";
  4. if ($niveau = opendir($repertoire)) {
  5.   chdir($repertoire);
  6.   while (false !== ($filedir = readdir($niveau))) {
  7.    // On scanne les éléments du répertoire un à un.
  8.    if (($filedir != '.') && ($filedir != '..')) {
  9.     if (is_file($filedir)) echo "Traitement du fichier " . '\\' . $filedir . "\n";
  10.     if (is_dir($filedir)) f_scan($filedir);
  11.    }
  12.   }
  13. }
  14. closedir($niveau);
  15. chdir('../');
  16. }
  17. // f_scan('.');


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.
http://forum-images.hardware.fr/icones/message/icon4.gif 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 [:atlantis]! Comment envoyer un mail en texte simple?.
C'est simple petit morveux, il y a plusieurs choses à prendre en compte. [:papy].
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

Code :
  1. [mail function]
  2. ;for win 32
  3. SMTP= mail.noos.fr
  4. smtp_port = 25
  5. ;for win32
  6. sendmail_from = votremail@xxx.xxx


Redémarrez votre serveur Apache pour prendre en compte les modifications.
Voici le petit script qui permet de tester la fonction mail
 

Code :
  1. mail("tonmail@xxx.xx", "Mon Sujet", "ton texte" );


 
 
Pphpy [:atlantis]! Donne moi quelques astuces.
- Dis "s'il te plait" petit morveux  [:papy] . 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.

Code :
  1. $_SERVER['SCRIPT_NAME']; $_SERVER['PHP_SELF']; // Equivalent de $PHP_SELF , permet de récupérer le nom du fichier en cours avec le chemin de base.
  2. $_SERVER['REMOTE_ADDR']; // Permet de récupérer l'ip de celui du client.
  3. $_SERVER['REQUEST_METHOD']; // Permet de savoir si la page est arrivée en mode POST ou GET.
  4. $_SERVER['DOCUMENT_ROOT']; // Tres utile pour toute utilisation de système de fichiers du serveur, permet de récupérer le chemin a partir de la racine du site.
  5. $_SERVER['HTTP_USER_AGENT']; // Récupère le nom et le type de navigateur utilisé par le client.


Je ne vais pas tout mettre mais pour voir le contenu de cette variable : (Regardez aussi dans un fichier contenant juste <? phpinfo();?> )
 

Code :
  1. print_r($_SERVER);


 
Pphpy  http://83.243.23.27/images/perso/chewyy.gif  !Faire un menu select à partir d'une base de donnéess.
 
 

Code :
  1. <?
  2. $data = array();
  3. $rs   = null;
  4. $i    = 0;
  5. $req ="SELECT id,nom FROM ma_table ORDER BY nom";
  6. $rs  = mysql_query($req);
  7. //ou
  8. $rs  = mysql_unbuffered_query($req);//Utile pour les requêtes ayant beaucoup d'enregistrements, ne fonctionne pas en requête croisée. get la doc ;)
  9. while($data = mysql_fetch_row($rs)){
  10.   $id[ $i ]  = $data[0];
  11.   $nom[ $i ] = $data[1];
  12.   $i++;
  13. }
  14. ?>
  15. <select nam="toto">
  16.   <option>- Selectionné -</option>
  17. <?
  18. for($i=0;$i<count($nom);$i++){
  19.   echo '<option value="'.$id[$i].'">'.$nom[$i].'</option>'.chr(13);
  20. }
  21. ?>
  22. </select>


 
* Corrigé par DJ Yel  http://forum-images.hardware.fr/images/perso/aloy.gif

Message cité 1 fois
Message édité par Berceker United le 12-07-2006 à 11:03:47
Reply

Marsh Posté le 12-12-2004 à 18:27:04   

Reply

Marsh Posté le 12-12-2004 à 20:26:16    

5 [:atlantis] Comment utiliser les sessions et les cookies?
 
- Ecoute sale petit corbeau [:papy]. 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 :
  1. <?
  2. //Fichier 1
  3. session_start();
  4. $_SESSION['TestSession'] = 'Test';
  5. ?>
  6. <a href="fichier2.php">Ici</a>


Code :
  1. <?
  2. //Fichier 2
  3. session_start();
  4. echo $_SESSION['TestSession'];
  5. ?>


http://83.243.23.27/icones/message/icon4.gif : Comme pour le cookie il ne faut pas qu'il est de sortie écran avant l'affectation d'une variable de session.
 
Pphpy [:atlantis]!Comment utiliser les cookies?.
C'est simple petit morveux il faut utiliser la fonction setcookie [:papy] .
 

Code :
  1. $value = 'toto';
  2. setcookie("TestCookie", $value, time()+3600, http://monsite.com/toto/);
  3. //1param: le nom de la variable cookie.
  4. //2param: la valeur de cette variable cookie.
  5. //3param: définir le temps de validité de ce cookie.
  6. //4param: ou le cookie peut être lu. [facultatif].


http://83.243.23.27/icones/message/icon4.gif 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 :
  1. echo $_COOKIE['TestCookie'];

.
 
 
 
6 [:atlantis] Comment gérer les dates en Php.
 - Ecoute sale vermine, je vais t'expliquer comment ça marche [:papy]. En php, les fonctions pour gérer date sont très complètes il y a de quoi faire. Voici ces élément.
 

Code :
  1. date(format, time());//retourne une date sous forme d'une chaîne, au format donné par la chaîne format.
  2. //1param indiqué le format de la date voir ci-dessous pour plus de détail.
  3. //2param indiqué une date au format unix c'est à dire, le nombre de seconde depuis le 1janvier 1970 à aujourd'hui. Il est possible de le récupérer via la fonction time().
  4. echo date("d/m/Y" ); //  Affichera le jour / mois / annnée en cours du serveur.


 
http://83.243.23.27/icones/message/icon4.gif : Attention le parametre format est sensible à la casse.
 
 Voici les principaux format possible avec la fonction date() :

  • d : Jour du mois, sur deux chiffres (avec un zéro initial) 01 à 31
  • D : Jour de la semaine, en trois lettres (et en anglais) Mon à Sun
  • j : Jour du mois sans les zéros initiaux 1 à 31
  • m : Mois au format numérique, avec zéros initiaux 01 à 12
  • M : Mois, en trois lettres, en anglais Jan à Dec
  • w : Jour de la semaine au format numérique 0 (pour dimanche) à 6 (pour samedi)
  • W : Numéro de semaine dans l'année ISO-8601, les semaines commencent le lundi Exemple : 42 (la 42ème semaine de l'année)
  • Y : Année, 4 chiffres Exemples : 1999 et 2003
  • y : Année, 2 chiffres Exemples : 99 et 03.


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.[:ciler]  
strotime()
Topic dédié Merci T509

Code :
  1. $date = '2004-12-10 8:12:45';
  2. $DateUnix = strtotime($date);
  3. echo date('d/m/Y',$DateUnix); //Il affichera 10/12/2004


 
 
7 [:atlantis] Comment ouvrir une ou plusieurs connexion Mysql en même temps ?
- Et deux claque à l'ancienne tu veux pas aussi? [:papy] 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 :sarcastic: .
 
 

  • 1- Pour une simple connexion.
Code :
  1. $rsLink = mysql_connect('localhost','root','root') or die('Erreur de connexion'); // Connexion au serveur Mysql.
  2. mysql_select_db('foo', $rsLink) or die('Erreur sur la base de données sélectionnée'); // connexion à une base de données du serveur Mysql.
  3. $req = "SELECT idmorpion, morpion FROM matable1";
  4. $rs = mysql_query($req);
  5. while($data = mysql_fetch_row($rs)){
  6.   ...
  7. }


 

  • 2 - Pour une double connexion.
Code :
  1. $server   = 'Localhost';
  2. $login    = 'root';
  3. $password = 'root';
  4. $bd1      = 'bd1';
  5. $bd2      = 'bd2';
  6. //Ce serveur possible deux bases de données le but est de récupérer une information sur la premiere base et sur la seconde sans faire de fermeture de base de données.
  7. $rsLink_1 = mysql_connect($server,$login,$password,1) or die('Erreur de
  8. connexion'); // Connexion au serveur Mysql.
  9. $rsLink_2 = mysql_connect($server,$login,$password,1) or die('Erreur de connexion'); // Connexion au serveur Mysql.
  10. mysql_select_db($bd1, $rsLink_1) or die('Erreur sur la base de données '.$bd1); // connexion à la premiere base de données du serveur Mysql.
  11. mysql_select_db($bd2, $rsLink_2) or die('Erreur sur la base de données '.$bd2); // connexion à la premiere base de données du serveur Mysql.
  12. //Information sur la première base de données
  13. $req1 = "SELECT idmorpion, morpion FROM matable1";
  14. $rs1 = mysql_query($req1, $rsLink_1);
  15. while($data = mysql_fetch_row($rs1)){
  16.   ...
  17. }
  18. //Information sur la seconde base de données
  19. $req2 = "SELECT idmorpion, morpion FROM matable1";
  20. $rs2 = mysql_query($req1, $rsLink_2);
  21. while($data2 = mysql_fetch_row($rs2)){
  22.   ...
  23. }
  24. mysql_close($rsLink_1);
  25. mysql_close($rsLink_2);


 
 
 
8 [:alberich] Comment lister les tables d'une base de données ?(Astuce)
 - Je vais te mettre de l'astuce dans ton derrière toi   [:albator7k]. Utiliser la fonction mysql_liste_tables().
Exemple
 

Code :
  1. $dbname = 'ma_base';
  2. if(!$result = mysql_list_tables($dbname)) exit('Impossible de lister la base de données')
  3. while ($row = mysql_fetch_row($result)) {
  4.     echo 'Table : '.$row[0].'<br>'.chr(13);
  5. }


 
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.


Message édité par Berceker United le 08-02-2005 à 23:11:28
Reply

Marsh Posté le 12-12-2004 à 22:40:18    

9 [:audette] Développer en mode bo gosse!
 

  • - 1 Développement en REGISTER_GLOBAL à OFF.

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 :
  1. www.monsite.com/index.php?parametre=houla
  2. //Pour récupérer la valeur de ce paramètre il suffisait de  
  3. echo $parametre; // Affiche 'Houla'


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 :
  1. $_SESSION['ma_session'] //Contient les valeurs des sessions. (session_start() obligatoire) lecture/écriture
  2. $_COOKIE['mon_cookie'] //Contient les valeurs des cookies lecture/écriture
  3. $_POST['ma_valeur'] ou $HTTTP_POST_VARS['ma_valeur'] // Récupère la valeur d'un champ de formulaire en methode post,(le premiere est global le second n'est pas global) Lecteur/
  4. $_GET['ma_valeur'] ou $HTTP_GET_VARS['ma_valeur'] // Récupère la valeur d'un champ de formulaire en methode get,(le premiere est global le second n'est pas global) Lecteur/


 
 

  • - 2 Développement en E_ALL.

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 :
  1. <?
  2. if($test==45){
  3.   ...
  4. }?>


Celui qui dit oui ben [:captainsylver]!...
 
Comparé-le avec celui-ci:

Code :
  1. <?
  2. $test = 40;
  3. if($test==45){
  4.   ...
  5. }?>


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&param3=0
quand vous avez poster une page utilisé l'une de ces conditions
 

Code :
  1. //Pour methode Post
  2. if($_SERVER['REQUEST_METHOD'] == 'POST'){
  3. ...
  4. }
  5. //Pour method Get
  6. if($_SERVER['QUERY_STRING'] != ''){
  7. ...
  8. }


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 :
  1. @$Test;
  2. @open_dir();


 

  • - 3 Chaine de caractère, concaténation avec variable.

-  [:papy] 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 :
  1. $test = "vous êtes les $nombre à me poser la même question"; // n'importe quoi!...


[:psywalk]  pitié quand je vois cela !...
 
Il faut faire ceci  :jap:  

Code :
  1. $test = "vous êtes les ".$nombre." à me poser de bonne question";


 
Mais pourquoi ? :??: , Simplement parce une chaine est une chaine faut pas mélanger les pommes de terres avec les carrotes :non:. De plus c'est une mauvaise habitude car si vous voulez placer un tableau, une fonction vous allez avoir une erreur.

Code :
  1. $test = "Vous êtes ".$nombre['on']." à bien comprendre le principe";
  2. //ou
  3. $test = "Vous êtes ".Nombre()." à bien comprendre";


 
 

  • 4 - Les retours à la ligne.

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 :
  1. //Mode normal
  2. echo "<table>\n\r";
  3. echo "  <tr>\n\r";
  4. echo "    <td>Toto</td>\n\r";
  5. echo "  <tr>\n\r";
  6. echo "<table>\n\r";
  7. //Mode pro
  8. echo "<table>".chr(13).chr(10);
  9. echo "  <tr>".chr(13).chr(10);
  10. echo "    <td>Toto</td>".chr(13).chr(10);
  11. echo "  <tr>".chr(13).chr(10);
  12. echo "<table>".chr(13).chr(10);


Vous prenez celui que vous voulez ;)


Message édité par Berceker United le 13-12-2004 à 00:02:06
Reply

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  :jap: pour l'idée


Message édité par Ace17 le 12-12-2004 à 22:49:32
Reply

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?
En tout cas  :jap: pour l'idée


Je vise personne en prenant ce ton, c'est juste un brin d'humour de vieux ;)


Message édité par Berceker United le 13-12-2004 à 00:15:10
Reply

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.


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 13-12-2004 à 00:24:56    

10 - Condition de frimeur  :sol:
-  [:papy] Il y a plusieurs moyen de faire une condition.

Code :
  1. //Méthode 1
  2. if($tata == 45){
  3. echo "tata t'es veille!...";
  4. }
  5. //Méthode 2
  6. if($tata == 45) echo "tata t'es veille!...";
  7. //Méthode 3
  8. echo($tata == 45)?"tata t'es veuille":"";


 
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  :sol:.

Code :
  1. $tata($age>45)?45:30;//Pas sur, il faut que je test mais c'est possible pour l'affectation.


 
11 Pphpy [:atlantis] Comment alterner les couleurs d'un tableau.
 -  [:papy] 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 :
  1. <?
  2. $bgcolor='#FFCC33';
  3. $htmlOut = '<table>'.chr(13);
  4. for($i=0;$i<10;$i++){
  5.    if($bgcolor=='#FFCC33'){
  6.      $bgcolor='#CCCCCC';
  7.    }else{
  8.      $bgcolor='#FFCC33';
  9.    }
  10.   $htmlOut.= '  <tr>'.chr(13);
  11.   $htmlOut.= '    <td bgcolor="'.$bgcolor.'"></td>'.chr(13);
  12.   $htmlOut.= '  <tr>'.chr(13);
  13. }
  14. $htmlOut.= '<table>'.chr(13);
  15. ?>



2 - Méthode pro en utilisant le modulo

 

Code :
  1. <?
  2. $bgcolor='#FFCC33';
  3. $htmlOut = '<table>'.chr(13);
  4. for($i=0;$i<10;$i++){
  5.    $bgcolor($i%2 == 0)?'#CCCCCC':'#FFCC33'; 
  6.   $htmlOut.= '  <tr>'.chr(13);
  7.   $htmlOut.= '    <td bgcolor="'.$bgcolor.'"></td>'.chr(13);
  8.   $htmlOut.= '  <tr>'.chr(13);
  9. }
  10. $htmlOut.= '<table>'.chr(13);
  11. ?>


Il y a quasi aucune différence.
 
 
12 - Pphpy![:corriollan] as-tu une méthode pour bien organiser son fichier?
 
 - Très bonne question [:cowboy] 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.[:papy]
 
Moi personnellement mon fichier est divisé en deux grosse parties. Une partie pour le code pure Php la seconde uniquement du HTML.

  • Partie Php.

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 :
  1. $i=0;
  2. $data = array();
  3. $rs = null;
  4. $rs = mysql_unbuffered_query("SELECT id,nom FROM ma_table" );
  5. while($data = mysql_fetch_row($rs)){
  6.   $id[$i]  = $data[0];
  7.   $nom[$i] = $data[1];
  8.   $i++; 
  9. }
  10. ...
  11. ?>
  12. ...
  13. <table>
  14.   <tr>
  15.     <td>Id</<td>
  16.    <td>Nom</td>
  17.   </tr>
  18. <? for($i=0;$i<count($id);$i++){ ?>
  19.   <tr>
  20.     <td><? echo $id[$i]; ?></<td>
  21.     <td><? echo $nom[$i]; ?></<td>
  22.   </tr>
  23. <? } ?>
  24. </table>


- 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.

  • 1 - session_start();
  • 2 - les includes.
  • 3 - les fonctions.
  • 4 - initialisation des variables.
  • 5 - Récupération dans la base de données.
  • 5 - Opération divers.
  • 6 - Fermeture de la base de données. (si possible)
  • 7 - Corps HTML.


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 :
  1. ...
  2. //==========================================
  3. //Fonction
  4. //==========================================
  5. ...
  6. //==========================================
  7. //INITIALISATION
  8. //==========================================
  9. ...


 
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

  • Le script PHP qui nous intéresse
  • un fichier de config pour les constantes et les variables de configuration. Cela permet, lors du changement d'un paramètre , de ne pas parcourir chaque script à la recherche de l'utilisation de ce paramètre. C'est typiquement le cas lors du passage du développement à la production avec les bases de données.
  • Les fonctions "génériques" succeptibles d'être utilisées un peu partout, je les mets soit dans un fichier à part (genre ma_fonction_bidule.php) que j'apelle par un include () soit dans une genre de bibliothèque de fonctions perso (biblio_sql.php par exemple).
  • Un template HTML/XHTML/XML/WML/... qui repenne toute la mise en page du site et dans lequel j'ai laissé des mots clé (formaté comme cela <MOT-CLE> ou ~MOT-CLE~)
  • Le script annoncé plus haut prépare les données (session, includes(), ...) et les met en tableau. Le tableau des mots clé est connu (cf le fichier de config) et un simple preg_replace() sur le template me fait la mise en forme.


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.


Message édité par Berceker United le 27-07-2005 à 08:44:39
Reply

Marsh Posté le 13-12-2004 à 05:48:57    

13 Pphpy [:cvb] Comment faire une pagination avec Mysql?
 -Ha voila une très bonne question [:papy]. 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 :D. 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.
Il va afficher 5 enregistrements à partir du septième.
data 1 invisible
data 2 invisible
data 3 invisible
data 4 invisible
data 5 invisible
data 6 invisible
data 7 visible
data 8 visible
data 9 visible
data 10 visible
data 11 visible
data 12 invisible


C'est simple, non? [:chewyy]
Voici un code complet pour afficher des images.

Code :
  1. <?php
  2. //FONCTION
  3. //fonction permettant de récupérer le nombre maximum d'image présente dans la table.
  4. function nbElement(){
  5.   $rs = null;
  6.   $data = array();
  7.   $rs = mysql_unbuffered_query("SELECT COUNT(idimage) FROM image" );
  8.   $data = mysql_fetch_row($rs);
  9.   return $data[0];
  10. }
  11. // INITALISATION
  12. $nbRec    = 10; // Nombre d'image qui s'affichera par page
  13. $position = 0; //Position de lecteur sur le jeux d'enregistrement(param1).
  14. $data     = array();
  15. $image    = array();
  16. $rs       = null;
  17. $nbData   = 0;
  18. $i        = 0;
  19. if($HTTP_GET_VARS['position']!='') $position = $HTTP_GET_VARS['position'];
  20. //Pas la peine d'exécuter x fois la même fonction je le fais passer en paramètre.
  21. if($HTTP_GET_VARS['nbelement']!='')$nbElement = $HTTP_GET_VARS['nbelement'];
  22. else $nbElement = nbElement();
  23. //OPERATION SQL
  24. $requette = "SELECT nom, width, height FROM image ORDER BY nom LIMIT ".$position.",".$nbRec;
  25. $rs = mysql_unbuffered_query($requette,$rsConnexion);
  26. while($data = mysql_fetch_row($rs)){
  27.   $image[$i]['nom']   = $data[0];
  28.   $image[$i]['width'] = $data[1];
  29.   $image[$i][height]  = $data[2];
  30.   $i++;
  31. }
  32. $nbData = $i //Récupère le nombre d'enregistrement.
  33. mysql_free_result($rs);
  34. unset($requette,$data,$i); //Pour taper un style! ;)
  35. mysql_close($rsConnexion); //Nous avons plus besoin de connexion
  36. ?>
  37. ...html
  38. <table>
  39.   <tr>
  40.     <td>
  41. <? // Pour le bouton précédent  
  42. if(($position-8)>=0){
  43. echo '<a href="'.$_SERVER['SCRIPT_NAME'].'?nbelement='.$nbElement.'&position='.($position+$nbRec)">Précédent</a>
  44. }else{
  45.   echo '&nbsp;';
  46. }
  47. ?>
  48.     </td>
  49.     <td>&nbsp;</td>
  50.     <td>
  51. <? //Pour le bouton suivant  
  52.   if(($position+$nbRec)<=$nbElement){
  53.     echo '<a href="'.$_SERVER['SCRIPT_NAME'].'?nbelement='.$nbElement.'&position='.($position+$nbRec)">Suivant</a>
  54. }else{
  55.   echo '&nbsp;';
  56. }
  57. ?> 
  58.     </td>
  59.   </tr>
  60.   <tr>
  61.     <td>Nom</td>
  62.     <td>Largeur</td>
  63.     <td>Hauteur</td>
  64.   </tr>
  65. <? for($i=0;$i<$nbData;$i++){ ?>
  66.   <tr>
  67.     <td><img height="<? echo $image[$i]['height']; ?>" width="<? echo $image[$i]['width']; ?>" src="<? echo $image[$i]['nom']; ?>"></td>
  68.     <td><? echo $image[$i]['width']; ?></td>
  69.     <td><? echo $image[$i]['height']; ?></td>
  70.   </tr>
  71. <? } ?>
  72. </table>


Avec ça vous auriez normalement compris ;)
 
Pour ceux qui veulent des liens de type:
[1-10][11-20][21-30] ...

Code :
  1. <?for($i=0;$i<ceil($nbElement/$nbRec);$i++) {
  2. $sup = ($i+1)*$nbRec;
  3. $inf = ($sup-$nbRec)+1;
  4. if($position == ($i*$nbRec)) echo '<a href="#" style="color:#FF0000;">['.$inf.' - '.$sup.']</a>'.chr(13);
  5. else echo '<a href="'.$_SERVER['SCRIPT_NAME'].'?nbelement='.$nbElement.'&position='.($i*$nbRec).'">['.$inf.' - '.$sup.']</a>'.chr(13);
  6. }
  7. ?>


Merci qui ? :o
 [:plat00n] Merci Pphpyyyyyy  [:papy]


Message édité par Berceker United le 13-12-2004 à 09:33:01
Reply

Marsh Posté le 13-12-2004 à 07:03:51    

14 - Pphpy! [:epok] Comment éviter de se faire plomber une bd par un simple bitos?
Très bonne question [:papy].  
 
- 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 [:ezm] 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à [:el tristo].
Le pire c'est que ce genre de chose peut être l'oeuvre d'un simple [:el cabron].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.  :non: 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é.
 :jap: 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 :whistle:), 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.
 

  • - Il y a aussi celui qui réactualise plusieurs fois pour x raison la page qui a permis de faire une insertion en base.


Voici quelques petit conseil pour éviter ce genre de désagréments.

  • - Utiliser le contrôle des champs de formulaire coté serveur.
  • - Désactiver le bouton permettant la validation du champ formulaire ou contrôler les doublons pure en base.
  • - Utiliser une page intermédiaire spécial pour les traitements du champs de formulaire puis faire une redirection sur une autre page. Comme chez HFR :)
  • - contrôler la provenance de la page et contrôler le type de request post ou get.

Exemple
 
 
Fichier 1

Code :
  1. <? session_start(); ?>
  2. <form method="post" action="traitement/mapage.php">
  3.   <input type="text" name="nom" value="">
  4. </form>
  5. <? $_SESSION['from'] = $_SERVER['SCRIPT_NAME']; // place en session le fichier d'origine. ?>


 
Fichier 2 traitement/mapage.php

Code :
  1. <?php
  2. session_start();
  3. //Il faut montrer patte blanche
  4. if($_SERVER['REQUEST_METHOD']=='POST' && $_SESSION['from']== '/pages/fichier1.php'){
  5. ...
  6. }
  7. header('Location:http://www.monsite.com/valider.php');
  8. ?>


Message édité par Berceker United le 13-12-2004 à 07:37:01
Reply

Marsh Posté le 13-12-2004 à 07:48:15    

15 - Pphpy [:alberich] Comment contrôler le bon formatage d'une adresse email ?
 - Ecoute sale petit chameaux tu as raison de poser cette question [:papy].  
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.[:evil]

Code :
  1. function Controle( $email ){
  2.   $splitMail  = array();
  3.   $splitMail2 = array();
  4.   if(ereg('@\.',$email) || ereg('\.@',$email) || ereg('@@',$email) || ereg('\.\.',$email))return false;
  5.   //Contrôle la longueur du mail qui ne peut être inférieur à 5
  6.   // et le mail ne peut commencer par un arobase ou un point.
  7.   if(strlen($email)<5 || $email[0] == '@' || $email[0] == '.')return false;
  8.   //Découpe le mail au niveau du l'arobase.
  9.   $splitMail = explode('@',$email);
  10.   //il doit y avoir au moin 3 lettres minimum apres l'arobase.
  11.   if(strlen($splitMail[1])>=3){
  12.     //Split en deux sur le point sur le domaine.     
  13.     $splitMail2 = explode('.',$splitMail[1]);
  14.     //Aprés le point il faut au moin un caractère.
  15.     if(strlen($splitMail2[(count($splitMail2)-1)])>0)return true;
  16.     else return false;
  17.   }else return false;
  18. }


 
Methode courte avec les expressions régulières, merci Xav_

Code :
  1. function verif_mail($mail)
  2. {
  3. $regex = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3}))$";
  4. return (eregi($regex,$mail));
  5. }
  6. ?>


Message édité par Berceker United le 13-12-2004 à 08:17:12
Reply

Marsh Posté le 13-12-2004 à 07:48:15   

Reply

Marsh Posté le 13-12-2004 à 08:11:03    

16 - Pphpy ! :( Tu peux me faire un script gratis stp ?
 
 
 
 
[:fafurio]


Message édité par Berceker United le 13-12-2004 à 08:12:54
Reply

Marsh Posté le 13-12-2004 à 08:12:44    

j'ai un peu plus court pour le test de formatage du mail:

Code :
  1. <?
  2. //---------------------------------------------------------------------------------------
  3. // Vérification de l'exactitude de la syntaxe d'une adresse e-mail
  4. // Retourne True ou False
  5. //---------------------------------------------------------------------------------------
  6. function verif_mail($mail)
  7. {
  8. $regex = "^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3}))$";
  9. return (eregi($regex,$mail));
  10. }
  11. ?>


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

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


Message édité par Berceker United le 13-12-2004 à 08:16:52
Reply

Marsh Posté le 13-12-2004 à 08:30:08    

17 - Un INSERT comme un UPDATE (Mysql) ?
 
[:grisemine4] Dit donc bébé sa te dit que je te fasse un insert into heuuu!...
[:grisemine3] 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)


Message édité par Berceker United le 13-12-2004 à 09:25:06
Reply

Marsh Posté le 13-12-2004 à 09:18:21    

berceker united a écrit :

17 - Un INSERT comme un UPDATE ?
 
[:grisemine4] Dit donc bébé sa te dit que je te fasse un insert into heuuu!...
[:grisemine3] 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)


 

Citation :


insert ma_table
       *
ERROR at line 1:
ORA-00925: missing INTO keyword


 
Tu serais gentil de préciser le SGBD hein...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-12-2004 à 09:24:15    

skeye a écrit :

Citation :


insert ma_table
       *
ERROR at line 1:
ORA-00925: missing INTO keyword


 
Tu serais gentil de préciser le SGBD hein...:o


Mysql. tu as testé sur quoi?

Reply

Marsh Posté le 13-12-2004 à 09:24:23    

berceker united a écrit :


Code :
  1. // Ouvre un dossier bien connu, et liste tous les fichiers
  2. $directory = $_SERVER['DOCUMENT_ROOT'].'/toto/';
  3. if (is_dir($directory)) {
  4.   if ($dh = opendir($directory)) {
  5.     while (($file = readdir($dh)) !== false) {
  6.       if($file='..' || $file='.'){
  7.         echo $file.'<br>'.chr(13);
  8.       }
  9.     }
  10.     closedir($dh); //Il est vivement conseiller le repertoire pour toute autre opération sur le systeme de fichier.
  11.   }
  12. }




Je voudrais pas dire de conneries, mais là tu affiches que '.' et '..' [:dawa]
 
[edit]
 
Ah non même pas, puisque tu fais un test avec = au lieu de == [:moule_bite]


Message édité par skeye le 13-12-2004 à 09:25:11

---------------
Can't buy what I want because it's free -
Reply

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...:o
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 '.' :o


Message édité par skeye le 13-12-2004 à 09:32:57

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-12-2004 à 09:27:37    

skeye a écrit :

Je voudrais pas dire de conneries, mais là tu affiches que '.' et '..' [:dawa]
 
[edit]
 
Ah non même pas, puisque tu fais un test avec = au lieu de == [:moule_bite]


Non en faite tu as raison j'ai oublié le !=

Reply

Marsh Posté le 13-12-2004 à 09:31:16    

skeye a écrit :

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...


- 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 [:chewyy] , 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.


Message édité par Berceker United le 13-12-2004 à 09:36:14
Reply

Marsh Posté le 13-12-2004 à 09:40:16    

berceker united a écrit :


- Taper du code dans un text area il y a mieu [:chewyy] , 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.


Il y a un procédé magnifique sous tous les OS que je connais, ça s'appelle "copier/coller"...[:dawa]
Poster du code pour des newb. sans le tester auparavant, c'est mal.:o


---------------
Can't buy what I want because it's free -
Reply

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"...[:dawa]
Poster du code pour des newb. sans le tester auparavant, c'est mal.:o


ç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.


Message édité par Berceker United le 13-12-2004 à 09:53:01
Reply

Marsh Posté le 13-12-2004 à 12:07:28    

skeye a écrit :


3) Fautes de français...:o

+1, c'est une mine! les vieux sont censés savoir écrire  :whistle:

Reply

Marsh Posté le 13-12-2004 à 12:09:22    

La "technique de la griffe du loup" !!! [:rofl]
qui consiste a utiliser deux handles au lieu d'un!! [:rofl] [:rofl]
 

Reply

Marsh Posté le 13-12-2004 à 15:01:13    

skeye a écrit :

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...:o
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 '.' :o


 :ouch: 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.

Reply

Marsh Posté le 13-12-2004 à 15:02:52    

berceker united a écrit :

:ouch: 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...[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-12-2004 à 15:12:01    

skeye a écrit :

...et pourquoi une mauvaise habitude?
C'est prévu par le langage, ça fonctionne, et dans certains cas ça allège l'écriture...[:skeye]


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 ''
:sarcastic: 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.


Message édité par Berceker United le 13-12-2004 à 15:13:26
Reply

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...[:moule_bite]
Si tu trouves pas un

Code :
  1. echo "Je dis bonjour à $prénom $nom parce-que je l'aime bien";


 
plus léger que  

Code :
  1. echo 'Je dis bonjour à '.$prenom.' '.$nom.' parce-que je l'aime bien';


 
je peux plus rien pour toi...:o
 

berceker united a écrit :


:sarcastic: 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.  


 
La logique en l'occurrence on s'en branle. C'est prévu, ça tourne, c'est lisible, on peut.[:skeye]
 

berceker united a écrit :


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.


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.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-12-2004 à 15:26:44    

skeye a écrit :

Trop dur pour lui...[:moule_bite]
Si tu trouves pas un

Code :
  1. echo "Je dis bonjour à $prénom $nom parce-que je l'aime bien";


 
plus léger que  

Code :
  1. echo 'Je dis bonjour à '.$prenom.' '.$nom.' parce-que je l'aime bien';


 
je peux plus rien pour toi...:o
 
je dis pas que ça fonction pas mais pourquoi quand il sagit d'un tableau ça passe pas?:o autant coder de la même manière
 
La logique en l'occurrence on s'en branle. C'est prévu, ça tourne, c'est lisible, on peut.[:skeye]
Ben quand il va croire que c'est partout pareille les autres language vont le jeter en l'air a chaque fois
 
 
S'il y a bien des choses qu'on peut reprocher, ça ça me dérange pas du tout.
Comme je le dis, certaine choses sont discutable, juste qu'il est préférable de donner certaine bonnes habitudes et puis comme je l'ai indiqué; c'est pour faire bo gosse[:evil], regarde la partie des condition, certain apprecierons les if sans crochet et d'autre non...
Par contre une écriture du style $this->{variable_ayant_pour_valeur_le_nom_de_ma_var_membre} ça me gêne énormément.
Oui pour ça je suis daccord il y aussi les ${ma_variable_de_relou}
 


Message édité par Berceker United le 13-12-2004 à 15:28:02
Reply

Marsh Posté le 13-12-2004 à 15:33:33    

berceker united a écrit :


je dis pas que ça fonction pas mais pourquoi quand il sagit d'un tableau ça passe pas?:o autant coder de la même manière


 
Utiliser par défaut la solution chiante n'a pas de sens AMHA.
 

berceker united a écrit :


Ben quand il va croire que c'est partout pareille les autres language vont le jeter en l'air a chaque fois


 
Forcément, si tu prends le cas de quelqu'un qui commence la prog par le php...[:kiki]
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 :


Comme je le dis, certaine choses sont discutable, juste qu'il est préférable de donner certaine bonnes habitudes et puis comme je l'ai indiqué; c'est pour faire bo gosse[:evil], regarde la partie des condition, certain n'apprecierons les if sans crochet et d'autre non...


 
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.


---------------
Can't buy what I want because it's free -
Reply

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.

Reply

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
 [:moundir]  
 
Ca vaut pour 80% des gens sur ce forum : faites un tour ici.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 13-12-2004 à 17:59:57    

Ben ça serait cool que vous mettiez vos truc et astuce ;)

Reply

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 :/

Reply

Marsh Posté le 14-12-2004 à 15:12:40    

ya deja un topic truc et astuce php :o

Reply

Marsh Posté le 14-12-2004 à 15:22:09    

chacal_one333 a écrit :

ya deja un topic truc et astuce php :o


ha oui ? ou cela parce qu'apparément personne a l'air de s'y interesser vu que les mêmes questions reviennent

Reply

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.


---------------
Can't buy what I want because it's free -
Reply

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é

Reply

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.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-12-2004 à 15:35:10    

skeye a écrit :

à 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.


La doc ne répond pas tous, par exemple une pagination n'est pas dans la doc, quelques régles de sécurité etc...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed