Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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.
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)) {
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
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 corretamentevar_dump($_POST); diga oque retorna.poste tb o html do teu formulario.
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";
}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
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
Provavelmente tá faltando o enctype do form :)
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
[Resolvido]
Fiz dessa forma
if($fotobox !== null AND $fotobox !== "")
if (isset($fotobox) AND !empty($fotobox)) {
}
http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif
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