estoy adaptando un admin panel de iks para iptv y se supone que toda la info vaya a la base de datos y al servidor por medio de http. En mi caso no se comunica por http. Creo los archivos con php y lo envia a un directorio del servidor. La base de datos asume que corta el servicio cada 30 dias pero no se comunica con el servidor http para cortar el servicio. nesecito que se comunique con un php para re escribir los archivos de activacion para cortar el servicio. No se si haya manera para que la base de datos envie estos clientes a un php y de manera automatica poder reescribir el archivo para desactivar las cuentas o algun script que cada 24 horas haga pedidos de las cuentas expiradas para volver a reescribir. Les dejo el pedaso de script que asumo es donde debe estar la expiracion de las cuentas. Aclaro que es mi primera ves trabajando con mysql y php no tengo mucha experiencia solo el dolor de cabeza que me a causado este admin panel. espero me puedan ayudar.
Código PHP:
<?php
include("global.php");
$_METHOD = "post";
$_INCLUDER = "reseller-home.php";
include("header.php");
$status_message = "";
if( !isset($_REQUEST["show"]) ) $_REQUEST["show"] = "";
if( $_REQUEST["show"] == "" ) $_REQUEST["show"] = "not_expired";
if( !isset($_REQUEST["order_by"]) ) $_REQUEST["order_by"] = "";
if( $_REQUEST["order_by"] == "" ) $_REQUEST["order_by"] = "name";
// -- add account
if( !$G_disable_reseller_subaccount_creation )
{
if( isset($_REQUEST["add"]) and isset($_REQUEST["add_username"]) and isset($_REQUEST["add_password"]) and
isset($_REQUEST["add_months"]) )
{
$_REQUEST["add_username"] = entry_filter($_REQUEST["add_username"]);
$_REQUEST["add_password"] = entry_filter($_REQUEST["add_password"]);
$current_date = date("Ymd", time());
$coverage_start = mktime(0, 0, 0,
substr($current_date, 4, 2),
substr($current_date, 6, 2),
substr($current_date, 0, 4));
$coverage_end = $coverage_start + ((3600 * 24 * $G_days_per_month) * (int)$_REQUEST["add_months"]);
if( (get_credit_balance( $G_username ) - (int)$_REQUEST["add_months"]) >= 0 )
{
// -- check if account already exists
if( (int)query_scalar("select count(*) from accounts where username = '$G_username' and ".
"upper(account) = '".strtoupper($_REQUEST["add_username"])."'") == 0 )
{
// -- add server user
$server_status_description = "";
$effective_account = get_effective_account($_REQUEST["add_username"], $G_user_account_prefix);
if( server_add_account($effective_account, $_REQUEST["add_password"], $coverage_end, TRUE,
sprintf($G_fslb_global_account_comment, $G_username), $server_status_description) )
{
// -- add record to the database
include("acltvh.php");
mysql_begin();
if( db_insert("accounts", array(
"username" => $G_username,
"account" => $_REQUEST["add_username"],
"password" => $_REQUEST["add_password"],
"filename1" => $filename1,
"expires" => date("Y-m-d", $coverage_end)) ) )
{
if( db_insert("transactions", array(
"username" => $G_username,
"transaction" => (int)query_scalar("select max(transaction) + 1 from transactions where username = '$G_username'"),
"type" => "DBIT",
"periods" => (int)$_REQUEST["add_months"],
"account" => $_REQUEST["add_username"],
"timestamp" => date("Y-m-d H:i:s"),
"coverage_start" => date("Y-m-d", $coverage_start),
"coverage_end" => date("Y-m-d", $coverage_end)) ) )
{
mysql_commit();
header("Location: reseller-home.php");
die;
}
else
{
$status_message = grs("HOME_ADD_FAILED");
mysql_rollback();
}
}
else
{
$status_message = grs("HOME_ADD_FAILED");
mysql_rollback();
}
}
else $status_message = "SERVER: ".$server_status_description;
}
else $status_message = grs("HOME_ADD_ALREADY_EXISTS");
}
else $status_message = grs("HOME_ADD_INSUFFICIENT_CREDIT");
}
}
// -- get user sub-accounts
if( $_REQUEST["order_by"] == "expiry_date")
$query_order_by = "expires";
else
$query_order_by = "account";
switch( $_REQUEST["show"] )
{
case "expired":
$query_show = "and expires < current_date()";
break;
case "not_expired":
$query_show = "and expires >= current_date()";
break;
default:
$query_show = "";
break;
}
$rs_accounts = mysql_query("select account, password, unix_timestamp(expires) as expires from accounts where username = ".
"'$G_username' ".$query_show." order by ".$query_order_by);
// -- handle paging
$page_index = 1;
if( isset($_REQUEST["page_index"]) ) $page_index = (int)entry_filter($_REQUEST["page_index"]);
$page_count = ((int)(mysql_num_rows( $rs_accounts ) / $G_reselled_accounts_per_page)) + 1;
if( isset($_REQUEST["page_first"]) ) $page_index = 1;
if( isset($_REQUEST["page_previous"]) ) $page_index = (int)entry_filter($_REQUEST["page_index"]) - 1;
if( isset($_REQUEST["page_next"]) ) $page_index = (int)entry_filter($_REQUEST["page_index"]) + 1;
if( isset($_REQUEST["page_last"]) ) $page_index = $page_count;
// -- correct page index if needed
if( $page_index < 1 ) $page_index = 1;
if( $page_index > $page_count) $page_index = $page_count;
?>