Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 19/09/2011, 20h07   #1
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
Par défaut delete checkbox multiple

bonjour j'ai un script messagerie, j'arrive à cocher toute les cas du checkbox.

quand je clique sur le bouton delete cela ne fonctionne pas merci de votre aide

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
<?php
//sécurité
include("sources/secuk.php");
//Page du haut
include("sources/haut.php");
?>
<script language="javascript">
<!--
function cocheToute(){
   var taille = document.forms['del'].elements.length;
   var element = null;
   for(i=0; i < taille; i++){
      element = document.forms['del'].elements[i];
      if(element.type == "checkbox")
         element.checked = true;
   }
 
}
//-->
</script>
<br/><br/><div id="m1">
<table width="500" border="0" align="center" />
  <tr>
    <td>
      <table width="100%" border="0">
        <tr>
          <td>
            <div align="center"><font>Messagerie
               - Messages re&ccedil;us</font></b> </font></div>
          </td>
        </tr>
      </table><br/><br/>
<?php
//Premiere Page
if(@!$start) {$start=0;}
 
//Recupere le nombre de messages au total
@$result=mysql_query ("SELECT * FROM messages WHERE dest='".$_SESSION['xxxx']."' ORDER by date DESC, heure DESC LIMIT $start,$messpagerec") or die ("Requete impossible");
 
//Nombre de messages recuperer dans $nbmessrec
$nbmessrec = mysql_num_rows($result);
 
echo("<table width=\"100%\" border=\"0\">\n<tr>\n<td>\n");
echo("<div align=\"left\"><b>Messages ");
echo("re&ccedil;us :</font> <font color=\"#FF0000\">$nbmessrec</b></font><br>\n");
echo("<form method=\"post\" name=\"del\" action=\"\" >");
?>
<a href="javascript:cocheToute();"><img src="images/erreur.JPG" width="15" height="16" border="0" title="TOUT COCHER" /></a>
<input name="delete" type="submit" id="delete" value="Delete">
<?php
echo("</div>");
echo("</td>\n</tr>\n</table><hr>");
echo("<table width=\"100%\" border=\"0\">\n<tr>");
echo("<td width=\"10%\"><center><b>Effacer</b></center></td>\n");
echo("<td width=\"20%\"><center><b>Dates</b></center></td>\n");
echo("<td width=\"20%\"><center><b>Exp&eacute;diteur</b></center></td>\n");
echo ("<td width=\"50%\"><center><b>sujet</b></center></a></td>");
echo("</tr>\n</table>");
 
//Affichage des messages trier par l'affichage par page
while ($row = mysql_fetch_array($result)) {
 
$idmess = $row["id"];
$envmess = $row["env"];
$titremess = $row["titre"];
$datemess = $row["date"];
 
//Date version dd mm yyyy
list($y,$m,$d) = explode("-",$datemess);
$tiret= "-";
$datemess2 = $d.$tiret.$m.$tiret.$y;
echo("<table width=\"100%\" border=\"0\" bgcolor=\"#FFFFFF\">\n<tr>");
?>
<td width="10%"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<?php
echo("<td width=\"20%\"><font color=\"#FF0000\"><center>$datemess2</center></font></td>\n");
echo("<td width=\"20%\"><center>$envmess</center></td>\n");
echo("<td width=\"50%\"><a href=\"message.php?aff=$idmess\"><center>$titremess</center></a></td>\n");
/*echo ("<td width=\"13%\"><a href=\"supmessagerie.php?suppr=$idmess\"><center>Effacer</center></a>");*/ 
echo("</tr>\n</table>");
}
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM messages WHERE id='$del_id'";
$result = mysql_query($sql);
}
 
// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=messagerie.php\">";
}
}
mysql_close();
//Si il n'y a pas encore de message  recu
if ($nbmessrec=="") {
echo("<table width=\"100%\" border=\"0\" bgcolor=\"#FFFFFF\"><tr>");
echo("<td><i>Aucun message pour le moment</i>");
echo("</td></form></tr></table>");}
?>
</td></tr>
  <tr>
 <td>
<?php
//Barre de navigation (page précédente - page suivante)
//Affichage ou non de l'url page precedente
echo("<table width=\"100%\" border=\"0\" align=\"center\"><tr><td width=\"30%\">");
if($start>0){
echo("<a href=\"messagerie.php?start=".($start-$messpagerec)."\">&lt;&lt; Pr&eacute;c&eacute;dent</a>");}
if($nbmessrec>0){
echo("</td><td width=\"40%\"><div align=\"center\">Page ");
echo ($start + $messpagerec)/$messpagerec;
echo (" sur ");
echo ceil($nbmessrec/ $messpagerec);}
echo("</div></td><td width=\"30%\">");
//Affichage ou non de l'url Page suivante
if($nbmessrec>$start+$messpagerec){
echo("<div align=\"right\"><a href=\"messagerie.php?start=".($start+$messpagerec)."\">Suivant &gt;&gt;</a></div>");}
echo("</td>\n</tr>\n</table>\n");
?>
</td></tr>
    <tr>
    <td><hr>
    <table width="100%" border="0">
  <tr>
    <td><a href="envmessagerie.php?idm=<?php echo''.$_SESSION['idm'].''; ?>"><font>Messages envoy&eacute;s</font></a></td>
    <td><div align="right"></div></td>
  </tr>
</table>
     </td>
  </tr>
</table><br />
<div align="center">
<a href="compte.php?idm=<?php echo''.$_SESSION['idm'].''; ?>">Retour à votre compte</a></div></div>
<br />
<?php
mysql_close();
//Page du bas
include("sources/bas.php");
?>
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 13h48   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 258
Points : 7 258
Bonjour,

1- ton code ne m'est pas lisible.
2- tes checkbox ne sont pas dans un formulaire.
3- $count et $checkbox sont initialisées où , où est ce que tu récupères les checkbox cochés ?
...

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 21h06   #3
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
je recherche une aide pour voir plus claire sur le sujet, Merci d'avance
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 03h45   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 258
Points : 7 258
Citation:
Envoyé par andry.aime Voir le message
1- ton code ne m'est pas lisible.
2- tes checkbox ne sont pas dans un formulaire.
3- $count et $checkbox sont initialisées où , où est ce que tu récupères les checkbox cochés ?
Citation:
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM messages WHERE id='$del_id'";
$result = mysql_query($sql);
}
ces variables viennent d'où? tu dois récupérer les checkbox cochés avec $_POST["checkbox"] .

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 22h22   #5
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
je sais pas si je suis sur la bonne voix, voici les modification que j'ai éffectué

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$envmess = $row["env"];
$titremess = $row["titre"];
$datemess = $row["date"];
$choix = array("".$idmess."");
//Date version dd mm yyyy
list($y,$m,$d) = explode("-",$datemess);
$tiret= "-";
$datemess2 = $d.$tiret.$m.$tiret.$y;
 
echo("<table width=\"100%\" border=\"0\" bgcolor=\"#FFFFFF\">\n<tr>");
echo("<td width=\"20%\"><center>$datemess2</center></td>\n");
echo("<td width=\"20%\"><center>$envmess</center></td>\n");
echo("<td width=\"47%\"><a href=\"message.php?aff=$idmess\"><center>$titremess</center></a></td>\n");
echo("<td width=\"13%\"><input type=\"checkbox\" id=\"msg[]\" name=\"$choix\"></td>");
/*echo ("<td width=\"13%\"><a href=\"messagerie.php?suppr=$idmess\"><center>Effacer</center></a></td>");*/
echo("</tr>\n
</table>");
if(!empty($_POST['msg']))  
{  
mysql_query('DELETE FROM messages WHERE id IN('.implode(',',$_POST['msg']).')');  
} 	
}
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2011, 06h16   #6
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 258
Points : 7 258
Bonjour,

C'est presque sauf que tu dois récupérer l'élement avec son name mais pas avec son id du coté php. Ton input n'a pas de value.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2011, 08h11   #7
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
bonjour merci de tes réponse

Donc je devrais faire passer $choix à la place msg
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 19h24   #8
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
Bonjour je reviens a mon sujet.

J'arrive à cocher mon (id) dans la table message mais un seul au lieu de toutes les ligne

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
 
<?php	
//Premiere Page
if(@!$start) {$start=0;}
 
//Recupere le nombre de messages au total
@$result=mysql_query ("SELECT * FROM messages WHERE dest='".$_SESSION['xxxx']."' ORDER by date DESC, heure DESC LIMIT $start,$messpagerec") or die ("Requete impossible");
//Nombre de messages recuperer dans $nbmessrec
$nbmessrec = mysql_num_rows($result);
 
echo("<table width=\"100%\" border=\"0\">\n<tr>\n<td>\n");
echo("<div align=\"left\"><b>Messages ");
echo("re&ccedil;us :<font color=\"#FF0000\">$nbmessrec</font></b><br />\n");
?>
<a href="JavaScript: check_all();">Tout coher</a> / <a href="JavaScript: uncheck_all();">Tout d&eacute;cocher</a>
<?php
/*echo("<a href='javascript:cocheToute();'><img src='images/cocher.gif' width='25' height='25' border='0' title='TOUT COCHER' /></a>");*/
echo("</div>");
echo("<form method=\"post\" name=\"F1\" action=\"\" ></td>\n</tr>\n</table><hr>");
echo("<table width=\"100%\" class=\"messagerie\" bgcolor=\"#0099CC\" border=\"0\">\n<tr>");
echo("<td width=\"20%\"><center><b>Date</b></center></font></td>\n");
echo("<td width=\"20%\"><center><b>Expediteur</b></center></font></td>\n");
echo("<td width=\"47%\"><center><b>Sujet</b></center></font></td>\n");
echo ("<td width=\"13%\"><center><b>Effacer</b></center></a></font></td>");
echo("</tr>\n</table>");
//Affichage des messages trier par l'affichage par page
while ($row = mysql_fetch_array($result)) {
 
$idmess = $row["id"];
$envmess = $row["env"];
$titremess = $row["titre"];
$datemess = $row["date"];
$choix = array("$idmess");
for($i=0;$i<sizeof($choix);$i++) // tant que $i est inferieur au nombre d'éléments du tableau...
    {
//Date version dd mm yyyy
list($y,$m,$d) = explode("-",$datemess);
$tiret= "-";
$datemess2 = $d.$tiret.$m.$tiret.$y;
 
echo("<table width=\"100%\" border=\"0\" bgcolor=\"#FFFFFF\">\n<tr>");
echo("<td width=\"20%\"><center>$datemess2</center></td>\n");
echo("<td width=\"20%\"><center>$envmess</center></td>\n");
echo("<td width=\"50%\"><a href=\"message.php?aff=$idmess\"><center>$titremess</center></a></td>\n");
echo("<td width=\"10%\">");?>
<input onClick="JavaScript: highlight('tr1', 'one', this.id);" type="checkbox" id="<?php echo $choix[$i].''; ?>" name="id[]" value="1">
<?php
echo("</td>");
echo("</tr>\n
</table></form>");	
}
}
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h13   #9
Invité régulier
 
Inscription : mai 2009
Messages : 12
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 12
Points : 7
Points : 7
Code :
<input type="checkbox" name="id[]" value="<?php echo $row["id"]; ?>">
OU
Code :
<input type="checkbox" name="id["<?php $row["id"]; ?>"]" value="1">
Ensuite tu utilises un foreach sur $_POST['id'] et tu travailles sur la clé ou la valeur qui représente donc l'id :
Code :
foreach($_POST['id'] as $cle => $value)
jinfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 21h17   #10
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
bonsoir cela ne fonction toujours pas, je ne coche que un seul chechbox de ma messagerie alors que j'ai quatre message personne a une idée svp

speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 22h16   #11
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
modification nouvel avec array et foreach quand je fait mon echo $valeur ne me marque rien svp une aide serai la bienvenue , je coche plus rien
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
 
<?php
//Affichage des messages trier par l'affichage par page
while ($row = mysql_fetch_array($result)) {
$idmess = $row["id"];
$envmess = $row["env"];
$titremess = $row["titre"];
$datemess = $row["date"];
 
//Date version dd mm yyyy
list($y,$m,$d) = explode("-",$datemess);
$tiret= "-";
$datemess2 = $d.$tiret.$m.$tiret.$y;
 
echo("<table width=\"100%\" border=\"0\" bgcolor=\"#FFFFFF\">\n<tr>");
echo("<td width=\"20%\"><center>$datemess2</center></td>\n");
echo("<td width=\"20%\"><center>$envmess</center></td>\n");
echo("<td width=\"50%\"><a href=\"message.php?aff=$idmess\"><center>$titremess</center></a></td>\n");
echo("<td width=\"10%\">");
$messa = array("id"=> $idmess);
foreach($messa as $valeur)
{
	echo'$valeur';
?>
<input type=checkbox  name=list  value="<? echo $valeur; ?>"/>
<?php
}
echo("</td>");
/*echo ("<td width=\"13%\"><a href=\"messagerie.php?suppr=$idmess\"><center>Effacer</center></a></td>");*/
echo("</tr>\n
</table></form>");	
}
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2011, 01h03   #12
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Bonjour,
Je suis depuis le début ce topic, et il me semble que sur des conseils que tu suis en partie, tu augmente tes problémes
Je te proposes de tesrer ce php qui s'appelles a.php
lorsque tu l'aura testé tu comprendra je crois comment l'adapter de façon enfantine a ton PHP
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
 
<html><body><b>
<form method='POST' action='a.php'>
<input type="checkbox" name="LaTbl[]" value="PHP"> PHP<br>
<input type="checkbox" name="LaTbl[]" value="Language C"> Langage C<br>
<input type="checkbox" name="LaTbl[]" value="VB"> VB<br>
<input type="checkbox" name="LaTbl[]" value="Assembleur"> Assembleur<br>
<input type="checkbox" name="LaTbl[]" value="HTML"> HTML<br>
<input type="submit" value="Soumettre">
</form>
<?PHP
 
if (isset($_POST["LaTbl"]))
 {
  echo "vous avez coche<br />";
 foreach ($_POST['LaTbl'] as &$value) {
    echo ("".trim($value)."<br />");
    $value = $value * 2;
}
 
 }
 else { echo "pas encore de donnees<br />";}
?>
</b></body></html>
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 10h39   #13
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
Bonjour et Merci à toi christele_r j'ai trouvé la solution c'est trop simple on recherche toujours le plus loin ce qui est tout près

tout ce passe entre le code ici-dessous

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
echo("<form method=\"post\"  action=\"mess_del.php?suppr=ok\" onSubmit=\"post.disabled=true;\" name=\"del\" >");
echo("<table width=\"100%\" border=\"0\">\n<tr>\n<td>\n");
echo("<div align=\"left\"><b>Messages ");
echo("re&ccedil;us :<font color=\"#FF0000\">$nbmessrec</font></b><br />\n");
echo("<a href=\"#\" onclick=\"javascript:document.del.submit();\"><img src=\"images/poubelle.gif\" width=\"25\" height=\"25\" title=\"SUPPRIMER\"/></a>");
echo("</div>");
echo("</td>\n</tr>\n</table><hr>");
echo("<table width=\"100%\" class=\"messagerie\" bgcolor=\"#0099CC\" border=\"0\">\n<tr>");
echo("<td width=\"20%\" align=\"left\">");
echo("<input type=\"checkbox\" name=\"checkall\" onclick=\"checkUncheckAll(this);\" ><b>supprimer</b></td>");
echo("<td width=\"20%\"><center><b>Date</b></center></td>\n");
echo("<td width=\"20%\"><center><b>Expediteur</b></center></td>\n");
echo("<td width=\"40%\"><center><b>Sujet</b></center></td>\n");
echo("</tr>\n</table>");
speedylol est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2011, 12h55   #14
Membre confirmé
 
Inscription : juillet 2011
Messages : 146
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 146
Points : 253
Points : 253
Tu devrait regarder la syntaxe HEREDOC (http://www.php.net/manual/fr/languag...syntax.heredoc) ou fermer puis ré ouvrir tes balises php.

Mais maintenir 20 lignes d'écho avec des échappements c'est se compliquer la vie

L'avantage de fermer et réouvrir tes balises php c'est que souvent ton IDE te permettra d'avoir la coloration syntaxique html et te montrera des éventuelles erreurs.
Tolriq est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2011, 12h12   #15
Membre du Club
 
Homme Philippe
Inscription : octobre 2004
Messages : 275
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 45
Localisation : Belgique

Informations forums :
Inscription : octobre 2004
Messages : 275
Points : 57
Points : 57
Envoyer un message via MSN à speedylol
Bonjour c'est un script que j'ai repris et que j'améliore petit à petit .

Merci a toi
speedylol 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 03h26.


 
 
 
 
Partenaires

Hébergement Web