Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 06/04/2009, 09h23   #41
Dendrite
Membre expérimenté
 
Avatar de Dendrite
 
Femme Sylvie VAUTHIER
Développeur informatique
Inscription : juin 2008
Messages : 524
Détails du profil
Informations personnelles :
Nom : Femme Sylvie VAUTHIER
Âge : 47
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Enseignement

Informations forums :
Inscription : juin 2008
Messages : 524
Points : 539
Points : 539
Right. Je modifie.
__________________
Envoyez-vous des mails de rappel dans le futur avec STRICTO TEMPO, mon site gratuit
Dendrite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2009, 21h09   #42
misterCode
Invité de passage
 
Inscription : mai 2009
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 1
Points : 1
Points : 1
Par défaut Merci Dendrite

Ce tutoriel est une excelente initiation en PHP.
L'optimisation du TP8 mène à la methode dite du crible d'Erastosthéne:
http://fr.wikipedia.org/wiki/Crible_...atosth%C3%A8ne
misterCode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2009, 08h46   #43
vadim
Invité régulier
 
Inscription : juillet 2002
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 12
Points : 9
Points : 9
Par défaut Cours PHP pour grands débutants pressés

Ce tutoriel est exellent. Je ne suis pas vraiment débutant en programmation, mais je n'ai jamais abordé le désormais incontournable PHP. Sur ce point je partage tout à fait l'avis de dendrite : qui peut le plus peut le moins.

L'approche pédagogique est excellente et très efficace. Surtout pour commencer, le but est atteint avec brio .

Encore mille félicitations

Vadim
vadim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2009, 09h36   #44
hexagone53
Invité de passage
 
Inscription : mai 2009
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 1
Points : 1
Points : 1
Par défaut Le tutoriel pour grands débutants pressés

Très, très bon tutoriel; enfin un qui tiens ces promesses
Petite note tout de même :
L’usage des majuscule et minuscules dans VI. PHP ETAPE 6 : utilisateurs et Utilisateurs correspond à deux tables différentes en phpMyAdmin.
Pour la création de champs dans les tables : usage de majuscules; et usage de minuscules dans les requêtes.
La sensibilité à la casse est génératrice d'erreur pour le fonctionnement des scripts

"A gauche dans votre arborescence, sélectionnez votre table 'inscriptions'. "
La table ne s'appelle t'elle pas utilisateurs ??

Voilà c'est tout, mais encore merci pour cet excellent tuto, qui m'a permis de mieux conceptualiser mon projet.
hexagone53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2009, 15h50   #45
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 657
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 657
Points : 7 535
Points : 7 535
Envoyer un message via Skype™ à jreaux62
Bonjour Sylvie (Dendrite),
que te dire de plus qu'un ...
grand bravo pour ton SENS de la PEDAGOGIE, et pour ton humour ... ?
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2009, 13h33   #46
éric1
Membre du Club
 
Inscription : mars 2009
Messages : 220
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 220
Points : 64
Points : 64
Bonjour Sylvie,

Je suis un grand débutant pressé. Mais je pense justement que je vais prendre un peu plus de temps pour me former. Je ne sais pas si tu as eu des re-lecteurs vraiment débutants (j'en suis un !) - même si j'ai fait du Basic il y a 20 ans !

Je suis fort intéressé par ton cours mais je suis arrêté au "V-2-d. Fonction qui renvoie une valeur de retour". Je commence à faire quelques erreurs. Je n'ai pas une notion très précise de foreach et de return par exemple. Quand tu dis :"Une dernière chose sur les fonctions : Si l'on ne veut pas une fonction qui affiche, mais une fonction qui par exemple calcule et renvoie une valeur, on utilisera le mot clé return." Cela ne me donne pas une idée très précise; renvoyer à quoi? ou comment? Dans le code de V-2-d. je ne comprends pas bien pourquoi ce "return $verdict" qui semble être "récupé" par "" ou/et par ""; il faudrait, je pense, donner un exemple plus simple de return (dégagé de toute difficulté).

Une erreur que j'ai faite - et que sans doute beaucoup de débutants font - c'est de passer trop rapidement sur certaines notions. Il me semble-mais chacun fait comme bon lui semble- qu'il ne faut pas passer au-dessus d'une notion sans l'avoir comprise (au moins pour les expressions les plus simples).

Sinon, je trouve que ton cours est intéressant parce qu'il permet de prendre goût au PHP assez rapidement. Tu as aussi une manière simple et sympathique de présenter les choses.

Tu me dis si c'est ici le bon endroit pour exposer tous mes petits problèmes.

Encore merci pour ton excellent travail.
À bientôt.
éric1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2009, 21h06   #47
hepha1970
Membre du Club
 
Inscription : novembre 2006
Messages : 76
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : novembre 2006
Messages : 76
Points : 55
Points : 55
Envoyer un message via MSN à hepha1970
Bonjour,

Joli tuto , bien présenté et agréable à lire

Mais en parlant de prendre de bonnes habitudes...

Aucune des données envoyées à la base ne sont filtrées !

en gros les risques sont me semble t'il sauf erreur :

Cross-Site Scripting
injections de commandes


hepha1970 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2009, 13h20   #48
Thes32
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur PHP, .Net, T-SQL
Inscription : décembre 2006
Messages : 2 354
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur PHP, .Net, T-SQL

Informations forums :
Inscription : décembre 2006
Messages : 2 354
Points : 4 628
Points : 4 628
Salut Eric1,

à la base les fonctions font des calculs et renvoient le résultat. le mot clé return dit à la fonction d'arrêter de s'exécuter et de renvoyer la valeur qui se trouve à sa droite au lieu où elle a été appeler.
Exemple : supposons que dans ton programme tu dois calculer à plusieurs reprises une valeur delta = a² - 2ab.

Au lieu à chaque qu'on retrouves un code du genre
Code :
1
2
3
4
5
 
$delta = a*a - 2*a*b;
...
//un peu plus loin
$variable = 2/100 - 4*( $poids*$poids - 2*$poids*$mesure)
tu pourrais simplement écrire une fonction
Code :
1
2
3
4
 
function delta( $x , $y ){
 return $x*$x - 2*$x*$y;
}
le mot clé return renvois le résultat final de la fonction ayant un type particulier, dans notre cas c'est un flottant.

dans ce cas, partout où tu voudras appliquer ta formule tu appelleras simplement la fonction en lui passant les deux valeurs
Code :
1
2
3
4
5
 
$delta = delta( $a, $b );
...
//un peu plus loin
$variable = 2/100 - 4*delta( $poids, $mesure)
voilà.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2009, 13h29   #49
éric1
Membre du Club
 
Inscription : mars 2009
Messages : 220
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 220
Points : 64
Points : 64
Merci Thes.
éric1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2009, 10h42   #50
compdev
Membre du Club
 
Développeur informatique
Inscription : mars 2009
Messages : 136
Détails du profil
Informations personnelles :
Âge : 45
Localisation : Algérie

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 136
Points : 69
Points : 69
Envoyer un message via MSN à compdev
Bonjour,

j'aime aussi faire le point sur la différence entre une procédure et une fonction malgré que toutes les deux forment des sous-programmes (SubRoutines pour les anciens programmeurs en Basic), la procédure effectue une action quelconque (affichage, écriture/lecture d'un fichier, tri, etc) alors que la fonction permet d'effectuer des calculs et en retourner le résultat.

Si l'on souhaite appeler une procédure, il suffit simplement d'écrire son nom sur la ligne du code avec bien entendu les paramètres réels:

Le code suivant est écrit en langage Pascal

Code pascal :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//
Procedure Afficher_Infos( XCode: integer);
//XCode est un paramètre formel
begin
 
writeln(nom);
writeln(prenom);
writeln(adresse);
 
end;
 
//Appel de la procédure qui affiche les informations concernant un élève
//Code_Eleve est un paramètre réel
Afficher_Infos( Code_Eleve );
 
Concernant les fonctions (function), un petit exemple explique
//x et n sont les paramètres formels
Function puissance(x: real; n: integer): real;
begin
if (x=0 and n<>0 ) then puissance := 1
     else puissance := exp(n*ln(x));
end;
 
//Appel de la fonction puissance (y à la puissance m)
//y et m sont les paramètres réels
readln(y); read(m);
p := puissance(y, m);
Il existe aussi la notion de récursivité où une procédure/fonction peut appeler elle-même mais avec un paramètre différent. L'exemple du calcul de la factorielle en est excellent

Code pascal :
1
2
3
4
5
6
Function Factorielle(n:integer):integer;
begin
if (n=0) then Factorielle := 1
  else Factorielle := Factorielle(n-1)*n; {ici on fait appel à la même      
                                            fonction mais avec le n-1}
end;

NB : il faut s'assurer que la fonction est récursive c'est-à-dire que f(n) peut s'écrire sous forme d'une fonction de n-1
compdev est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 29/07/2009, 14h50   #51
spidermario
Membre émérite
 
Étudiant
Inscription : septembre 2006
Messages : 510
Détails du profil
Informations personnelles :
Âge : 19

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 510
Points : 905
Points : 905
En effet, BASIC et Pascal font la différence entre fonctions et procédures. Cependant, ce n'est pas le cas du C ou du PHP. (En C, une procédure est juste un fonction dont le type de retour est void.)
spidermario est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2009, 20h39   #52
Yogui
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 722
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 722
Points : 28 861
Points : 28 861
Cela dépasse probablement le cadre de cet article mais, en PHP, il est courant de donner un type de retour à une méthode de classe :
Cela permet de faire des appels à la chaîne, sans refaire une nouvelle ligne de code (c'est une habitude de programmation comme une autre) :
Code :
1
2
3
4
5
6
7
// $form->getElement() renvoie un objet Form_Element dont presque toutes les méthodes se terminent par "return $this"
echo $form->getElement('firstname')
   ->addValidator('alpha')
   ->addFilter('newline')
   ->setValue($_GET['firstname']);
 
echo $element; // la valeur filtrée et validée
Plutôt que :
Code :
1
2
3
4
5
6
$element = $form->getElement('firstname');
$element->addValidator('alpha');
$element->addfilter('newline');
$element->setValue($_GET['firstname']);
 
echo $element; // la valeur filtrée et validée
D'autres programmeurs mettent systématiquement un return TRUE/FALSE/NULL; dans leurs procédures afin de déterminer si l'opération s'est bien passée.

Bref, la faible distinction entre prodécures et fonctions en PHP est bien utile. PHP est un langage faiblement typé, profitez-en pour faire de la programmation souple
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 30/07/2009, 10h24   #53
spidermario
Membre émérite
 
Étudiant
Inscription : septembre 2006
Messages : 510
Détails du profil
Informations personnelles :
Âge : 19

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 510
Points : 905
Points : 905
Ce n'est pas le typage faible qui permet ça...
Je pourrais faire la même chose en C++.
Code cpp :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
class Point
{
    private:
        int _x,_y;
    public:
        Point(int x=0,int y=0):_x(x),_y(y)
        {
        }
        ~Point()
        {
        }
        int getX() const
        {
            return _x;
        }
        int getY() const
        {
            return _y;
        }
        Point& setX(int x)
        {
            x=_x;
            return *this;
        }
        Point& setY(int y)
        {
            y=_y;
            return *this;
        }
}
Ensuite, grace au renvoi d'une référence vers l'objet, je peux faire
Code cpp :
1
2
3
 
Point myPoint;
myPoint.setX(5).setY(10);
Pourtant, C++ n'est pas faiblement typé.
spidermario est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/08/2009, 18h19   #54
phildur
Membre à l'essai
 
Homme Philippe Durand
Inscription : avril 2009
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Philippe Durand
Âge : 63
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : avril 2009
Messages : 21
Points : 22
Points : 22
Par défaut Excellent tuto M E R C I

Citation:
Envoyé par Dendrite Voir le message
Aussi ce tutoriel ne devrait pas rebuter l'informaticien qui connaît déjà un ou plusieurs autres langages, mais souhaiterait se mettre à PHP,
langage devenu incontournable pour la programmation web.
Ce lecteur-là pourra parcourir à son rythme le tuto qui suit et y trouver réponses à ses questions...

http://sylvie-vauthier.developpez.co...rand-debutant/


Salut Sylvie,
Je suis dans ce métier depuis 1973, si si, et je me suis toujours limité au dev hardware, au BIOS, aux télécoms (x25 par coeur), aux réseaux IP et au Système, surtout MSDOS UNIX WIN VOS AIX... pour Finir par Linux.
Mais jamais je n'avais touché au web. Alors quand j'ai voulu commencer, un collègue m'a recommandé ton tuto.
Premier bilan : j'ai perdu du poids de 97 kg début Juin à 88,5 kg aujourd'hui. Ceux qui ont suivi ton cours comprendront. Rien que ça te vaut déjà un grand merci.
Mais en plus aujourd'hui j'attaque mon premier développement sérieux, la gestion de mon club de tennis. Après ton tuto j'ai lu le bouquin de Référence "PHP & MySQL" de L. Welling et L. Thomson et je m'y colle.

Ton tuto est valable pour tout informaticien qui veut s'y mettre très vite. J'ai installé dans mon portable WampServer V2, Notepad++ et j'y ai copié ton tuto. Tous les jours dans le RER 2 x 30mn de trajet toujours assis m'ont suffit pour suire le cours et faire les exercices. J'ai retrouvé, tout l'art et le plaisir du debuoguage. Je suis fin prêt et c'est grâce à ton topo.
Au passage pour la décomposition des nombres, on s'arrête quand le carré du nombre essayé est > au nombre à décomposer. Et ça s'écrit en beaucoup moins de lignes que dans l'exemple, mais pour les vrais débutants peut-être pas.
phildur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2009, 12h13   #55
Victor01
Candidat au titre de Membre du Club
 
Inscription : septembre 2009
Messages : 92
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 92
Points : 12
Points : 12
Par défaut Beau Travail

Bonjour,
Je souhaiterai tout d'abord remercier Sylvie pour son boulot extraordinaire. En trés peu de temps je me suis un peu familiarisé avec ce langage Php qui m'interesse beaucoup.
Victor01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2009, 12h16   #56
grand_débutant
Invité de passage
 
Inscription : octobre 2009
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 1
Points : 1
Points : 1
Par défaut problème d'affichage PHP database sur firefox

bonjour,

en exécutant les TP des chapitre 6 et 7 (population de la base de données à travers un formulaire), j'ai eu les messages suivants lors de l'exécution sur firefox :


[ L'instruction à "0x01362072" emploie l'adresse mémoire "0x00000000". La mémoire ne peut pas être Read. ]

et le programme se termine en cliquant sur OK.

en vérifiant sur la base SQL, je retrouve bel et bien les enregistrements ayant été entrés sur firefox. et en Internet Explorer, je ne peux pas faire mieux, quand même je retrouve les données dans les tables utilisées.


pourriez vous m'aider concernant ce problème d'affichage ?

merci d'avance,

grand_débutant
grand_débutant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2009, 20h16   #57
Sanka59
Invité de passage
 
Inscription : février 2008
Messages : 2
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 2
Points : 2
Points : 2
Bonjour,
Merci pour cet excellent tuto j'ai déjà appris pas mal grâce a lui

Mais voila, j'ai un problème dans la partie VI (le formulaire pour ajouter des utilisateurs dans la base de données)
si j'essaye d'entrer des utilisateurs dans la bdd via ce formulaire il n'enregistre rien et me donne aucune erreur avec firefox ou ie,
pour étre sur j'ai copier/coller le tuto et toujours rien a faire.
J'utilise aptana studio qui a un navigateur intégré et lui me retourne cet erreur :
Citation:
Erreur SQL !INSERT INTO utilisateurs VALUES("","Jean","G","30","2009-10-29")
Incorrect integer value: '' for column 'ID' at row 1
J'ai etait voir la doc de MySQL et j'ai essayer de faire avec ce que j'ai compris étre "la bonne méthode", qui donne :
Code :
1
2
3
4
5
6
7
8
9
10
$query = sprintf("INSERT INTO utilisateurs VALUES('', '$pseudo', '$sexe', '$age', '$today')", mysql_real_escape_string($pseudo));
 
			$result = mysql_query($query);				   
 
			if (!$result){
			      $message  = 'Invalid query: ' . mysql_error() . "\n";
    			      $message .= 'Whole query: ' . $query;
    			      die($message);
 
			}
et j'ai toujours un message d'erreur
Citation:
Invalid query: Incorrect integer value: '' for column 'ID' at row 1 Whole query: INSERT INTO utilisateurs VALUES('', 'Jean', 'G', '30', '2009-10-29')
Donc en gros il n'arrive pas a incrémenté ID
Et moi je ne sais plus quoi faire

Pour infos j'ai suivi le tuto pour la création de la base:
Citation:
MaBase
-- utilisateurs
---- ID (int) (auto_increment)
---- pseudo (varchar)
---- sexe (char)
---- age (int)
---- dateIscription (date)
Voila, si quelqu'un a une idée je suis preneur.
D'avance merci.
Sanka59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2009, 20h26   #58
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 492
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 492
Points : 21 321
Points : 21 321
En fait il vaut mieux spécifier les colonnes et laisser mysql gérer l'autoincrément car selon la configuration du serveur, la chaine vide n'est pas forcemment acceptée.

Code :
$sql = 'INSERT INTO Utilisateurs (pseudo, sexe, age, DateInscription) VALUES("'.$pseudo.'","'.$sexe.'","'.$age.'","'.$today.'")';
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2009, 20h32   #59
Sanka59
Invité de passage
 
Inscription : février 2008
Messages : 2
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 2
Points : 2
Points : 2
Merci sabotage, ça fonctionne au poil maintenant
Sanka59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2009, 17h23   #60
Interruption13h
Membre chevronné
 
Avatar de Interruption13h
 
Houari D.Y
Inscription : août 2005
Messages : 600
Détails du profil
Informations personnelles :
Nom : Houari D.Y

Informations forums :
Inscription : août 2005
Messages : 600
Points : 636
Points : 636
Par défaut Merci

Salut!

J'avais un entretien d'embauche, il m'a demandé un travail à faire en php, et ce cours m'a vraiment aidé, et le titre de se cours est exactement ça (tuto pour grand débutant ),

Merci infiniment !
__________________
Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

(Mark TWAIN)
Interruption13h est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h17.


 
 
 
 
Partenaires

Hébergement Web