Mr Loke 0 Denunciar post Postado Maio 28, 2010 entao pessoal antes de tudo obrigado esse forum sempre salva e tal meu erro é esse ! Warning: include(pedidos.php) [function.include]: failed to open stream: No such file or directory in E:\Arquivos de programas\VertrigoServ\www\pinga\colunaCentral.php on line 9 Warning: include() [function.include]: Failed opening 'pedidos.php' for inclusion (include_path='.;E:\Arquivos de programas\VertrigoServ\Smarty') in E:\Arquivos de programas\VertrigoServ\www\pinga\colunaCentral.php on line 9 Esse na hora q eu Meus Pedidos ! Agora o Script Linha 9 include($pg.".php"); ele completo Linha 8 if ($pg && $achou){ Linha 9 include($pg.".php"); Outro Erro Warning: Invalid argument supplied for foreach() in E:\Arquivos de programas\VertrigoServ\www\pinga\carrinho.php on line 52 51 <?php Linha 52 foreach($todosOsProdutos as $p){ 53 if($flag==1){ 54 $bgcolor="#f3f3f3"; 55 $flag=0; 56 }else{ 57 $bgcolor="#ffffff"; 58 $flag=1; 59 } 60 ?> outro Warning: Invalid argument supplied for foreach() in E:\Arquivos de programas\VertrigoServ\www\pinga\extra\CarrinhoDeCompras.class.php on line 61 //Pega o valor total das compras do usuário function getTotal() { $this->getCarrinho(); $total = 0; Linha 61 foreach($this->carrinho as $produto) { $total += $produto->getPreco()*$produto->getQuantidade(); } return $total; EnTao Alguem Sabe Me FAlar oq ta errado ? Detalhe No Servidor nao da erro so quando fui troka de servidor q deu isso ! obrigado Bom o que tá acontecendo e o seguinte: Warning: include(pedidos.php) [function.include]: failed to open stream: No such file or directory in E:\Arquivos de programas\VertrigoServ\www\pinga\colunaCentral.php on line 9 Warning: include() [function.include]: Failed opening 'pedidos.php' for inclusion (include_path='.;E:\Arquivos de programas\VertrigoServ\Smarty') in E:\Arquivos de programas\VertrigoServ\www\pinga\colunaCentral.php on line 9 $achou=array_search($pg,$paginas); if ($pg && $achou){ //line 9 include($pg.".php"); }else if($pg){ Warning: Invalid argument supplied for foreach() in E:\Arquivos de programas\VertrigoServ\www\pinga\carrinho.php on line 52 <?php //Line 52 foreach ( $todosOsProdutos as $p ) { if ( $flag == 1 ) { $bgcolor = "#f3f3f3"; $flag = 0; } else { $bgcolor = "#ffffff"; $flag = 1; } } ?> Warning: Invalid argument supplied for foreach() in E:\Arquivos de programas\VertrigoServ\www\pinga\extra\CarrinhoDeCompras.class.php on line 61 //Pega o valor total das compras do usuário function getTotal() { $this->getCarrinho(); $total = 0; //Line 61 foreach ( $this->carrinho as $produto ) { $total += $produto->getPreco() * $produto->getQuantidade(); } return $total; } Bom Obrigado Des de Já Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Maio 28, 2010 Significa que o arquivo pedidos.php não está sendo encontrado a partir do diretório onde o script em execução se encontra. Se quem executa for index.php, para que pedidos.php seja localizado e incluído, ambos devem estar no mesmo diretório. Para evitar esse problema use caminhos relativos à quem dá o include/require, com ./ (este diretório) e ../ (um nível acima, isto é, diretório atrás) OU, para evitar problemas com caminhos relativos, use caminhos absolutos. No arquivo principal do sistema, que sempre fica na raiz da aplicação, defina uma constante que reflita o caminho absoluto para aquele arquivo: define( 'BASEPATH', getcwd() . DIRECTORY_SEPARATOR ); E toda vez que for incluir algo, comece o include/require com essa constante e você SEMPRE estará no diretório raiz: include BASEPATH . um/diretorio/bem/longe/com/um/arquivo.php Vai incluir o arquivo.php dentro de todos esses diversos diretórios mas a localização do primeiro deles, o um, se dará a partir do diretório raiz da aplicação. Quanto a dar erro em um servidor e não dar em outro, é questão de configuração diferente entre eles. Possivelmente, no antigo, os erros estavam ocultos ou o alertade erros muito baixo. Outra dica seria nesse mesmo arquivo que você definiria essa constante, porém antes da própria constante usar: ini_set( 'display_errors', TRUE ); error_reporting( E_ALL | E_STRICT ); Assim você força que os erros sejam mostrados em todos os níveis possíveis e pode programar de forma mais correta pois sempre que algo estiver errado, aparecerá em tela. Nota: ini_set() pode estar desativada em alguns servidores, portanto ela pode não funcionar em alguns servidores do tipo 'chulé'. Compartilhar este post Link para o post Compartilhar em outros sites
borsatti 2 Denunciar post Postado Maio 28, 2010 cara, ta meio confuso, mais beleza. o Primeiro ali , ele não está achando a pagina que você ta dando include.. o Segundo e o Terceiro você está dando Foreach em uma variavel vazia. entao faça tipo. if ($todosOsProdutos != "") { foreach ($todosOsProdutos ..... a mesma coisa no 3! Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Maio 28, 2010 Borsatti, essa "validação" antes do foreach não funciona. Veja o seguinte caso: $teste = 'um valor qualquer'; if ( $teste != '' ) { foreach( $teste as $row ) { echo $row; } } Vai dar erro, porque o foreach não itera strings. Uma validação segura pode ser feita dessa maneira: if ( is_array( $teste ) && !empty( $teste ) ) { foreach( $teste as $row ) { echo $row; } } Dessa maneira o if irá validar apenas arrays que não estejam vazios. Compartilhar este post Link para o post Compartilhar em outros sites
borsatti 2 Denunciar post Postado Maio 28, 2010 Ops... verdade. Me Perdoem pelo erro grotesco... é que eu uso essa validação no meu " frameworkzin ". Foi mal!!! Compartilhar este post Link para o post Compartilhar em outros sites