Jump to content


Photo

Como Usar? Or, || Ou Nada Disso?


  • Faça o login para participar
10 replies to this topic

#1 Fioba

Fioba

    Turista

  • Usuários
  • 35 posts
  • Sexo:Não informado
  • Localidade:Varginha
  • Interesses:Webdesign, webmaster, photoshop, flash, html, javascript, dhtml, css, php, mysql

Posted 17/08/2004, 01:22

Olá pessoal!

Estou fazendo um sistema de upload aqui e visando aumentar a segurança estou restringindo os tipos de arquivos a serem enviados.

Usei a função strrchr para pegar a extensão do arquivo que sofrerá upload:
$ext = strrchr($file_name,".");
Ex.: se $file_name vale "foto.jpg", $ext vale ".jpg"

Então se o valor de $ext não for um dos que eu quero ele executa um die como segue abaixo:
[B]if ($ext != "$jpg || $gif")[/B]{
die("ERRO");
}

o erro creio eu que se encontra na parte destacada em negrito do código. O que eu queria saber é como fazer para colocar mais strings para serem comparadas! Ex.: .jpg, .gif, .bmp, .cdr. psd!

Que operador devo usar? Como proceder? Aspas? Parênteses?

Obrigado (y)

#2 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 17/08/2004, 08:15

if ($ext != ".jpg" || $ext != ".gif")
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#3 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 17/08/2004, 08:27

Poderia ser "or" também...

http://br.php.net/ma...ors.logical.php

Cosulte também precedência de operadores:

http://br.php.net/ma...tors.precedence
Klaus Paiva
Conheça também: Taperás

#4 Fioba

Fioba

    Turista

  • Usuários
  • 35 posts
  • Sexo:Não informado
  • Localidade:Varginha
  • Interesses:Webdesign, webmaster, photoshop, flash, html, javascript, dhtml, css, php, mysql

Posted 17/08/2004, 14:19

olá..

acho que o problema não foi devidamente acertado!

o código só funciona para uma string. Exemplo:

if ($ext != ".jpg") {
die("ERRO!");
}

Quando ponho assim:
if ($ext != ".jpg" || $ext != ".gif") {
die("ERRO!");
}
qualquer extensão pode ser enviada!

obs: na fgunção tem um print no $file_name e ele está recebendo o valor normalmente!

Outra coisa que não me ficou claro é como colocar mais de duas strings.
Estaria certo isso?
if ($ext != ".jpg" || $ext != ".gif" || $ext != ".bmp" || $ext != ".cdr" || $ext != ".psd") {
die("ERRO!");
}

Obrigado!

#5 MarviN*

MarviN*

    nw . newton web

  • Usuários
  • 780 posts
  • Sexo:Não informado
  • Localidade:Brasília - DF

Posted 17/08/2004, 14:34

Quando ponho assim:

if ($ext != ".jpg" || $ext != ".gif") {
die("ERRO!");
} 

qualquer extensão pode ser enviada!



Se você quer deixar passar apenas jpg e gif, tem q usar o E:

if ($ext != ".jpg" && $ext != ".gif") {
die("ERRO!");
} 

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
[ Blog Desenvolvimento Web: http://www.newtonwagner.net/blog ]
[ Diário da Selva: http://www.diariodaselva.com/ ]

[ "Não existe um caminho para a paz; a paz é o caminho." Mahatma Gandhi ]

#6 Fioba

Fioba

    Turista

  • Usuários
  • 35 posts
  • Sexo:Não informado
  • Localidade:Varginha
  • Interesses:Webdesign, webmaster, photoshop, flash, html, javascript, dhtml, css, php, mysql

Posted 17/08/2004, 19:58

aiaiaiaiai... nao ta dando certo de jeito nenhum! é problema de lógica! vou dizer o que eu quero mais ou menos e gostaria de uma ajuda de como se fazer, ou pelo menos que me induzam a como fazer. O que eu quero é o seguinte:

primeiramente trata-se de um sisteminha para aumentar a segurança em um sistema de upload!

Tenho uma váriavel $ext que recebe dados de extensão de arquivo. Ex.: .jpg; .gif; .bmp; .cdr; .psd.
Gostaria que se essa variável não recebesse uma string permitida (que seja diferente das mencionadas no exemplo acima), o php pararia num die. E que se o $ext fosse um dos 5 do exemplo citado, o script continuaria normalmente.

Era só isso que eu queria!

Obrigado! (y)

#7 acao11

acao11

    12 Horas

  • Usuários
  • 166 posts
  • Sexo:Não informado
  • Interesses:PHP, Java, Linux, C, Apache, CGI/Perl, JavaScript e Delphi.

Posted 17/08/2004, 20:04

$ext = end(explode('.', $STRING));

$lista_ext = array(".jpg", ".gif", ".bmp");

for ($i = 0, $n = 0; $i <= count($lista_ext); $i++)

if ($ext != $lista_ext[$i])
$n++;

if ($n == 0) echo "Arquivo inválido!";

#8 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 18/08/2004, 09:03

tenta o seguinte

if (!eregi("\.(jpg|gif|bmp|cdr|psd)$",$nomearquivocompleto))
die("Arquivo incálido");

Edição feita por: fly2k, 18/08/2004, 09:03.

Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#9 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 18/08/2004, 12:10

O que o Marvin, falou lá em cima sobre AND no lugar de OR, resolveria o problema... Saca só seu código...

if ($ext != ".jpg" || $ext != ".gif" || $ext != ".bmp" || $ext != ".cdr" || $ext != ".psd") {
die("ERRO!");
}


Arrumando-o:

if (($ext != ".jpg") and ($ext != ".gif") and ($ext != ".bmp") and ($ext != ".cdr") and ($ext != ".psd")) :

  echo "Extensão inválida!";

  exit;

endif;


Klaus Paiva
Conheça também: Taperás

#10 Fioba

Fioba

    Turista

  • Usuários
  • 35 posts
  • Sexo:Não informado
  • Localidade:Varginha
  • Interesses:Webdesign, webmaster, photoshop, flash, html, javascript, dhtml, css, php, mysql

Posted 18/08/2004, 13:43

já tive sucesso!
obrigado

#11 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 18/08/2004, 13:46

já tive sucesso!
obrigado

Qual método utilizado?
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq