Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2011, 10h10   #1
Débutant
 
Avatar de ETVigan
 
Homme Esteban
Conseil - Consultant en systèmes d'information
Inscription : avril 2010
Messages : 632
Détails du profil
Informations personnelles :
Nom : Homme Esteban
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Finance

Informations forums :
Inscription : avril 2010
Messages : 632
Points : 122
Points : 122
Envoyer un message via MSN à ETVigan Envoyer un message via Skype™ à ETVigan
Par défaut Conseil pour conversion HTML - PHP

Bonjour,

J'ai une page HTML avec des bouts de scripts PHP (en gras).
Pour plus de faciliter, cette page est aussi en pièce jointe !
Je souhaiterais la coder soit en PHP 100%, soit en utilisant des classes.
Mais j’aimerais profiter de vos expériences et conseils....

Voici la page

Code :
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
<?php
// =============================================================================================================================== //
require_once $_SERVER['DOCUMENT_ROOT'] .  "/class/define/equate.php";       
$debug_myPage = true ;
// =============================================================================================================================== //
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"/><head>
	<link href="../css/jecrapahute.css" rel="stylesheet" type="text/css"/>
<?php
/**
* Inclusion metatags
*
*/
 	$pattern = $_SERVER['DOCUMENT_ROOT'] . "/metatags/" ;
	if (isset( $_SESSION[SCREEN] ) )
		{	$file = $pattern . $_SESSION[SCREEN] . ".php" ;
			if (!file_exists($file))
                { 	$file = $pattern . "index.php" ;
					user_error("Substition made for missing METATAGS[".$_SESSION[SCREEN]." - INDEX used ]" , E_USER_WARNING) ;
				}
		}
	else
		{	$file = $pattern . "index.php" ;
			user_error("Substition made for missing METATAGS[ INDEX used ]" , E_USER_WARNING) ;
		}
	require_once $file ;
// =============================================================================================================================== //
?>
	<title><?php if (isset($_SESSION[SITE])) echo $_SESSION[SITE]  ?></title>
</head>



<style type="text/css">
<!--
body,td,th,tr {
	font-family: Verdana, Arial, Helvetica, sans-serif;
}
body {
	background-color: #FF00FF;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 1004px;
}
-->
</style>
<body class="body">
<!-- ================================================ -->
<!--       Ancre pour retour au sommet de la page     -->
<!-- ================================================ -->
<a name="Top" id="Top"></a>

<!-- ============================================================================================================================ -->
<!--       Bannire horisontale                                                                                                   -->
<!-- ============================================================================================================================ -->
<table cellspacing="0" cellpadding="0" width="1004">
<!-- ============================================================================================================================ -->
<!--       Page de SIGNON                                                                                                         -->
<!-- ============================================================================================================================ -->
<tr>
    <td rowspan="2" class="signon">
		<?php 
			require_once $_SERVER['DOCUMENT_ROOT'] .  "/includes/signon.php";       
		?>	
	</td>
</tr>
</table>
<!-- ============================================================================================================================ -->
<!--       Bannière horisontale                                                                                                   -->
<!-- ============================================================================================================================ -->
<table cellspacing="0" cellpadding="0">
<tr>
    <td colspan="2">
    	<table cellspacing="0" cellpadding="0">
  		<tr>
    		<td class="paysviganais" width="113" height="113">
				<a href="../index.php" title="L'office du tourisme que je remercie !">
					<img src="../images/paysviganais.jpg" width="113" height="113" border="0"
						 title="Vous allez vous branche sur l'office du Tourisme du Vigan !"/>  
          		</a>			
			</td>
    		<td class="banniere">
				<a href="../index.php" title="Retour à l'index du site Je Crapahute !">
					<img src="../images/banniere.jpg" width="750" height="113" border="0"
						 title="Vous êtes sur le site: Je crapahute !"/>  
          		</a>			
            </td>
   			<td class="etvictor">
				<img src="../images/ETVictor.jpg" width="141" height="113"/>
			</td>
		</tr>
		</table>	
	</td>
</tr>
<!-- ============================================================================================================================ -->
<!--       Menu principal[horizontal]                                                                                             -->
<!-- ============================================================================================================================ -->
<tr>
    <td colspan="2" class="menu">		
		<?php 
			user_error("myPage.php[".$_SESSION[MENU]."]", E_USER_NOTICE) ;
 			if (isset( $_SESSION[MENU] ) && $_SESSION[MENU] )
	 			{	$req = $_SERVER['DOCUMENT_ROOT'] . "/includes/" . $_SESSION[MENU] . ".php" ;    
					if ($debug_myPage)
						user_error("Skeleton[".$req."]  found menu !!!" , E_USER_NOTICE) ;   
					require_once $req ;
				}
 			else
 				{	$req = $_SERVER['DOCUMENT_ROOT'] . "/includes/index.php" ;  
					user_error("Skeleton[SESSION[MENU][".$req."}] doesn't exist => substitution made !!!" , E_USER_WARNING) ;
				} 
			require_once $req ;
		?>
	</td>
</tr>
<!-- ============================================================================================================================ -->
<!--       Ligne de message généré pvia la variable [$kimsg]                                                                      -->
<!-- ============================================================================================================================ -->
<tr>
    <td colspan="2" class="klimsg">
		<table width="100%" cellspacing="0" cellpadding="0">
	  	<tr>
			<td width="20">&nbsp;</td>
    		<td>
				<?php
					if (isset( $_SESSION[SITE] ) )
						{	if (isset( $_SESSION[KLIMSG] ) )
                       			$klimsg = $_SESSION[KLIMSG] ;
							else
                       			{    $klimsg = "Bienvenue sur le site de " . $_SESSION[SITE] ;
						   			 user_error("Substition made for missing variable[KLIMSG]" , E_USER_WARNING) ;
								}
							echo " Je Crapahute a quelque chose à vous dire ==> " . $klimsg ;
						}
					else
						user_error("MYPAGE: la variable $SITE n'existe pas" , E_USER_ERROR) ;
				?>			
			</td>
    		<td>&nbsp;</td>
  		</tr>
		</table>	
	</td>
 </tr>
<!-- ============================================================================================================================ -->
<!--       Page centrale                                                                                                          -->
<!-- ============================================================================================================================ -->
<tr>
    <td>
		<table width="100%" class="areamain">
  		<tr valign="top">
    		<td width="20%" class="areasubmenu">
				<a href="../remarque.php" title=''>
					<img src="../images/working.png" 
		     			title="Soyez tolérant et constructif.... Cliquez cette image pour faire un commentaire, merci !" 
			 			width="125" height="39" border="0" />			
				</a>
				<?php  

					if ($this->screen)
                       {   	if ($this->submenu)
								$req = "/submenu/" . $this->submenu . ".php";
							else
                            	{	$req = "/submenu/index.php";
////////                       	  	user_error("Skeleton[.includes/" . $this->menu . ".php ] doesn't exist !!!" , E_USER_WARNING) ;
                            	}
                        	require_once $_SERVER['DOCUMENT_ROOT'] . $req ;
					    }
				?>			
				</td>
   				<td width="80%" class="areamain">
				<?php  
					{	if (isset( $_SESSION["FORM"] ) )
                           	$req ="/doc/do_" . $_SESSION[FORM] . ".php";
						else
                           	{   $req = "/doc/do_index.php";
								$_SESSION[FORM] = "index" ;
							   	user_error("Substition made for missing variable FORM" , E_USER_WARNING) ;
							}
						require_once $_SERVER['DOCUMENT_ROOT'] . $req ;
					}
				?>
		  <td>	
		</tr>
		</table>	
	</td>
<!-- ============================================================================================================================ -->
<!--       Adsense                                                                                                                -->
<!-- ============================================================================================================================ -->
    <td class="adsense">
		<?php 
			require_once $_SERVER['DOCUMENT_ROOT'] .  "/includes/adsense.php";       
		?>
	</td>
</tr>

<!-- ============================================================================================================================ -->
<!--       Bottom                                                                                                                 -->
<!-- ============================================================================================================================ -->
<tr>
    <td class="bottom">		
	  	<?php 
			require_once $_SERVER['DOCUMENT_ROOT'] .  "/includes/bottom.php";       
		?>	
	</td>
    
	<td colspan="2">
		<table class="right_cornner" cellspacing="0" cellpadding="0">
  		<tr>
    		<td colspan="2" width="60">&nbsp;</td>
    		<td width="20">
				<a href="#Top" title="Retour au sommet de l'écran">
					<img src="../images/top.gif" title="Retour au sommet de l'écran" width="20" height="20" />				
				</a>							            
			</td>
    		<td colspan="3" width="60">&nbsp;</td>
  		</tr>
		</table>	
	</td>
</tr>
<!-- ============================================================================================================================ -->
</table>
</body>
</html>
<!-- ============================================================================================================================ -->
Tous les conseils sont les bienvenus.
D'avance merci à tous
Fichiers attachés
Type de fichier : php myPage.php (9,7 Ko, 0 affichages)
__________________
Esteban
ETVigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 11h27   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Salut Esteban.

La séparation claire des vues et des traitements est une étape décisive dans l'industrialisation d'une application web. A ce jour, le pattern le plus employé dans ce but est le célèbre MVC. Tu trouvera sur le forum et dans les divers cours de developpez.com toutes les ressources qu'il te faut pour atteindre ce but.

L'idée générale est d'obtenir une architecture souple ou les vues, les traitements et les objets d'enregistrements sont totalement dé-corrélés.

Un schéma vaut plus que 2h d'explications:


On a donc 3 groupes de base:
- les contrôleurs sont responsables de la prise en charge des requêtes du client, ce sont eux qui vont appeler la logique métier et les objets modèle, en d'autre termes, ce sont eux qui sont responsables du contrôle et qui sont au commande de la machinerie.
- les objets modèles sont les structures de données de l'application, ils sont traditionnellement responsable de la lecture et de l'enregistrement en base de données (ces classes caractérisent ce qu'on appelle la couche de persistance). Ces modèles ne font jamais de vérification des inputs, c'est le rôle du contrôleur.
- les vues sont des scripts responsables de la mise en forme et de l'affichage de ce que leur a passé le contrôleur (après avoir effectué les traitements.)

Un exemple de call-flow pour l'affichage d'un Article dans une application MVC:
- le contrôleur d'articles va chercher et récupérer l'objet article après avoir validé la demande du client
- l'objet modèle invoqué par le contrôleur va tenter de récupérer les données sur la base
- le contrôleur va ensuite passer l'article à la vue qui va le mettre en forme (en HTML, en XML, en JSon etc.)
- le résultat produit est envoyé à l'utilisateur.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h37   #3
Débutant
 
Avatar de ETVigan
 
Homme Esteban
Conseil - Consultant en systèmes d'information
Inscription : avril 2010
Messages : 632
Détails du profil
Informations personnelles :
Nom : Homme Esteban
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Finance

Informations forums :
Inscription : avril 2010
Messages : 632
Points : 122
Points : 122
Envoyer un message via MSN à ETVigan Envoyer un message via Skype™ à ETVigan
Par défaut Modèle MVC, je cherche

Merci de ton information.
Je viens d'effectuer une recherche MVC dans le forum PHP et ne trouve rien.
As-tu un lien pour m’approcher du document explicatif ?

Merci bcp
__________________
Esteban
ETVigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h40   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Julien Pauli est un expert reconnu en PHP, il hante parfois le forum. Son article sur MVC est disponible ici: http://julien-pauli.developpez.com/t...vc-controleur/

-- Edit
L'article de Pauli s'attache davantage aux controlleurs et n'est pas assez général.
Il y en a un autre plus exhaustif ici: http://tahe.developpez.com/web/php/mvc/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h43   #5
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 318
Points : 3 318
http://julien-pauli.developpez.com/t...vc-controleur/
http://tahe.developpez.com/web/php/mvc/

-- edit --

Benjamin Delespierre ma devancé avec son édit sournois ^^
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h43   #6
Débutant
 
Avatar de ETVigan
 
Homme Esteban
Conseil - Consultant en systèmes d'information
Inscription : avril 2010
Messages : 632
Détails du profil
Informations personnelles :
Nom : Homme Esteban
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Finance

Informations forums :
Inscription : avril 2010
Messages : 632
Points : 122
Points : 122
Envoyer un message via MSN à ETVigan Envoyer un message via Skype™ à ETVigan
Par défaut Modèle MVC, merci

Merci, je l'ai
__________________
Esteban
ETVigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 15h26   #7
Débutant
 
Avatar de ETVigan
 
Homme Esteban
Conseil - Consultant en systèmes d'information
Inscription : avril 2010
Messages : 632
Détails du profil
Informations personnelles :
Nom : Homme Esteban
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Finance

Informations forums :
Inscription : avril 2010
Messages : 632
Points : 122
Points : 122
Envoyer un message via MSN à ETVigan Envoyer un message via Skype™ à ETVigan
Par défaut HTML PHP MVC

Tiens, un revenant...
Je vais imprimer cela demain et lire à tête reposée...

Merci Grunk
__________________
Esteban
ETVigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 10h54   #8
Débutant
 
Avatar de ETVigan
 
Homme Esteban
Conseil - Consultant en systèmes d'information
Inscription : avril 2010
Messages : 632
Détails du profil
Informations personnelles :
Nom : Homme Esteban
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Conseil - Consultant en systèmes d'information
Secteur : Finance

Informations forums :
Inscription : avril 2010
Messages : 632
Points : 122
Points : 122
Envoyer un message via MSN à ETVigan Envoyer un message via Skype™ à ETVigan
Par défaut Modèle MVC Compliqué ?

Grunk et autres,

Ce modèle me semble bien compliqué (trop pour mon petit site) que j'ai déjà structuré par un skelet.... mais il y a tjs du bon à prendre...
Mais de la à remplacer le tableau $Reponse au lieu de $_POST, c'est se gratter pour se faire rire....
Je reste sur ma faim quant à ma demande initiale...

Je creuse Grunk mais cela ma fait mal au dos (et ce n'est pas pour te faire rire !)
__________________
Esteban
ETVigan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 11h12   #9
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Citation:
Ce modèle me semble bien compliqué (trop pour mon petit site) que j'ai déjà structuré par un skelet.... mais il y a tjs du bon à prendre...
J'ai réalisé une implémentation MVC pour les sites de petite envergure qui tiens sur 9 classes:
- Autloader
- BaseController
- Model
- Database
- ViewManager
- Router
- Request
- Response
On peut pas vraiment dire que ce soit bien compliqué...

Citation:
Mais de la à remplacer le tableau $Reponse au lieu de $_POST, c'est se gratter pour se faire rire....
Non, surêment pas.

Voici ce à peut ressembler la classe Request dans une implémentation du MCV, tu constatera qu'il y a quelques différences par rapport à un pauvre tableau:
Code :
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
32
33
34
 
class Request {
 
    protected $_request_parameters;
 
    protected $_browser_capabilities;
 
    public function __construct () {
        $this->_request_parameters = $_REQUEST;
 
        $this->_browser_capabilities = get_browser($_SERVER['HTTP_USER_AGENT']);
    }
 
    public function __get ($key) {
        return isset($this->_request_parameters[$key]) ? $this->_request_parameters[$key] : null;
    }
 
    public function __set ($key, $value) {
        $this->_request_parameters[$key] = $value;
    }
 
    public function getRequestParameters () {
        return $this->_request_parameters;
    }
 
    public function addAll ($collection = array()) {
        if (!empty($collection))
            $this->_request_parameters = array_merge($this->_request_parameters, (array)$collection);
    }
 
    public function getBrowserCapabilities() {
        return $this->_browser_capabilities;
    }
}
Cette classe fournir un accès générique et sécurisé aux éléments de $_REQUEST, elle permet également de ramasser les browser capabilities...
On peut encore étendre ces fonctionnalités, mais pour l'heure ça convient pour des sites de petite envergure.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2011, 14h21   #10
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
Tu m'as signalé par PM que tu ne comprenais pas l'avantage d'un pattern MVC face à un mécanisme d'inclusion.

L'intérêt le plus évident est le découpage, en séparant les données des traitements et de leur affichage, on apporte plus de flexibilité à l'application.
Un autre intérêt est la factorisation, il s'agit de rester DRY (Don't Repeat Yourself), ce qui n'est pratiquement pas possible avec un schéma classique d'inclusions ou on est ammené à réécrire à plusieurs endroits des pans de code entiers.
Le MVC est capable d'apporter de la sécurité, les controlleurs ayant pour rôle de valider et de purifier les données avant qu'elles ne soit transmises à la logique métier et modèle.
Enfin, le MVC permet d'établir clairement le rôle et la responsabilité de chaque élément du système, ce qui permet non seulement d'identifier plus rapidement les problèmes mais surtout d'établir un processus clair et facile à comprendre dans toute la logique du traitement d'une requête (une représentation par un diagramme UML est d'ailleurs possible.)

Tu dis que tu reste sur ta faim mais ta demande initiale était bien:
Citation:
Je souhaiterais la coder soit en PHP 100%, soit en utilisant des classes.
Mais j’aimerais profiter de vos expériences et conseils....
On te réponds avec ce qui se fait de mieux à l'heure actuelle dans cette optique. Libre à toi de suivre le formalisme ou non.
Si je peux me permettre, un découpage en classes qui se résume à créer un ensemble de fonction mélangeant métier, vues et modèle ne constitue pas un design selon moi.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h52.


 
 
 
 
Partenaires

Hébergement Web