Erreur Undefined index: serveur

Résolu/Fermé
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 - 12 mai 2013 à 04:53
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 - 12 mai 2013 à 15:19
Bonjour,

Je souhaite autoriser mes membres à créer une guilde virtuelle pour plusieurs mmo en ligne, de cette façon ils pourront se retrouver sur mon site pour parler des mmo.

Pour cela, j'utilise le code suivant (page : creer-guilde.php), on est redirigé vers cette page avec ce code :
<?php echo '<a href="creer-guilde.php?id='.$id.'">'.$pseudo.'</a>'; ?>


Petit problème, quand un membre voudra créer une guilde : Notice: Undefined index: serveur in C:\wamp\www\monsite\creer-guilde.php on line 259

totalité du code :
<?php $title='Créer une guilde';
include ("head.php"); 
include("banniere.php"); ?>
<script type="text/javascript" src="js/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
	tinyMCE.init({
		// General options
		mode : "textareas",
    elements : "pres",
		theme : "advanced",
		skin : "o2k7",
    language : "fr",
    forced_root_block : false,
    force_br_newlines : true,
    force_p_newlines : false,
		plugins : "lists,pagebreak,style,layer,table,save,advhr,advimage,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups,autosave",

		// Theme options
		theme_advanced_buttons1 : "|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,fontselect,fontsizeselect,|,forecolor,backcolor,|",
		theme_advanced_buttons2 : "|,link,unlink,image,|,outdent,indent,|,tablecontrols,bullist,numlist,|,undo,redo,|,emotions,|",
    theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "center",
		theme_advanced_statusbar_location : "bottom",
		theme_advanced_resizing : false,

		// Example word content CSS (should be your site CSS) this one removes paragraph margins
		content_css : "css/word.css",

		// Drop lists for link/image/media/template dialogs
		template_external_list_url : "lists/template_list.js",
		external_link_list_url : "lists/link_list.js",
		external_image_list_url : "lists/image_list.js",
		media_external_list_url : "lists/media_list.js",

		// Replace values for the template plugin
		template_replace_values : {
			username : "Some User",
			staffid : "991234"
		}
	});
</script>
<?php
  if(!isset($_GET['id']))
    {
    $error_msg='<font color="#990000"><b>Vous devez <a href="mes-personnages.php#personnages"><font color="#990000"><u>selectionner un de vos personnage(s)</u></font></a> pour créer une guilde !</b></font>';
    $pseudo='Inconnu';
    $serveur='Inconnu';
?>
<table width="1015px" border="0" align="center">
  <tr>
    <th class="hleft" width="4">&nbsp;</th>
    <th class="hmiddle">Erreur</th>
    <th class="hright" width="4">&nbsp;</th>
  </tr>
  <tr>
    <td class="page" colspan="3" align="center"><br /><?php echo $error_msg; ?></td>
  </tr>
  <tr>
    <td class="page" colspan="3" width="1"><hr /></td>
  </tr>
</table>
<?php
  }
  else
    {
    //On verifie que lutilisateur existe
    $dn = mysql_query('select * from personnage where id_personnage="'.$_GET['id'].'"');
    if(!mysql_num_rows($dn)>0)
      {
      $error_msg='<font color="#990000"><b>Cette utilisateur n\'existe pas !</b></font>';
      $pseudo='Inconnu';
      $serveur='Inconnu';
?>
<table width="1015px" border="0" align="center">
  <tr>
    <th class="hleft" width="4">&nbsp;</th>
    <th class="hmiddle">Erreur</th>
    <th class="hright" width="4">&nbsp;</th>
  </tr>
  <tr>
    <td class="page" colspan="3" align="center"><br /><?php echo $error_msg; ?></td>
  </tr>
  <tr>
    <td class="page" colspan="3" width="1"><hr /></td>
  </tr>
</table>
<?php
    }
    else
      {
      $dnn = mysql_fetch_array($dn);
      if (!isset ($_POST['c-guilde']))
        {
        $pseudo=$dnn['pseudo'];
        $serveur=$dnn['serveur'];
        $error_msg='';
?>
<table width="1015px" border="0" align="center">
  <tr>
    <th class="hleft" width="4">&nbsp;</th>
    <th class="hmiddle">Faire de <?php echo $pseudo; ?> un meneur de guilde</th>
    <th class="hright" width="4">&nbsp;</th>
  </tr>
  <tr>
    <td class="page" colspan="3" align="center"><br /><?php echo $error_msg; ?></td>
  </tr>
  <tr>
    <td class="page" colspan="3" width="1"><hr /></td>
  </tr>
  <tr>
    <td class="page" width="4">&nbsp;</td>
    <td class="page">
      <table width="98%" border="0">
        <tr>
          <td width="252"><img src="./images/temple-guilde.png" title="Temple de guilde" alt="Temple de guilde" /></td>
          <td valign="top">
            <h1><u>Créez votre guilde</u></h1><br />
            <br />
            Vous avez l'âme d'un meneur ?<br />
            Vous pensez pouvoir gérer une guilde ?<br />
            Vous avez donc lu notre <a href="./tutoriel/creer-sa-guilde.php">Tutoriel de guilde</a> !
          </td>
        </tr>
      </table>
      <br />
      <div align="center">Maintenant que vous avez lu notre <a href="./tutoriel/creer-sa-guilde.php">Tutoriel de guilde</a> et que vous désirez créer votre guilde, c'est que vous avez l'âme d'un meneur !</div><br />
      <br />
      <form action="creer-guilde.php?id=<?php echo html_entity_decode($dnn['id_personnage'], ENT_QUOTES, 'UTF-8'); ?>" method="POST">
      <table width="98%" border="0">
        <tr>
          <td colspan="2"><h2><u>Veuillez remplire les champs suivants :</u></h2></td>
        </tr>
        <tr>
          <td colspan="2"><h3>Informations :</h3></td>
        </tr>
        <tr>
          <td width="30%">Serveur de la guilde :</td>
          <td width="70%">
            <select name="serveur" disabled="disabled">
              <option value="<?php echo $serveur; ?>"><?php echo $serveur; ?>
            </select>
          </td>
        </tr>
        <tr>
          <td width="30%">Meneur de la guilde : </td>
          <td width="70%"><input type="text" name="meneur" value=<?php echo '"'.$pseudo.'"'; ?> disabled="disabled" /></td>
        </tr>
        <tr>
          <td width="30%">Nom de la guilde : </td>
          <td width="70%"><input type="text" name="guilde" value="" /></td>
        </tr>
        <tr>
          <td width="30%">Niveau actuelle de la guilde : </td>
          <td width="70%"><input type="number" name="niveau" value="" /></td>
        </tr>
        <tr>
          <td width="30%">Orientation de la guilde : </td>
          <td width="70%">
            <select name="orientation" value="" >
              <option>Divers
              <option>Background
              <option>PvP
              <option>PvM
              <option>PvP et PvM
            </select>
          </td>
        </tr>
        <tr>
          <td width="100%" colspan="2"><hr></td>
        </tr>
        <tr>
          <td width="100%" colspan="2"><h3>Informations de recrutements :</h3></td>
        </tr>
        <tr>
          <td width="30%">Recrutement : </td>
          <td width="70%"><input type="radio" name="recutement" value="Ouvert" /> Ouvert - <input type="radio" name="recrutement" value="Fermé" /> Fermé</td>
        </tr>
        <tr>
          <td width="30%">Niveau minimum requis : </td>
          <td width="70%"><input type="number" name="n-requis" value="" /></td>
        </tr>
        <tr>
          <td width="100%" colspan="2"><hr></td>
        </tr>
          <td width="100%" colspan="2"><h3>Présentation de la guilde :</h3></td>
        </tr>
        <tr>
          <td width="100%" colspan="2" align="center" valign="top"><textarea type="text" name="presentation" style="width:80%;height:250px;" value="Faites une description de votre guilde" onFocus="if(this.value=='Faites une description de votre guilde')this.value=''">Faites une description de votre guilde</textarea></td>
        </tr>
        <tr>
          <td width="100%" colspan="2"><hr></td>
        </tr>
          <td width="100%" colspan="2"><h3>Enclos de la guilde :</h3></td>
        </tr>
        <tr>
          <td width="100%" colspan="2" align="center" valign="top">
            <table width="85%" border="1"">
              <tr>
                <td align="center" width="33%">Nombre de places</td><td align="center" width="34%">Zonne de l'enclos</td><td align="center" width="33%">Position exacte de l'enclos</td>
              </tr>
              <tr>
                <td align="center" width="33%"><input type="number" name="places-enclos" value="xx" onFocus="if(this.value=='xx')this.value=''" align="center" /></td><td align="center" width="34%"><input type="text" name="zonne-enclos" value="Champ ..." onFocus="if(this.value=='Champ ...')this.value=''" align="center" /></td><td align="center" width="33%"><input type="text" name="position-enclos" value="-xx;-xx" onFocus="if(this.value=='-xx;-xx')this.value=''"/></td>
              </tr>
            </table>
          </td>
        </tr>
        <tr>
          <td width="100%" colspan="2" align="center" valign="top"><input type="submit" name="c-guilde" value="Suivant"></td>
        </tr>
      </table>
      </form>
    </td>
    <td class="page" width="4">&nbsp;</td>
  </tr>
</table>
<?php
      }
      if (isset ($_POST['c-guilde']))
        {
        if ($id != $dnn['id_membre'])
          {
          $error_msg='<font color="#990000">Vous ne pouvez pas créer une guilde avec ce personnage !</font><br /> L\'id est '.$dnn['id_membre'].' !';
        }
        else
          {
          if ($_POST['guilde'] == NULL OR $_POST['niveau'] == NULL OR $_POST['orientation'] == NULL OR $_POST['recrutement'] == NULL )
            {
            $error_msg='<font color="#990000">Les champs marqué d\'un <b>*</b> doivent être rempli correctement !</font><br /><a href="creer-guilde.php?id='.$dnn['id_personnage'].'"><font color="#000099">Retour à la création de la guilde</font></a>';
          }
          else
            {
            if ($_POST['recrutement'] == 'Ouvert')
              {
              if (is_numeric($_POST["n-requis"]) && ($_POST["n-requis"]>0 && $_POST["n-requis"]<201))
                {
                $n_requis=$_POST["n-requis"];
              }
              else
                {
                $error_msg='<font color="#990000>Le niveau minimal requis pour le recrutement doit obligatoirement être un nombre entre <b>1</b> et <b>200</b> !</font>';
              }
            }
            else
              {
              $n_requis='';
            }
            // On vérifie si le personnage est déjà meneur de guilde
            $id2=$_GET['id'];
            $sql1 = 'select COUNT(*) from guilde where id_meneur="$id2" ';
            $req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
            $data1 = mysql_fetch_array($req1);
            if ($data1[0] != "0")
              {
              $error_msg='<font color="#990000><b>Ce personnage est déjà meneur d\'une guilde !</b></font>';
            }
            else
              {
              $guilde=htmlentities($_POST['guilde'], ENT_QUOTES, 'UTF-8');
              $serveur=htmlentities($_POST['serveur'], ENT_QUOTES, 'UTF-8');
              if (is_numeric($_POST["niveau"]) && ($_POST["niveau"]>0 && $_POST["niveau"]<201))
                {
                $sql = 'select COUNT(*) from guilde where guilde="$guilde" and serveur="$serveur" ';
                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
                $data = mysql_fetch_array($req);
                if ($data[0] != "0")
                  {
                  $error_msg='<font color="#990000"><b>Cette guilde existe déjà !</b></font>';
                }
                else
                  {
                  $date = date("d/m/Y");
                  $sql = "INSERT INTO personnage (id_meneur, guilde, serveur, lvl, recrutement, lvl_recrutement, presentation, date)
                  VALUES ('".$_GET['id']."', '".htmlentities($_POST['guilde'], ENT_QUOTES, 'UTF-8')."', '".$serveur."', '".htmlentities($_POST['niveau'], ENT_QUOTES, 'UTF-8')."', '".htmlentities($_POST['recrutement'], ENT_QUOTES, 'UTF-8')."', '".htmlentities($n_requis)."', '".htmlentities($_POST['presentation'], ENT_QUOTES, 'UTF-8')."', '".htmlentities($date, ENT_QUOTES, 'UTF-8')."' )";
                  $sql = mysql_query($sql);
                  if($sql)  
                    {                           
                    $error_msg='<font color="#009900"><b>Modifications réussie !</b></font>';  
                  }  
                  else  
                    {                           
                    $error_msg='<font color="#990000"><b>Erreur inconnue dans la requête SQL</b></font><br/>'.$sql.'<br/>';  
                  }
                }
              }
              else
                {
                $error_msg='<font color="#990000">Le niveau de la guilde doit obligatoirement être etnte <b>1</b> et <b>200</b> !</font>';
              }
            }
          }
        }
?>
<table width="1015px" border="0" align="center">
  <tr>
    <th class="hleft" width="4">&nbsp;</th>
    <th class="hmiddle">Création d'une guilde</th>
    <th class="hright" width="4">&nbsp;</th>
  </tr>
  <tr>
    <td class="page" colspan="3" align="center"><br /><?php echo $error_msg; ?></td>
  </tr>
  <tr>
    <td class="page" colspan="3" width="1"><hr /></td>
  </tr>
</table>
<?php
      }
    }
  }
include("copyright.php"); ?>


Ligne qui poserait problème :
$guilde=htmlentities($_POST['guilde'], ENT_QUOTES, 'UTF-8');
              $serveur=htmlentities($_POST['serveur'], ENT_QUOTES, 'UTF-8');
              if (is_numeric($_POST["niveau"]) && ($_POST["niveau"]>0 && $_POST["niveau"]<201))


Plus précisément
$serveur=htmlentities($_POST['serveur'], ENT_QUOTES, 'UTF-8');


Je passe bien part la méthode POST pour envoyer le formulaire et la variable $_POST['serveur'] est donc définie avec le formulaire (
<select name="serveur" disabled="disabled">
              <option value="<?php echo $serveur; ?>"><?php echo $serveur; ?>
            </select>
) (correctement affiché dans le formulaire).

Je bloc dessus depuis plusieurs jours sans pouvoir corriger cela.

Pourriez-vous m'aider ?

2 réponses

carabde Messages postés 60 Date d'inscription mercredi 8 juillet 2009 Statut Membre Dernière intervention 30 décembre 2021 30
12 mai 2013 à 12:09
Bonjour,
ça veut dire que l'index serveur que vous avez utilisé dans la variable $_POST n'existe pas
vérifiez si la $serveur a bien été créer et si elle a une valeur avant le moment de son utilisation.
0
rolly41 Messages postés 242 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 18 septembre 2023 1
Modifié par rolly41 le 12/05/2013 à 15:23
Au premier chargement de la page, la valeur de serveur est correctement
$dnn['serveur']
et ça affiche bien la valeur qui est dans la base de donnée.

je souhaite reprendre cette valeur avec un select
<?php $serveur=$dnn['serveur'];?><select name="serveur"  disabled="disabled"><option value"<php echo $serveur; ?>"><php echo $serveur; ?></select>


Mais il semblerai que
$_POST['serveur']
n'existe pas et je ne comprends pas pourquoi ...
0