Jump to content
Fórum Script Brasil
  • 0

[Resolvido] Problema Função preg_match


guirimst

Question

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

Edited by guirimst
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...