Erreur PHP : Parse error: syntax error, unexpected ',', expecting ')'

Par Thimo, il y a 14 ans


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

erfou, il y a 14 ans

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, il y a 14 ans

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 ?

erfou, il y a 14 ans

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, il y a 14 ans

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

Thimo, il y a 14 ans

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