Ir para conteúdo

POWERED BY:

Arquivado

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

Rocoelho10

Erro 'InvalidArgumentException" como concertar?

Recommended Posts

Ola boa tarde,

venho novamente apresentar um erro, estou tentando colocar if entre outras opçoes mas nao consegui consertar este erro:

 

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Passed variable is not an array or object, using empty array instead' in C:\xampp\htdocs\projeto\index.php:146 Stack trace: #0 C:\xampp\htdocs\projeto\index.php(146): ArrayIterator->__construct(false) #1 {main} thrown inC:\xampp\htdocs\projeto\index.php on line 146

 

Alguem tem como uma ideia de concertar este erro?

<?php
require_once("conexao.php");
require_once "function.php";

if(isset($_POST['cadastro'])):
    $tarefa = filter_input(INPUT_POST, 'tarefa', FILTER_SANITIZE_STRING);
    $descricao = filter_input(INPUT_POST, 'descricao', FILTER_SANITIZE_STRING);
    $done = filter_input(INPUT_POST, 'done');
    
    if(cadastro($tarefa, $descricao, $done)):
        echo 'Cadastrou';
    else:
        echo 'Erro ao cadastrar';
    endif;
endif;

if(isset($_GET['iduser'])):
    $iduser = filter_var($_GET['iduser'], FILTER_SANITIZE_NUMBER_INT);
// Testar se ta vindo Id User
//echo $iduser;
    
    $dadosuser = pegarid('tarefas', 'id', $iduser);
    
    if($dadosuser):
        //print_r($dadosuser);
    else:
        echo 'Nao encotrado';
    endif;
    
endif;

if(isset($_POST['alterar'])):
    $tarefa = filter_input(INPUT_POST, 'tarefa', FILTER_SANITIZE_STRING);
    $descricao = filter_input(INPUT_POST, 'descricao', FILTER_SANITIZE_STRING);
    $done = filter_input(INPUT_POST, 'done');
    
    if(update($tarefa, $descricao, $done, $_GET['iduser'])):
            echo "Atualizou";
    else:
        echo "Erro ao atualizar dados";
    endif;
endif;

if(isset($_POST['deletar'])):
    
    $id = filter_var($_GET['iduser'], FILTER_SANITIZE_NUMBER_INT);   
    if(deletar($id)):
            header("Location: index.php");
            echo "Deletado";
    else:
        echo "Erro ao atualizar dados";
    endif;
endif;
?>
<html>
<head>
<title>Sistema de Cadastro de Tarefas</title>
<!-- Incluindo o CSS do Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
</head>

	<body>
		<div class="container">
			<div class="row">
                            <?php
                            if(isset($_GET['iduser'])):
                            $iduser = filter_var($_GET['iduser'], FILTER_SANITIZE_NUMBER_INT);
                            // Testar se ta vindo Id User
                            //echo $iduser;
    
                            $dadosuser = pegarid('tarefas', 'id', $iduser);
    
                            if($dadosuser):
                                $cliente = $dadosuser;
                            else:
                            echo 'Nao encotrado';
                            endif;
                            ?>
                            	<h1>Editar</h1>
				<form action="" method="post" />
					<fieldset>
					<legend>Editando: <?php echo $cliente['tarefa']; ?></legend>

						<label>Tarefa</label>
						<input type="text" name="tarefa" value="<?php echo $cliente['tarefa']; ?>" class="span4"  />

						<label>Descrição da Tarefa</label>
						<input type="text" name="descricao" value="<?php echo $cliente['descricao']; ?>" class="span4" />
                                                <label>Realizada a Tarefa?</label>
                                                <td><input name="done" type="radio" value="SIM" checked="checked" /><label>Sim</label> 
                                                <input name="done" type="radio" value="NAO" /> <label>Nao</label></td>


					<label></label>

					<p class="pull-right">
					<button type="submit" name="alterar" class="btn btn-inverse">Alterar</button>
					<button type="submit" name="deletar" class="btn btn-inverse">Deletar</button>

				</fieldset>
			</form>
                            
                            <?php else:
                           
                            ?>
				
				<h1>Cadastro de Tarefas</h1>
				<form action="" method="post" />
					<fieldset>
					<legend>Cadastrar</legend>

						<label>Tarefa:</label>
						<input type="text" name="tarefa" class="span4" placeholder="Digite sua tarefa" />

						<label>Descrição:</label>
						<input type="text" name="descricao" class="span4" placeholder="Digite as descriçoes da tarefa" />
                                                
                                                <label>Realizada a tarefa:</label>
                                                <td><input name="done" type="radio" value="SIM" checked="checked" /><label>Sim</label> 
                                                <input name="done" type="radio" value="NAO" /> <label>Não</label></td>

					<label></label>

					<p class="pull-right">
					<button type="submit" name="cadastro" class="btn btn-inverse">Cadastrar</button>

				</fieldset>
			</form>
		</div>                        
		<?php endif; ?>

	<div class="span8">
	<h1>Lista</h1>
	<p class="left"><a href="?cadastrar" class="btn btn-danger">Cadastrar</a></p>
	<table class="table table-striped">
		<thead>
		<th>ID:</th> 
		<th>Tarefa:</th>
		<th>Descrição:</th>
                <th>Realizada a tarefa:</th>
                <th>Editar</th>
		</thead>
                
                <?php
                $dados = listaCliente('tarefas');
                $d = new ArrayIterator($dados);
                while ($d->valid()) {
                    $m = $d->current();
                    ?>
                
                <tr>
                    <td><?php echo $m['id']; ?></td>
                    <td><?php echo $m['tarefa']; ?></td>
                    <td><?php echo $m['descricao']; ?></td>
                    <td><?php echo $m['done']; ?></td>
                    <td><a href="?iduser=<?php echo $m['id']; ?>" class="btn btn-info"</a>Editar</td>
                </tr
                <?php
                $d->next();
                }
                ?>
                </table>
                </div>
            </div>
        </body>
</html>

obrigado pela atencao! Ronaldo Coelho

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta traduzir a mensagem:

 

'Passed variable is not an array or object, using empty array instead' in C:\xampp\htdocs\projeto\index.php:146 Stack trace: #0 C:\xampp\htdocs\projeto\index.php(146): ArrayIterator->__construct(false)'

 

A variável passada não é um array ou um objeto, é um array vazio, ao invés disso.

Ou seja, sua função exige um array com dados, ou um objeto, e você está passando uma string vazia, na linha

$d = new ArrayIterator($dados);

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.