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
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
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