Hello there,

Je galère depuis ce matin avec un code PHP qui fait des siennes.
Je travaille avec la librairie TeamSpeak3 (pas de soucis avec celle-ci), je veut donc modifier les données d'un serveur via un formulaire placé sur une page modifier_serveur.php, j'envoi les données et les données sont traités par la page mod_serverOK.php

Voici la page mod_serverOK.php

<?php
      $ts3_ServerInstance = TeamSpeak3::factory("serverquery://serveradmin:pass1@ip:port"); // connexion au serverquery 

      $ts3_VirtualServer = $ts3_ServerInstance->serverGetById(1); // sélection du serveur sinon remplacé par la variable $servid
      if(!empty(
        $_POST'name'],
        $_POST'password'],
        $_POST'reserved_slots'],
        $_POST'welcomemessage'],
        $_POST'autostart'],
        $_POST'needed_identity_security_level'],
        $_POST'codec_encryption_mode'],
        $_POST'hostmessage_mode'],
        $_POST'hostmessage'],
        $_POST'hostbanner_url'],
        $_POST'hostbanner_gfx_url'],
        $_POST'hostbanner_gfx_interval'],
        $_POST'hostbutton_url'],
        $_POST'hostbutton_gfx_url'],
        $_POST'hostbutton_tooltip']
        )){
    // injection des données postés     
      $ts3_VirtualServer"virtualserver_name"] = $_POST'name'];
      $ts3_VirtualServer"virtualserver_password"] = $_POST'password'];
      $ts3_VirtualServer"virtualserver_reserved_slots"] = $_POST'reserved_slots'];
      $ts3_VirtualServer"virtualserver_welcomemessage"] = $_POST'welcomemessage'];
      $ts3_VirtualServer"virtualserver_autostart"] = $_POST'autostart'];
      $ts3_VirtualServer"virtualserver_needed_identity_security_level"] = $_POST'needed_identity_security_level'];
      $ts3_VirtualServer"virtualserver_codec_encryption_mode"] = $_POST'codec_encryption_mode'];
      $ts3_VirtualServer"virtualserver_hostmessage_mode"] = $_POST'hostmessage_mode'];
      $ts3_VirtualServer"virtualserver_hostmessage"] = $_POST'hostmessage'];
      $ts3_VirtualServer"virtualserver_hostbanner_url"] = $_POST'hostbanner_url'];
      $ts3_VirtualServer"virtualserver_hostbanner_gfx_url"] = $_POST'hostbanner_gfx_url'];
      $ts3_VirtualServer"virtualserver_hostbanner_gfx_interval"] = $_POST'hostbanner_gfx_interval'];
      $ts3_VirtualServer"virtualserver_hostbutton_url"] = $_POST'hostbutton_url'];
      $ts3_VirtualServer"virtualserver_hostbutton_gfx_url"] = $_POST'hostbutton_gfx_url'];
      $ts3_VirtualServer"virtualserver_hostbutton_tooltip"] = $_POST'hostbutton_tooltip'];
     echo "ok";
      }else{
      echo "nok";
    }
    ?>

et je rencontre donc cette erreur:

Parse error: syntax error, unexpected ',', expecting ')' in E:\Sites\www\teamspeak\apps\admin\mod_serverOK.php on line 33

Ligne 33: $_POST'name'],

Voici le formulaire placé sur modifier_serveur.php

<?php
      $ts3_ServerInstance = TeamSpeak3::factory("serverquery://serveradmin:pass1@ip:port"); // connexion au serverquery 

      $ts3_VirtualServer = $ts3_ServerInstance->serverGetById(1); // sélection du serveur sinon remplacé par la variable $servid

    ?>
    </p>
<form action="ok_modifier_serveur.php" method="post">
  <fieldset>
  <legend> General Settings </legend>
  <table class="data">
    <tr>
      <td class="label">Name:</td>
      <td><input type="text" name="name" value="<?php echo htmlspecialchars($ts3_ServerInstance) ?>" size="32" /></td>
    </tr>
    <tr>
      <td class="label">Password:</td>
      <td><input type="password" name="password" value="<?php echo $ts3_ServerInstance->virtualserver_password; ?>" size="32" /></td>
    </tr>
    <tr>
      <td class="label">Reserved Slots:</td>
      <td><input type="text" name="reserved_slots" value="<?php echo $ts3_ServerInstance->virtualserver_reserved_slots; ?>" size="8" maxlength="5" /></td>
    </tr>
    <tr>
      <td class="label">Welcome Message:</td>
      <td colspan="3">
        <textarea name="welcomemessage" rows="5" cols="90"><?php echo $ts3_ServerInstance->virtualserver_welcomemessage; ?></textarea>
      </td>
    </tr>
    <tr>
      <td class="label">Autostart:</td>
      <td colspan="3">
        <select name="autostart">
          <option value="1" <?php echo $ts3_ServerInstance->virtualserver_autostart == 1 ? "selected=\"selected\"" : ""; ?>>Enabled</option>
          <option value="0" <?php echo $ts3_ServerInstance->virtualserver_autostart == 0 ? "selected=\"selected\"" : ""; ?>>Disabled</option>
        </select>
      </td>
   </tr>

  </table>
  </fieldset>
  <br />
  <fieldset>
  <legend> Security Settings </legend>
  <table class="data">
    <tr>
      <td class="label">Minimum Identity Level:</td>
      <td><input type="text" name="needed_identity_security_level" value="<?php echo $ts3_ServerInstance->virtualserver_needed_identity_security_level; ?>" size="8" maxlength="5" /></td>
    </tr>
    <tr>
      <td class="label">Codec Encryption Mode:</td>
      <td>
        <select name="codec_encryption_mode">
          <option value="0" <?php echo $ts3_ServerInstance->virtualserver_codec_encryption_mode == 0 ? "selected=\"selected\"" : ""; ?>>Configure per channel</option>
          <option value="1" <?php echo $ts3_ServerInstance->virtualserver_codec_encryption_mode == 1 ? "selected=\"selected\"" : ""; ?>>Globally disabled</option>
          <option value="2" <?php echo $ts3_ServerInstance->virtualserver_codec_encryption_mode == 2 ? "selected=\"selected\"" : ""; ?>>Globally enabled</option>
        </select>
      </td>
    </tr>
  </table>
  </fieldset>
  <br />
  <fieldset>
  <legend> Host Message Settings </legend>
  <table class="data">
    <tr>
      <td class="label">Mode:</td>
      <td>
        <select name="hostmessage_mode">
          <option value="0" <?php echo $ts3_ServerInstance->virtualserver_hostmessage_mode == 0 ? "selected=\"selected\"" : ""; ?>>Disable message</option>
          <option value="1" <?php echo $ts3_ServerInstance->virtualserver_hostmessage_mode == 1 ? "selected=\"selected\"" : ""; ?>>Show message in log</option>
          <option value="2" <?php echo $ts3_ServerInstance->virtualserver_hostmessage_mode == 2 ? "selected=\"selected\"" : ""; ?>>Show message in modal dialog</option>
          <option value="3" <?php echo $ts3_ServerInstance->virtualserver_hostmessage_mode == 3 ? "selected=\"selected\"" : ""; ?>>Show message in modal dialog and close connection</option>
        </select>
      </td>
    </tr>
    <tr>
      <td class="label">Text:</td>
      <td>
        <textarea name="hostmessage" rows="5" cols="100"><?php echo $ts3_ServerInstance->virtualserver_hostmessage ?></textarea>
      </td>
    </tr>
  </table>
  </fieldset>
  <br />
  <fieldset>
  <legend> Host Banner </legend>
  <table class="data">
    <tr>
      <td class="label">URL:</td>
      <td><input type="text" name="hostbanner_url" value="<?php echo $ts3_ServerInstance->virtualserver_hostbanner_url ?>" size="64" /></td>
    </tr>
    <tr>
      <td class="label">GFX URL:</td>
      <td><input type="text" name="hostbanner_gfx_url" value="<?php echo $ts3_ServerInstance->virtualserver_hostbanner_gfx_url ?>" size="64" /></td>
    </tr>
    <tr>
      <td class="label">GFX Interval:</td>
      <td><input type="text" name="hostbanner_gfx_interval" value="<?php echo $ts3_ServerInstance->virtualserver_hostbanner_gfx_interval ?>" size="8" maxlength="5" /></td>
    </tr>
  </table>
  </fieldset>
  <br />
  <fieldset>
  <legend> Host Button </legend>
  <table class="data">
    <tr>
      <td class="label">URL:</td>
      <td><input type="text" name="hostbutton_url" value="<?php echo $ts3_ServerInstance->virtualserver_hostbutton_url ?>" size="64" /></td>
    </tr>
    <tr>
      <td class="label">GFX URL:</td>
      <td><input type="text" name="hostbutton_gfx_url" value="<?php echo $ts3_ServerInstance->virtualserver_hostbutton_gfx_url ?>" size="64" /></td>
    </tr>
    <tr>
      <td class="label">Tooltip:</td>
      <td><input type="text" name="hostbutton_tooltip" value="<?php echo $ts3_ServerInstance->virtualserver_hostbutton_tooltip ?>" size="32" /></td>
    </tr>
  </table>
  </fieldset>
  <input type="hidden" name="module" value="server" />
  <input type="hidden" name="action" value="domodify" />
  <input type="hidden" name="id" value="<?php echo $servid ?>" />
  <br />
  <input type="submit" value="Save Settings" />
</form>

et voici les données postés

Merci d'avance

5 réponses


Salut,
je crois qu'on ne peux tester qu'une seule variable a la fois avec empty. Par contre, je ne comprends pas pourquoi il te donne l'erreur en ligne 33. elle devrait apparaître en ligne 7 de mod_serverOK.php .
essaie de mettre une boucle pour tester les variables qui doivent etre !empty.

Eric

Thimo
Auteur

re,
il s'agit de la ligne 6 dans le copier collé mais bien de la ligne 33 dans mon fichier .php, je la met où la boucle ?

re aussi,
tu mets une boucle a la place de if (!empty($var1,$var2...)){
tu fais foreach qui parcours ton tableau $_POST et pour chaque valeur, tu testes si la valeur est vide ou non.
si tout est ok, tu autorises l'injection des données.
Eric

Thimo
Auteur

merci pour ta réponse, je regarde ça et je te tiens au courant.

Thimo
Auteur

merci pour ta réponse, je regarde ça et je te tiens au courant.