Ir para conteúdo

POWERED BY:

Arquivado

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

jango

[Resolvido] Inserir / (barra) no BD

Recommended Posts

Oe, bom dia.

 

estou fazendo um cadastro de arquivos e um dos campos é a localização, estou tentando inserir o caminho do arquivo por exemplo "C:/Pasta1/Pasta2"

só que na hora de inserir no BD ta tirando as barras e juntando o nome "C:Pasta1Pasta2" :/

 

alguem poderia me dizer o porque ou me passar alguma função de 'escape'?

 

valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm, agora percebi uma coisa, na verdade eu me confundi, o que nao esta inserindo é barra INVERTIDA \ (sempre confundo)

 

é pq eu tava copiando o caminho da pasta onde as barras sao invertidas

 

na hora do insert ele retira as barras invertidas.

 

to tentando usar srt_replace pra trocar "\" por "/" mas nao esta funcionando parece que nao aceita isso "\"

 

 

O codigo ta normal:

 

$tipo=$_POST['tipo'];
$autor=$_POST['autor'];
$nomearq=$_POST['nomearq'];
$dt_criacao=$_POST['dtcri'];
$local=$_POST['local'];

// e depois insert

$DB_SQL1=mysql_query("INSERT INTO tb_arquivos VALUES ('','$tipo','$autor','$nomearq','$dt_criacao','local')";

Compartilhar este post


Link para o post
Compartilhar em outros sites

humm, agora percebi uma coisa, na verdade eu me confundi, o que nao esta inserindo é barra INVERTIDA \ (sempre confundo)

 

é pq eu tava copiando o caminho da pasta onde as barras sao invertidas

 

na hora do insert ele retira as barras invertidas.

 

to tentando usar srt_replace pra trocar "\" por "/" mas nao esta funcionando parece que nao aceita isso "\"

 

 

O codigo ta normal:

 

$tipo=$_POST['tipo'];
$autor=$_POST['autor'];
$nomearq=$_POST['nomearq'];
$dt_criacao=$_POST['dtcri'];
$local=$_POST['local'];

// e depois insert

$DB_SQL1=mysql_query("INSERT INTO tb_arquivos VALUES ('','$tipo','$autor','$nomearq','$dt_criacao','local')";

Agora fica mais fácil de te ajudar :P . Como o Leozitho disse, a barra invertida não seria processada pelo PHP por ser um caractere de escape. Você pode escrever manualmente com duas barras invertidas ou usar a função addslashes, que adiciona uma barra invertida em frente de caracteres de escape, como ', " e \

 

Além disso, magic_quotes_gpc deve estar definido como Off no php.ini, o que é estranho, já que por padrão vem On (acho). Caso estivesse On, ele faria o addslashes() automaticamente em variáveis $_POST, $_GET e $_COOKIE. Mais infomações no Manual do PHP: http://php.net/manual/en/security.magicquotes.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além disso, magic_quotes_gpc deve estar definido como Off no php.ini, o que é estranho, já que por padrão vem On (acho). Caso estivesse On, ele faria o addslashes() automaticamente em variáveis $_POST, $_GET e $_COOKIE. Mais infomações no Manual do PHP: http://php.net/manual/en/security.magicquotes.php

 

O padrão é off desde o PHP 4.2.0 se não me falha a memória (mudou junto com register_globals)

 

 

Segundo o próprio link que você postou, não há razões para usar magic_quotes:

 

http://br2.php.net/manual/en/security.magicquotes.why.php

 

Mantenha sempre em off

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

O padrão é off desde o PHP 4.2.0 se não me falha a memória (mudou junto com register_globals)

 

 

Segundo o próprio link que você postou, não há razões para usar magic_quotes:

 

http://br2.php.net/manual/en/security.magicquotes.why.php

 

Mantenha sempre em off

 

:thumbsup:

Sim, você está certo, mas então realizei um teste simples: mandei uma variável pelo método POST e mandei dar um echo na variável. Automaticamente um \ foi inserido na frente de um áspas que enviei. Por que isso acontece, sendo que o magic_quotes tá OFF? (não é ele que faria essa função?)

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste bem jaguara:

 

echo "<pre>";
print_r( $_POST );
echo "</pre>";
?>

<form method="post" action="">
<input type="text" name="oi" />
<input type="submit" />
</form>

 

Texto inserido:

"oi'blá\

 

 

saída:

Array
(
   [oi] => "oi'blá\
)

 

 

nenhuma barra a mais

 

você deve estar com magic_quotes_gpc on

 

insira isto antes do echo:

echo ini_get( 'magic_quotes_gpc' );

 

o que aparece?

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.