Ir para conteúdo

POWERED BY:

Arquivado

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

morejunior

[Resolvido] problema com if

Recommended Posts

Olá, me desculpem a ignorancia mas estou com um problema neste dois if

 


$fotobox=$_POST["fotobox"];
$fotopublicidade=$_POST["fotopublicidade"];
$selecione="selecione";

if($fotobox !== $selecione ){
   $mudar = copy("fotobox/$fotobox", "teste2/$fotobox"); // copia
      $mudar = unlink ("fotobox/$fotobox"); // remove
   $path="teste2/";
   $caminho=$path.$fotobox;
   }
   else{
   unset($fotobox);
   unset($path);
   $caminho="Sem Imagem";
   }

   if($fotopublicidade !== $selecione){
      $mudar2 = copy("fotopublicidade/$fotopublicidade", "teste2/$fotopublicidade"); // copia
      $mudar2 = unlink ("fotopublicidade/$fotopublicidade"); // remove<br>
   $path2="teste2/";
   $caminho2=$path2.$fotopublicidade;
   }         
   else{
      unset($fotopublicidade);
   unset($path2);
   $caminho2="Sem Imagem";
   }

 

o erro que aparece é esse

 

Warning: copy() [function.copy]: The first argument to copy() function cannot be a directory in /home/m76762/public_html/oba/cadastro2.php on line 302

 

Warning: unlink(fotobox/) [function.unlink]: Is a directory in /home/m76762/public_html/oba/cadastro2.php on line 303

 

Warning: copy() [function.copy]: The first argument to copy() function cannot be a directory in /home/m76762/public_html/oba/cadastro2.php on line 314

 

Warning: unlink(fotopublicidade/) [function.unlink]: Is a directory in /home/m76762/public_html/oba/cadastro2.php on line 315

isso pq ele nun deveria executar esses comamandos, pq nun te valor nenhum. mas o if nun funciona

 

meu, já fiz de tudo neste if e nun consigo saber o erro!

se puderem me ajudar estaria muito grato! http://forum.imasters.com.br/public/style_emoticons/default/sick.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os diretórios que vão receber os arquivos estão corretos?

Verifique isso.. e também verifique a permissão dos mesmos... o certo é estar 777 (CHMOD 777)

 

Acho que é isso, e não problema no if..

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos fazer um teste..

$fotobox=$_POST['fotobox'];
$fotopublicidade=$_POST['fotopublicidade'];
$selecione='selecione';

if($fotobox != $selecione ){
substitui o trecho correspondente..

acredito que o problema, ocorreu pelo uso do operador nao identico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fiz isso, mas não funciona também

 

Meu.... um simples if... ja tentei

 

if($fotopublicidade !== $selecione ){

if($fotopublicidade != $selecione ){

 

com valor vazio

ai eu fiz

if(empty($fotobox)) {

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce tem que dar permissão na pasta e nos arquivos que iram receber, como o amigo acima falou, chmod 777 em todos OBS: qd o comando da certo nao aparece nada, apenas a linha " chmod 777 var/$diretorio

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao é isso pq eu ja dei as permissoes 777 para as pastas e eu ja teste sem o if e funcionou corretamente

esta dando o erro pq ela nao pode ser executada sem um valor correto ou seja sem o caminho correto das imagens

 

por isso o if.. pq se o usario deixar no select o valor sem imagem, não deve executar essas funcòes de copia e remocao de arquivos do servidor

 

com os nomes dos arquvos enviados pelo select e sem o if em questão o codigo funciona corretamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

var_dump($_POST);
diga oque retorna.

poste tb o html do teu formulario.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No form tenho dois selects que estao pegando as imagens do servidor

 

<?    

$dir="fotobox";
$dir1=opendir($dir);

echo " <select name='fotobox' id='fotobox'>
<option value=''>Selecione uma Imagem</option>"; 

while ($res=readdir($dir1) ){

$tipo=explode(".",$res);

if ($tipo[1]=="jpg" || $tipo[1]=="jpeg" || $tipo[1]=="JPEG" || $tipo[1]=="JPG" ){

echo "<option value='$res'>$res</option>";

}
}
echo "</select>";

?>

 

o id que tenho no campo select, e pq tenho um script q o impede ou não de funcionar

quando impesso ele funciona corretamente, porque troquei o este danado do if

 

por isso

 

if($fotobox !== null){
	   $mudar = copy("fotobox/$fotobox", "teste2/$fotobox"); // copia
       $mudar = unlink ("fotobox/$fotobox"); // remove
	   $path="teste2/";
	   $caminho=$path.$fotobox;
	   }
	   else{
	   unset($fotobox);
	   unset($path);
	   $caminho="Sem Imagem";
	   }

mas quando eu deixo o campo funcionando select funcionando mas não escolho valor nele no select, da o mesmo erro

 

o que eu fiz:

 

if($fotobox !== null)||($fotobox !== ""){
	   $mudar = copy("fotobox/$fotobox", "teste2/$fotobox"); // copia
       $mudar = unlink ("fotobox/$fotobox"); // remove
	   $path="teste2/";
	   $caminho=$path.$fotobox;
	   }
	   else{
	   unset($fotobox);
	   unset($path);
	   $caminho="Sem Imagem";
	   }

da erro na linha do novo if

 

 

coloquei o que pediu var_dump($_POST);

 

array(12) { ["plano"]=>  string(5) "prata" ["tipo"]=>  string(7) "pousada" ["nivel"]=>  string(3) "$$$" ["nome"]=>  string(9) "asdasdasd" ["telefone"]=>  string(5) "asdas" ["endereco"]=>  string(6) "asdasd" ["email"]=>  string(10) "asdasddasd" ["site"]=>  string(5) "sdasd" ["descricao"]=>  string(5) "sdasd" ["fotobox"]=>  string(0) "" ["fotopublicidade"]=>  string(0) "" ["Submit"]=>  string(9) "Cadastrar" }

 

retorna isso além do erro

 

se eu não expliquei direito, por favor pode perguntar. q eu tento explicar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja que as variáveis foto e fotopublicidade estão vindo como vazios. Reveja o form. Ao executar, exiba o html gerado e veja se está tudo correto como deveria estar.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala,

 

O problema provavelmente está relacionado a função readdir, por esse motivo não está buscando os arquivos e consequentemente está voltando vazio no $_POST, o erro está na seguinte linha:

 

while ($res=readdir($dir1))

 

No manual do php diz que é incorreto usar a função do jeito que você utilizou e diz para utilizar da seguinte maneira:

 

while (false !== ($file = readdir($handle)))

 

Exemplo do manual:

 


<?php
// Note que !== não existia antes do PHP 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
    echo "Manipulador de diretório: $handle\n";
    echo "Arquivos:\n";

    /* Esta é a forma correta de varrer o diretório */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* Esta é a forma INCORRETA de varrer o diretório */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?> 

Link da função readdir no manual:

http://br.php.net/manual/en/function.readdir.php

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Vlw

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.