Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous, je suis tout nouveau ici et content d'etre là
Je vous expose mon problème, j'ai un site internet dans lequel les internautes ont un compte (c'est des comptes d'association) ! Jusqu'ici pas de soucis particulier. Les adhérents peuvent ensuite modifier leurs informations et c'est là que ca se gate !
Quand un adhérent se connecte au site et qu'il veut modifier les informations de son compte, il arrive sur la page en question. Dans cette page j'ai plusieurs champs obligatoires tout fonctionne bien de ce coté là. Donc quand je clique sur modifier j'arrive sur ma page qui me permet de modifier mes infos, admettons que je fasse une erreur sur un champs obligatoire, et que je valide ma page, à ce moment là je reviens donc sur ma page avec écris en haut et en rouge le ou les champs qui posent problemes. Et à ce moment là, je perds 2 champs qui sont des champs à selection multiple...
C'est evidemment du PHP et je ne suis qu'un novice en PHP, et j'ai récupéré ce site que je dois débuggué dans tous les sens. Autre info, c'est un joomla et ce morceau de code est un ajout via le module "sourcerer".
Merci de votre aide
voici le code de la page :
<?php
$user = JFactory::getUser();
$db = JFactory::getDbo();
$admin=false;
$adherent = false;
$group = $user->groups;
foreach ($user->groups as $group)
{
if($group == 7 || $group == 8)
$admin=true;
if($group == 15)
$adherent=true;
}
if($admin)
$id=$_GET['id_assoc'];
else
$id=$user->id;
$message='';
$requete = 'SELECT * FROM TYPE_ASSOCIATION WHERE ID_TYPE_ASSOCIATION != 11';
$requete2 = 'SELECT * FROM ASSOCIATION a, VILLE v, a13m8_user_usergroup_map uum, a13m8_users u WHERE a.ID_VILLE = v.ID_VILLE AND uum.user_id = u.id AND a.ID_ASSOCIATION = u.id AND ID_ASSOCIATION ='.$id;
$db->setQuery($requete);
$domaines = $db->loadObjectList();
$db->setQuery($requete2);
$association = $db->loadObjectList();
$requete3 = 'SELECT * FROM VILLE WHERE ID_EPCI = '.$association[0]->ID_EPCI.' ORDER BY NOM_VILLE';
$db->setQuery($requete3);
$villes =$db->loadObjectList();
$req2 = "SELECT e.ID_EPCI as ide, NOM_EPCI, ID_VILLE as idv, NOM_VILLE FROM EPCI e, VILLE v WHERE v.ID_EPCI = e.ID_EPCI ORDER BY e.NOM_EPCI, v.NOM_VILLE;";
if(!empty($_POST['valider']))
{
if(!empty($_POST['nomAssociation']))
{
if(strlen($_POST['nomAssociation']) < 3)
$message .= 'Le nom de l\'association doit être d\'au moins 3 caractères.<br/>';
if(strlen($_POST['nomAssociation']) > 100)
$message .= 'Le nom de l\'association doit être inférieur à 100 caractères.<br/>';
}
else $message .= 'Le nom de l\'association est obligatoire.<br/>';
if(!empty($_POST['acronyme']))
{
if(strlen($_POST['acronyme']) < 2)
$message .= 'L\'acronyme doit être d\'au moins 2 caractères.<br/>';
if(strlen($_POST['acronyme']) > 10)
$message .= 'L\'acronyme doit être inférieur à 10 caractères.<br/>';
}
if(empty($_POST['domaine']))
$message .= 'Le domaine d\'activité est obligatoire.<br/>';
if(empty($_POST['epci']))
$message .= 'Le secteur est obligatoire.<br/>';
if(empty($_POST['ville']))
$message .= 'La ville est obligatoire.<br/>';
if(!empty($_POST['adresse']))
{
if(strlen($_POST['adresse']) < 10)
$message .= 'L\'adresse doit être d\'au moins 10 caractères.<br/>';
if(strlen($_POST['adresse']) > 100)
$message .= 'L\'adresse doit être inférieure à 100 caractères.<br/>';
}
else $message .= 'L\'adresse est obligatoire.<br/>';
if(!empty($_POST['codePostal']))
{
if(strlen($_POST['codePostal']) != 5 || !is_numeric($_POST['codePostal']))
$message .= 'Le code postal doit être composé de 5 chiffres.<br/>';
}
else $message .= 'Le code postal est obligatoire.<br/>';
if(!empty($_POST['telephoneFixe']))
{
if(strlen($_POST['telephoneFixe']) > 14)
$message .= 'Le numéro de téléphone fixe doit être composé de 10 chiffres.<br/>';
}
else $message .= 'Le numéro de téléphone fixe est obligatoire.<br/>';
// if(!empty($_POST['telephonePortable']))
// {
// if(strlen($_POST['telephonePortable']) > 14)
// $message .= 'Le numéro de téléphone portable doit être composé de 10 chiffres.<br/>';
// }
if(!empty($_POST['presentation']))
{
if($adherent)
{
if(strlen($_POST['presentation']) > 1500)
$message .= 'La présentation doit être inférieure à 1500 caractères.<br/>';
}
else
{
if(strlen($_POST['presentation']) > 60)
$message .= 'La présentation doit être inférieure à 60 caractères.<br/>';
}
}
else $message .= 'La présentation est obligatoire.<br/>';
if($adherent)
{
if(!empty($_POST['siteWeb']))
{
if(strlen($_POST['siteWeb']) > 100)
$message .= 'La site web doit être inférieur à 100 caractères.';
}
if(!empty($_POST['nomContact']))
{
if(strlen($_POST['nomContact']) > 100)
$message .= 'Le nom du contact doit être inférieur à 100 caractères.';
}
if(!empty($_POST['fonctionContact']))
{
if(strlen($_POST['fonctionContact']) > 100)
$message .= 'La fonction du contact doit être inférieur à 100 caractères.';
}
if(!empty($_POST['telephoneContact']))
{
if(strlen($_POST['telephoneContact']) > 14)
$message .= 'Le numéro de téléphone du contact doit être composé de 10 chiffres.<br/>';
}
if(!empty($_POST['datesImportantes']))
{
if(strlen($_POST['datesImportantes']) > 300)
$message .= 'Les dates importantes doivent être inférieures à 300 caractères.';
}
if(!empty($_POST['permanences']))
{
if(strlen($_POST['permanences']) > 100)
$message .= 'Les permanences doivent être inférieures à 100 caractères.';
}
}
if(empty($message))
{
if($adherent == false)
$update = 'UPDATE ASSOCIATION a SET a.NOM = "'.$_POST['nomAssociation'].'", a.ACRONYME = "'.$_POST['acronyme'].'", a.ID_TYPE_ASSOCIATION = '.$_POST['domaine'].', a.ID_VILLE = '.$_POST['ville'].', a.ADRESSE = "'.$_POST['adresse'].'", a.CODE_POSTAL = "'.$_POST['codePostal'].'", a.TELEPHONE_FIXE = "'.$_POST['telephoneFixe'].'",
a.TELEPHONE_PORTABLE = "'.$_POST['telephonePortable'].'", a.DESCRIPTION = "'.$_POST['presentation'].'" WHERE ID_ASSOCIATION = '.$id.';';
else
$update = 'UPDATE ASSOCIATION a SET a.NOM = "'.$_POST['nomAssociation'].'", a.ACRONYME = "'.$_POST['acronyme'].'", a.ID_TYPE_ASSOCIATION = '.$_POST['domaine'].', a.ID_VILLE = '.$_POST['ville'].', a.ADRESSE = "'.$_POST['adresse'].'", a.CODE_POSTAL = "'.$_POST['codePostal'].'", a.TELEPHONE_FIXE = "'.$_POST['telephoneFixe'].'",
a.TELEPHONE_PORTABLE = "'.$_POST['telephonePortable'].'", a.DESCRIPTION = "'.$_POST['presentation'].'", a.SITE_INTERNET = "'.$_POST['siteWeb'].'", a.NOM_CONTACT = "'.$_POST['nomContact'].'", a.FONCTION_CONTACT = "'.$_POST['fonctionContact'].'", a.TELEPHONE_CONTACT = "'.$_POST['telephoneContact'].'", a.DATES_IMPORTANTES = "'.$_POST['datesImportantes'].'", a.PERMANENCES = "'.$_POST['permanences'].'" WHERE ID_ASSOCIATION = '.$id.';';
$db->setQuery($update);
$db->query();
$chemin ='Location: /index.php/component/content/article?id=100&id_assoc='.$id;
header($chemin);
}
}
if(!empty($message))
echo '<p style="text-align:center;"><font color="red">Erreur</font></p><p><font color="red">'.$message.'</font></p>';
?>
<a href="<?php echo '/index.php/component/content/article?id=100&id_assoc='.$user->id;?>">Retour aux informations générales</a>
<h1>Modifier les informations</h1>
<form method="post" enctype="multipart/form-data">
<table class="formEvent">
<tr>
<td>Nom de l'association*</td>
<td><input type="text" name="nomAssociation" style="width:350px;" value="<?php if(!empty($_POST['nomAssociation'])) echo htmlspecialchars($_POST['nomAssociation']); elseif(!empty($association[0]->NOM)) echo htmlspecialchars($association[0]->NOM);?>" /></td>
</tr>
<tr>
<td>Acronyme</td>
<td><input type="text" name="acronyme" style="width:350px;" value="<?php if(!empty($_POST['acronyme'])) echo htmlspecialchars($_POST['acronyme']); elseif(!empty($association[0]->ACRONYME)) echo htmlspecialchars($association[0]->ACRONYME);?>" /></td>
</tr>
<tr>
<td>Domaine d'activité*</td>
<td>
<select name="domaine" style="width:350px;" >
<option value="">----</option>
<?php
foreach($domaines as $domaine)
{
echo '<option value="'.$domaine->ID_TYPE_ASSOCIATION.'"';
if(!empty($_POST['domaine']) && $_POST['domaine'] == $domaine->ID_TYPE_ASSOCIATION)
echo 'selected';
if($association[0]->ID_TYPE_ASSOCIATION == $domaine->ID_TYPE_ASSOCIATION)
echo 'selected';
echo '>'.$domaine->LIBELLE.'</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td>Secteur*</td>
<td>
<?php
$temoin_e = 0;
$epci = array();
$id = 0;
$db->setQuery($req2); // execution de la requéte
$rows = $db->loadObjectList();
foreach($rows as $row)
{
$e = $row->ide;
$v = $row->idv;
/* Je vérifie si je suis toujours dans la même epci, sinon je crée les tableaux nécessaires */
if($temoin_e != $e)
{
$epci[$e] = array();
/* J'ajoute l'epci */
$epci[$e][0] = $row->NOM_EPCI;
$epci[$e][1] = array();
$epci[$e][2] = array();
$temoin_e = $e;
$id = 0;
}
/* J'ajoute les villes */
$epci[$e][1][$id] = $v;
$epci[$e][2][$id] = $row->NOM_VILLE;
$id++;
}
$chaine = htmlspecialchars(serialize($epci), ENT_QUOTES);
?>
<script type="text/javascript">
/* <![CDATA[ */
<!--
/*
* Ici, on transmets la chaîne sérialisée à JavaScript
* pour la transformer en tableau indexé JavaScript
*/
var tableau = new PhpArray2Js('<?php echo $chaine; ?>');
var tab = tableau.retour();
// -->
/* ]]> */
</script>
<?php
echo '<select name="epci" id="epci" onchange="changeVille(tab,this.value, false);" style="width:350px;" >';
echo '<option value="" selected>-----</option>';
foreach($epci as $nr => $nom)
{
echo '<option value="'.htmlspecialchars($nr).'"';
if (!empty ($_POST['epci']) && $_POST['epci']== $nr) echo 'selected';
if($association[0]->ID_EPCI == $nr)
echo 'selected';
echo '>'.htmlspecialchars($nom[0]).'</option>';
}
echo '</select>';
?>
</td>
</tr>
<tr>
<td>Ville*</td>
<td>
<span id="blocVilles">
<select name="ville" style="width:350px;" >
<option value="">-----</option>
<?php
foreach($villes as $ville)
{
echo '<option value="'.$ville->ID_VILLE.'"';
if ($association[0]->ID_VILLE == $ville->ID_VILLE) echo 'selected';
echo '>'.htmlspecialchars($ville->NOM_VILLE).'</option>';
}
?>
</select>
</span>
</td>
</tr>
<tr>
<td>Adresse*</td>
<td><input type="text" style="width:350px;" name="adresse" value="<?php if(!empty($_POST['adresse'])) echo htmlspecialchars($_POST['adresse']); elseif(!empty($association[0]->ADRESSE)) echo htmlspecialchars($association[0]->ADRESSE);?>" /></td>
</tr>
<tr>
<td>Code postal*</td>
<td><input type="text" style="width:350px;" name="codePostal" value="<?php if(!empty($_POST['codePostal'])) echo htmlspecialchars($_POST['codePostal']); elseif(!empty($association[0]->CODE_POSTAL)) echo htmlspecialchars($association[0]->CODE_POSTAL)?>" /></td>
</tr>
<tr>
<td>Téléphone fixe*</td>
<td><input type="text" style="width:350px;" name="telephoneFixe" value="<?php if(!empty($_POST['telephoneFixe'])) echo htmlspecialchars($_POST['telephoneFixe']); elseif(!empty($association[0]->TELEPHONE_FIXE)) echo htmlspecialchars($association[0]->TELEPHONE_FIXE);?>" /></td>
</tr>
<tr>
<td>Téléphone portable</td>
<td><input type="text" style="width:350px;" name="telephonePortable" /></td>
</tr>
<tr>
<td>Présentation*</td>
<td><textarea id="textarea_1" name="presentation" style="width:350px; height:150px; max-width:350px; max-height:150px;"><?php if(!empty($_POST['presentation'])) echo htmlspecialchars($_POST['presentation']); elseif(!empty($association[0]->DESCRIPTION)) echo htmlspecialchars($association[0]->DESCRIPTION); ?></textarea>
<br/>
Il vous reste <span id="carac_reste_textarea_1"></span> caractères.
<?php if($adherent)
{
?>
<script type="text/javascript">
<!--
maxlength_textarea('textarea_1','carac_reste_textarea_1',1500);
-->
</script>
<?php
}
else
{
?>
<script type="text/javascript">
<!--
maxlength_textarea('textarea_1','carac_reste_textarea_1',300);
-->
</script>
<?php
}
?>
</td>
</tr>
<?php
if($adherent)
{
?>
<tr>
<td>Site Internet</td>
<td><input type="text" name="siteWeb" style="width:350px;" value="<?php if(!empty($_POST['siteWeb'])) echo htmlspecialchars($_POST['siteWeb']); elseif(!empty($association[0]->SITE_INTERNET)) echo htmlspecialchars($association[0]->SITE_INTERNET);?>"/></td>
</tr>
<tr>
<td>Nom du contact</td>
<td><input type="text" name="nomContact" style="width:350px;" value="<?php if(!empty($_POST['nomContact'])) echo htmlspecialchars($_POST['nomContact']); elseif(!empty($association[0]->NOM_CONTACT)) echo htmlspecialchars($association[0]->NOM_CONTACT);?>"/></td>
</tr>
<tr>
<td>Fonction du contact</td>
<td><input type="text" name="fonctionContact" style="width:350px;" value="<?php if(!empty($_POST['fonctionContact'])) echo htmlspecialchars($_POST['fonctionContact']); elseif(!empty($association[0]->FONCTION_CONTACT)) echo htmlspecialchars($association[0]->FONCTION_CONTACT);?>"/></td>
</tr>
<tr>
<td>Telephone du contact</td>
<td><input type="text" name="telephoneContact" style="width:350px;" value="<?php if(!empty($_POST['telephoneContact'])) echo htmlspecialchars($_POST['telephoneContact']); elseif(!empty($association[0]->TELEPHONE_CONTACT)) echo htmlspecialchars($association[0]->TELEPHONE_CONTACT);?>"/></td>
</tr>
<tr>
<td>Dates importantes</td>
<td><textarea id="textarea_2" name="datesImportantes" style="width:350px; height:150px; max-width:350px; max-height:150px;"><?php if(!empty($_POST['datesImportantes'])) echo htmlspecialchars($_POST['datesImportantes']); elseif(!empty($association[0]->DATES_IMPORTANTES)) echo htmlspecialchars($association[0]->DATES_IMPORTANTES);?></textarea>
<br/> Il vous reste <span id="carac_reste_textarea_2"></span> caractères.
</td>
</tr>
<script type="text/javascript">
<!--
maxlength_textarea('textarea_2','carac_reste_textarea_2',300);
-->
</script>
<tr>
<td>Permanences</td>
<td><input type="text" name="permanences" style="width:350px;" value="<?php if(!empty($_POST['permanences'])) echo htmlspecialchars($_POST['permanences']); elseif(!empty($association[0]->PERMANENCES)) echo htmlspecialchars($association[0]->PERMANENCES);?>"/></td>
</tr>
<?php
}
?>
<tr>
<td colspan="2" style="text-align:center"><input type="submit" value="Valider les modifications" name="valider"/></td>
</tr>
</table>
</form>
Pages : 1