Ir para conteúdo

Arquivado

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

Pitag346

Warning preg_match()

Recommended Posts

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

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

 

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.