Ir para conteúdo
Fórum Script Brasil
  • 0

[Resolvido] Problema Função preg_match


guirimst

Pergunta

Boa noite a todos, estou com problema na função preg_match no php. As imagens são cadastradas corretamente e exibidas, mas aparece o seguinte erro:

Warning: preg_match() [function.preg-match]: No ending delimiter '^' found in C:\xampp\htdocs\exemplos\albumfoto\uploadff.php on line 77

já retirei o sinal "^" e continua dando erro, não sei o que esta acontecendo, já tentei mudar de várias formas e nada, vejam o codigo abaixo:

if(preg_match("^image\/($formatos)$", $arquivo["type"][$key]))

{

$erros[] = "Formato do arquivo [$nomefoto] não permitido ou inválido, são permitidos:<br> $formatos.";

}

A variavel $formatos já esta sendo declarada com os valores dos formatos das extensões das imagens.

Se alguém puder me ajudar, ficaria agradecido e agradeço desde já

Obrigado a todos

Editado por guirimst
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Boa noite Willian, tentei fazer isto que voce demonstrou, mas cai na mensagem de erro logo abaixo do codigo

if(preg_match("/^image\/($formatos)$/", $arquivo["type"][$key]))

{

$erros[] = "Formato do arquivo [$nomefoto] não permitido ou inválido, são permitidos:<br> $formatos.";

}

Infelizmente não deu certo :(

Link para o comentário
Compartilhar em outros sites

  • 0

Boa noite Willian, desculpe a demora em responder, estava com problemas de saude. O conteudo da variavel é os formatos das fotos. Mas vou postar o codigo toda pra voce ver:

<?php

$con = new Conexao("$homeDB");

$larguraMax = 10000; // largura em pixels

$alturaMax = 10000; // altura em pixels

$tamanhoMax = 10000000; // tamanho em bytes

$formatos = "pjpeg|jpeg|png|gif|bmp|x-png|jpg"; // extensoes permitidas

# Criando as mensagens de erro

$erro[] = "O tamanho do arquivo enviado é maior que o permitido [".($tamanhoMax/10000)." kb].";

$erro[] = "A largura da imagem é maior que o permitido [$larguraMax pixels].";

$erro[] = "A altura da imagem é maior que o permitido [$alturaMax pixels].";

$erro[] = "O arquivo já existe no diretório.";

$erro[] = "Formato do arquivo não permitido ou inválido, são permitidos:<br> $formatos.";

if(isset($_FILES["fotos"]))

{

function retira_acentos( $texto )

{

$array1 = array( "á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç"

, "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç" );

$array2 = array( "a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c"

, "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C" );

return str_replace( $array1, $array2, $texto );

}

foreach ($_FILES["fotos"]["name"] as $key => $name)

{

$arquivo = $_FILES["fotos"];

#Verificando se a imagem foi enviada

if(isset($arquivo["name"][$key]) && $arquivo["name"][$key] != "" && !empty($arquivo["name"][$key]))

{

$dimensoes = @getimagesize($arquivo["tmp_name"][$key]);

$nomefoto = strtolower($_FILES["fotos"]["name"][$key]);

$nomefoto = retira_acentos($nomefoto);

# Retirando espacos no nome do arquivo

$espacos = explode(" ",$nomefoto);

if(count($espacos) > 1)

{

$nomefoto = strtolower(ereg_replace(' ', '_', $nomefoto));

}

# Se o Tamanho do arquivo é permitido

if($arquivo["size"][$key] > $tamanhoMax)

{

# Adiciona o erro no array erros[]

$tamorig = $arquivo["size"][$key];

$erros[] = "O tamanho do arquivo enviado [$nomefoto] é maior que o permitido [".($tamanhoMax/10000)." kb].";

}

# Se a Largura do arquivo é permitida

if($dimensoes[0] > $larguraMax)

{

$erros[] = "A largura da imagem [$nomefoto] é maior que o permitido [$larguraMax pixels].";

}

# Se a Altura do arquivo é permitida

if($dimensoes[1] > $alturaMax)

{

$erros[] = "A altura da imagem [$nomefoto] é maior que o permitido [$alturaMax pixels].";

}

# Verifica se o arquivo já existe no diretorio

if(file_exists("fotos/$nomefoto"))

{

//$erros[] = "[$nomefoto] $erro[3]";

}

# Verifica se extensao é permitida

if(preg_match("/^image\/($formatos)$/", $arquivo["type"][$key]))

{

$erros[] = "Formato do arquivo [$nomefoto] não permitido ou inválido, são permitidos:<br> $formatos.";

}

# O array erros não tiver nenhum indice o upload é permitido/realizado

if(!isset($erros))

{

$nomeRam = md5(uniqid(time())).$nomefoto;

$imagem_dir = "fotos/".$nomeRam;

if( move_uploaded_file($_FILES["fotos"]["tmp_name"][$key], $imagem_dir))

{

$sucesso[] = "Upload do arquivo [$nomefoto] efetuado com sucesso.";

$con = new Conexao("$homeDB");

$urlfoto = "fotos/".$nomeRam;

$news = new Crud('fotos');

$news->insert("idmateria,urlfoto","$id,'$urlfoto'");

$news->execute();

}

}

}

else{

//$erros[] = "Nenhum arquivo foi enviado.";

}

}

# Verifica se existem erros no array

if(isset($erros))

{

foreach($erros as $erro)

{

echo "<p class ='error'>$erro</p>";

}

}

# Verifica quais imagens tiveram sucesso no upload

if(isset($sucesso))

{

foreach($sucesso as $up)

{

echo "<p class='success'>$up</p>";

}

echo "<span class=\"hide\" id=\"nomefoto\">$nomeRam</span>";

}

}

?>

Este codigo é na parte administrativa do site. Mas queria que as fotos fossem para o diretorio da index, mas não estou conseguindo colocar o endereço no arquivo $_FILES :( Se eu colocar no mesmo diretorio do codigo a pasta "FOTOS" é salvo e aberto corretamente, mas queria isto na index. Poderia também me auxiliar nisto? Agradeço desde já Willian

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado Willian, agora deu certo com o que voce havia me passado, não sei porque antes não dava, mexi tanto que alguma coisa que devo der mudado , mas claro que com sua ajuda também foi essencial

if(preg_match("/^image\/($formatos)$/", $arquivo["type"][$key]))

Obrigado.

Agora tenho outra duvida:

este codigo grava as imagens numa pasta chamada "fotos" na area administrativa do site. Mas preciso que elas aparecem na INDEX e são dois diretorios acima. Exemplo:

MEUSITE/adm/administração/AREAADMINISTRATIVA

Então queria que as fotos armazenadas na area administrativa fosse pra index. La na index o codigo é este:

<?

foreach($body as $news)

{

$pageid = $news[0];

$titulo = $news[1];

$materia = $news[2];

$datap = $news[3];

?>

<tr>

<td><h2><?=ucfirst($titulo)?> <p class="data"><?=$datap?> </h2>

<div class="buttonwrapper">

<a class="squarebutton" style="margin-left: 480px" href="album.php"><span>Retornar à Galeria</span></a>

</div>

</td>

</tr>

<tr>

<td><p>&nbsp;</p><?=$materia?><p>&nbsp;</p></td>

</tr>

<?

}

print "</table><p>&nbsp;</p><p>&nbsp;</p>";

print "<table id=\"gallery\">";

$news = new Crud("fotos");

$body = $news->executeSelectToArray("urlfoto|idfoto|idmateria","idmateria = $pageid");

if($body != 0)

{

$v = 0;

foreach($body as $news)

{

$v ++;

$urlfoto = $news[0];

$idfoto = $news[1];

$idmateria = $news[2];

if($v == 4 || $v == 0){ print "<tr>"; $v = 1;}

?>

<td >

<div class="photo sample2" id="<?=$idfoto?>">

<a href="<?=$urlfoto?>" rel="lightbox[roadtrip]"><span></span><img src="thumb.php?img=<?=$urlfoto?>" width="180" height="130" alt="clique para ampliar" /></a>

</div>

</td>

<?

if($v == 4 || $v == 0){print "</tr>"; $v = 1; }

}

}

?>

Onde esta em negrito $news = new Crud("fotos"); é a pasta das fotos, o ligthbox esta aparecendo mas as fotos precisavam vir e eu não estou conseguindo chama-las, já tentei links e tudo mais e nada.

Poderia me ajudar novamente Willian?? Agradeço desde já

Estava me esquecendo este local da "PASTA" das fotos no qual se referi no codigo fica na area administrativa

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...