Ir para conteúdo

POWERED BY:

Arquivado

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

Deejay Wagner

Erro no foreach

Recommended Posts

Olá Galera alguém pode me ajudar com esse erro?

PHP Warning:  Invalid argument supplied for foreach() in E:\Domains\equipefrw.com\wwwroot\djwagner\midia.php on line 79

 

Meu codigo:

<?php $pasta = $_GET['cat_id']; ?>
<?php foreach (glob("fotos/$pasta/*.jpg") as $filename) {
echo "<a href='$filename' target='_blank'><img src='$filename' width='193' height='140'></a> ";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

glob("fotos/$pasta/*.jpg") precisa ser um array ou um objeto iterável.

 

o que posso imaginar é que o caminho esteja inacessível..

 

evite caminhos relativos e aplique caminhos absolutos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz o seguinte no codigo

                          	<?php 
							$pasta = $_GET['cat_id']; 
							if(!is_numeric($pasta)){
							//id invalido...
								}
							?>
							
								<?php
									if(is_dir('http://djwagner.equipefrw.com/fotos/$pasta/')){
										foreach (glob("http://djwagner.equipefrw.com/fotos/$pasta/*.jpg") as $filename) {
											echo "<a href='$filename' target='_blank'><img src='$filename' width='200' height='200'></a> ";
										}
									}
									else{
										echo 'Caminho não existe';
									}
								?>

Agora retorna o Echo Caminho não existe

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PHP trata caminhos absolutos de forma diferente. Este endereço ''http://djwagner.equipefrw.com/fotos/$pasta/' não é para o php e sim para o navegador.

 

Utilize o caminho absoluto da sua aplicação, em relação ao servidor e não a uri. Você poderá ver qual é o caminho absoluto de um arquivo que está sendo executado utilizando a superglobal $_SERVER, retornando o SCRIPT_FILENAME:

$_SERVER['SCRIPT_FILENAME']

Outra alternativa é incluir o caminho absoluto até a sua aplicação no include_path (pode ser feito em tempo de execução). É útil para tratar os caminhos absolutos da apliação à partir do seu root/index.

Compartilhar este post


Link para o post
Compartilhar em outros sites

man so novato rsrs

mais oq fiz modifiquei o caminho de diversas maneirar que eu imaginei que iria e nao deu em nada

 

caso queira da uma olhada no pagina online

http://djwagner.equipefrw.com/categorias.php

 

dai vc escolhe o album e deveria mostrar todas as fotos do diretorio referente ao album que vc entrou

Compartilhar este post


Link para o post
Compartilhar em outros sites

O path deve ser físico e não virtual..

 

e o fato de funcionar num ambiente não quer dizer que funcionará em todos..

 

Mas o erro maior é por estar usando path virtual http://...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na linha 85, if(is_dir('http://djwagner.equipefrw.com/fotos/$pasta/')){ não irá funcionar pois você está usando apostrofes, e não aspas.

 

Use o caminho fisico, ou seja: um diretorio que esteja no pasta de sua aplicação; exemplo:

if(is_dir("./fotos/$pasta/")){

 

Note: que usei aspas duplas (") e não apostrofes(') pois o PHP as trata de maneira diferente e não lê variaveis ou escapes como \ e $ com apostrofes, apenas com aspas duplas.

 

 

Código completo:

 

<?php
// Variavel HTTP
$pasta = $_GET['cat_id'];

// Validação
(int)$pasta; // Obriga o valor de $pasta a ser inteiro, qualquer outro valor será convertido para 0;


if(is_dir("http://djwagner.equipefrw.com/fotos/$pasta/")){
	foreach (glob("http://djwagner.equipefrw.com/fotos/$pasta/*.jpg") as $filename) {
		echo "<a href='$filename' target='_blank'><img src='$filename' style='width:200px;height:200px;'></a> "; // Corrigido para HTML5
	}
}
else{
	die("Categoria \"$pasta\" invalida.");
}

/*
Uso das aspas:

$var="teste";
echo('$var'); // Resulta em: $var
echo("$var"); // Resulta em: teste
*/

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.