Pitag346 0 Denunciar post Postado Fevereiro 8, 2015 Olá amigos, tenho um sistema de upload de imagem onde eu utilizo o preg_match() Para verificar se o arquivo que o usuário está enviando é uma imagem segue aqui o código: if(!preg_match("/^image/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){ $error[1] = "Isso não é uma imagem."; } mas o sistema está me retornando o seguinte erro: Warning: preg_match() [function.preg-match]: Unknown modifier '(' in adc_img.php on line 21 não estou conseguindo fazer o upload. Espero que alguem ajude. SEGUE O CODIGO ADC_IMG.PHP COMPLETO: <?php require_once('../system/func/conf.php'); if ($_POST['cadastrar']) { // Recupera os dados dos campos $foto = $_FILES["foto"]; // Se a foto estiver sido selecionada if (!empty($foto["name"])) { // Largura máxima em pixels $largura = 132; // Altura máxima em pixels $altura = 107; // Tamanho máximo do arquivo em bytes $tamanho = 10000; // Verifica se o arquivo é uma imagem, linha do erro abaixo: if(!preg_match("/^image/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){ $error[1] = "Isso não é uma imagem."; } // Pega as dimensões da imagem $dimensoes = getimagesize($foto["tmp_name"]); // Verifica se a largura da imagem é maior que a largura permitida if($dimensoes[0] > $largura) { $error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels"; } // Verifica se a altura da imagem é maior que a altura permitida if($dimensoes[1] > $altura) { $error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels"; } // Verifica se o tamanho da imagem é maior que o tamanho permitido if($foto["size"] > $tamanho) { $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes"; } // Se não houver nenhum erro if (count($error) == 0) { // Pega extensão da imagem preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext); // Gera um nome único para a imagem $nome_imagem = md5(uniqid(time())) . "." . $ext[1]; // Caminho de onde ficará a imagem $caminho_imagem = "img_perfil/" . $nome_imagem; // Faz o upload da imagem para seu respectivo caminho move_uploaded_file($foto["tmp_name"], $caminho_imagem); // Insere os dados no banco $sql = mysql_query("UPDATE acesso FROM nome_imagem = '$nome_imagem' WHERE cod='$cod' "); // Se os dados forem inseridos com sucesso if ($sql){ echo "Você foi cadastrado com sucesso."; } } // Se houver mensagens de erro, exibe-as if (count($error) != 0) { foreach ($error as $erro) { echo $erro . " "; } } } } ?> Obrigado desde já.... necessito mt urgente. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 8, 2015 Você está usando barra para delimitar a ER. Logo, precisa escapar a barra literial Sua ER possui este trecho: image/ Se você não escapar essa barra, o PHP entende que a ER acaba nessa barra. O correto seria: image\/ Compartilhar este post Link para o post Compartilhar em outros sites
Pitag346 0 Denunciar post Postado Fevereiro 8, 2015 Você está usando barra para delimitar a ER. Logo, precisa escapar a barra literial Sua ER possui este trecho: image/ Se você não escapar essa barra, o PHP entende que a ER acaba nessa barra. O correto seria: image\/ amigo sua resposta deu certo, consegui sanar este erro, mas nao estou conseguindo gravar o nome da imagem na database... segue abaixo: $sql = mysql_query("UPDATE acesso FROM nome_imagem = '$nome_imagem' WHERE cod='$cod' "); não retorna nenhum erro, e não grava na database mas o upload é feito normalmente! espero que ajude. obg Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 8, 2015 UPDATE FROM? :unsure: Isso não existe Se quer inserir, use INSERT PS: funções mysql_* estão obsoletas desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql Compartilhar este post Link para o post Compartilhar em outros sites
Pitag346 0 Denunciar post Postado Fevereiro 8, 2015 UPDATE FROM? :unsure: Isso não existe Se quer inserir, use INSERT PS: funções mysql_* estão obsoletas desde o PHP 5.5. Prefira usar MySQLi ou PDO. Veja mais aqui: http://www.ultimatephp.com.br/php-por-que-nao-utilizar-funcoes-mysql estou ultilizando insert mas ainda não cadastra amigo, e preciso usar WHERE para adicionar o nome da imagem do usuario com o codigo tal.... como pode ver tenho pouco conhecimento com php Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Fevereiro 8, 2015 Dê uma estudada em SQL. Não se usa WHERE no INSERT. Explique melhor o que deseja fazer. Não entendi por que precisa de uma condicional no INSERT Compartilhar este post Link para o post Compartilhar em outros sites