Ir para conteúdo

POWERED BY:

Arquivado

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

giga_fire

PHP está engolindo barras, estranho né?

Recommended Posts

Olhem o código abaixo...

 

PHP

[*]// includes e requires

[*]include("conexao.php");

[*]include("globals.php");

[*]

[*]// dados recebidos

[*]$nome = $_POST['nome'];

[*]

[*]function alfanum($texto) {

[*]// transforma alguma string em alfanumerico total, ideal para nome de arquivos e diretorio

[*]$texto = strtolower($texto);

[*]$texto = ereg_replace("[áàãâä]","a",$texto);

[*]$texto = ereg_replace("[éèêë]","e",$texto);

[*]$texto = ereg_replace("[íìîï]","i",$texto);

[*]$texto = ereg_replace("[óòõôö]","o",$texto);

[*]$texto = ereg_replace("[úùûü]","u",$texto);

[*]$texto = ereg_replace("ç","c",$texto);

[*]$texto = ereg_replace("[^a-z_.0-9]","_",$texto);

[*]return $texto;

[*]}

[*]$dir = "/". alfanum($nome);

[*]

[*]// variaveis que serao usadas

[*]$novo = $completo.$dir;

[*]$thumbdir = $novo.$thumbnome;

[*]

[*]// checar pre-requisitos do diretorio

[*]if (file_exists($dir)) {

[*]echo "Diretório $novo já existe, criando segunda versão\n";

[*]$dir = "$dir"."2";

[*]} else {

[*]echo "Diretório $novo não existe, criando novo\n";

[*]}

[*]

[*]// chmodando, criando diretorio

[*]if (mkdir($novo,0777)) {

[*]chmod($novo,0777);

[*]echo "Diretório $novo criado com sucesso\n";

[*]

[*] // insere a pasta de thumb

[*] if (mkdir($thumbdir,0777)) {

[*] chmod($thumbdir,0777);

[*] echo "Diretório $thumbdir criado com sucesso\n";

[*]

[*] // inserir no banco de dados

[*] // ALTERAR -> essa linha de acordo com a estrutura no banco de dados

[*] $data = date("Y") ."-". date("m") ."-". date("d");

[*] $horario = date("H") .":". date("i") .":". date("s");

[*] if (mysql_query("INSERT INTO $tbgal[0] ($tbgal[1],$tbgal[2],$tbgal[4],$tbgal[5]) VALUES ('$nome','$dir','$data','$horario')")) {

[*] echo "Registro inserido no banco de dados!";

[*] } else {

[*] echo "Registro não inserido no banco de dados!";

[*] }

[*]

[*] } else {

[*] echo "Erro na criação do diretório $thumbdir";

[*] }

[*]

[*]} else {

[*]echo "Diretório $novo não criado\n";

[*]}

 

A variável $novo = $completo.$dir contém um caminho completo (/var/www...) de uma pasta que será usada criando um mkdir, que está aí no código.

 

Após a criação dessa pasta, a variável $thumbdir contém $novo.$thumbnome, sendo $thumbnome algo como "/thumb". Então fica /var/www......./thumb, em teoria isso deveria ser criado usando outro mkdir()...

 

O problema é que aqui no meu servidor local funciona. Quando mando pra net o valor de $thumbdir fica /var/www......thumb (sem a barra que deveria estar ali)

 

Não sei o que está acontecendo.

 

O que posso fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que eu sei o que é..faça esse teste:<?=realpath(".");>e teste na sua máquina local e no servidordependendo da configuração de ambos o caminho real físico poderá retornar diferente. em alguns casos retorna sem a última barrapode ser isso o que está acontecendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que eu sei o que é..

 

faça esse teste:

 

<?=realpath(".");>

 

e teste na sua máquina local e no servidor

 

dependendo da configuração de ambos o caminho real físico poderá retornar diferente. em alguns casos retorna sem a última barra

 

pode ser isso o que está acontecendo

<{POST_SNAPBACK}>

E qual é a solução??? http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dexa eu adivinhar aí você usa windows e o server é linix?Cara tem um monte de coisas que no windows funfa e no linux não. tmb depende da configuração do apache.

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.