Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ozivaldo

Warning: Invalid arqument supplied for foreach() is /home/user/public_

Recommended Posts

Olá, eu tenho um script para deletar uma cron no cPanel e estou com o seguinte erro.

 

 

 

 

Aqui está o código que faz o post:

 

<script type="text/javascript">
$.noConflict();
jQuery( document ).ready(function( $ ) {
$('#frequencia').change(function () {
var frequencia = $('#frequencia').val();
//$("#weekday").attr("disabled",true);
if(frequencia == "2") {
document.getElementById("weekday").disabled = true;
}
if(frequencia == "3") {
document.getElementById("weekday").disabled = false;
}
});
$('#cadastrar').click(function () {
//alert($(this).val());
$.post("/configura-agendamento",
{
playlist:$("#playlist").val(),
frequencia:$("#frequencia").val(),
mes:$("#mes").val(),
dia:$("#dia").val(),
minuto:$("#minuto").val(),
weekday:$("#weekday").val(),
hora:$("#hora").val()
},
function(resu){
if(resu == 1){
alert("Cadastrado com sucesso!");
location.reload();
}else{
alert("Opsss! ocorreu um erro, contacte o suporte");
//alert(resu);
}
});
return false;
});
$('.remover').change(function () {
//alert($(this).val());
if($(this).val() == 0){
alert("Opcao Invalida, selecione outro agendamento!");
return false;
}
$.post("/excluircron.php",
{
id:$(this).val()
},
function(resu){
if(resu == 1){
alert("Excluido com sucesso!");
location.reload();
}else{
location.reload();
alert("Opsss! ocorreu um erro, contacte o suporte");
alert(resu);
}
});
});
});
</script>
Esse recebe para deletar a cron:

 

<?php
extract($_POST);
extract($_GET);
include('xmlapi.php');
require_once("admin/inc/protecao-final.php");
require("admin/inc/conecta.php");
$dados_config = mysql_fetch_array(mysql_query("SELECT * FROM configuracoes"));
$dados_agendamento = mysql_fetch_array(mysql_query("SELECT * FROM agendarplaylist where id = '$id'"));
/**
* Gera o arquivo contendo o shell script
*/
$id = $_POST['id'];
$ip = $dados_config["ip_cpanel"];
$account = $dados_config["login_cpanel"];
$pass = $dados_config["senha_cpanel"];
$xmlapi = new xmlapi($ip);
$xmlapi->password_auth($account,$pass);
$xmlapi->set_port('2082');
$xmlapi->set_output("json");
$sql="SELECT * FROM agendarplaylist where id = '$id'";
$query=mysql_query($sql);
$porta = $dados_agendamento['porta'];
$playlist = $dados_agendamento['playlist'];
$args = array ( 'line' => '1');
$xmlapi->set_output("array");
$xmlapi->set_debug(1);
$cronxml = $xmlapi->api2_query($account, 'Cron','listcron');
// load library xmlapi cpanel and create new object
// set output into json
// get cron list
$cron = $xmlapi->api2_query($account, 'Cron','listcron');
// loop cron list to find data
foreach($cron['data'] as $key)
{
$co = $dados_config["ip_painel"].'/admin/cron.php?dd='.$id;
// find position string autopost/amazon apakah ada di dalam string command
if (strpos(@$key['command'], $co))
{
// return count value
print_r($key);
mysql_query("DELETE FROM agendarplaylist WHERE id='".$id."'");
$idcron = $key['count'];
$args = array (
'line' => $idcron
);
$xmlapi->api2_query($account, 'Cron','remove_line', $args);
echo "1";
}
}
print $xmlapi->api2_query($account, 'Cron','remove_line', $args);
?>
E nessa linha: foreach($cron['data'] as $key)
Eu recebo o seguinte erro:
Warning: Invalid arqument supplied for foreach() is /home/user/public_html/excluircron.php pnlive 47
Alguém tem uma ideia de como eu resolvo esse erro?
Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

foreach espera um array, logo $cron/$cron['data'] não é array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

da um print_r nesse $cron.. to achando que não é um array :D

 

 

Olá Ruan,

Exatamente isso que eu ia falar, parece aqui no caso que na hora de armazenar os arrays no $cron, ele não esta conseguindo no caso só dar um print_r mesmo

<?php

echo '<pre>';
print_r($cron);
echo '</pre>';

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz assim:

 

 

$cron = $xmlapi->api2_query($account, 'Cron','listcron');
echo 'Cron em print: <pre>';
print_r($cron);
echo '</pre>';
echo 'Cron em echo: '.$cron.'<br>';
echo 'Porta: '.$porta.'<br>';
echo 'Playlist: '.$dados_agendamento['playlist'].'';
// loop cron list to find data
foreach($cron['data'] as $key)
Resultado:
Cron em print:

Cron em echo: 
Porta: 8008
Playlist: 615
Warning: Invalid argument supplied for foreach() in /home/user/public_html/excluircron.php on line 50

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oq estava falando é que vc ta passando o $cron para o foreach, porém ele não é um array. O print era só pra verificar isso, tem que corrigir :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você olhar seu último post, o print_r não retornou nada... logo, não tem o que fazer se não existem dados para serem listados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui solucionar esse problema.

 

Na verdade, o erro era na senha do cPanel.

 

 

Eu havia ativado a opção para "Forçar alteração de senha para referida conta" em:

 

1° WHM --> Funções da conta --> Forçar Alteração de senha.

 

2° Desabilitei e voltou a funcionar normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.