Resgatando variáveis de arquivos em Formulários POST
Bem essa directiva seta a ordem de análise que essas variáveis estarão disponíveis no script, por default temos:
EGPCS
Environment => Variáveis de Ambiente
GET => Variáveis GET
POST => Variáveis POST
Cookie => Variáveis COOKIE
Server => Variáveis SERVER
Se for setado como PC, as variáveis de ambiente, gets e servers serão ignoradas. Nesse caso as variáveis COOKIE serão sobrepostas pelas POST, caso ocorram com mesmo nome.
Por exemplo:
Se num form tivermos:
Após a submissão, podemos acessá-lo dessa maneira:
E se tivermos um COOKIE com o mesmo nome “nome_usuario”:
Ao tentarmos imprimir, teremos sempre o valor do POST e nunca o do COOKIE. A descoberta desse mínimo detalhe pode ser muito danosa: TEMPO!!!!
A solução seria usar:
Um perigo também é a mudança de servidor.
Vejam esse comentário de um usuário que dialogou comigo num fórum do www.scriptbrasil.com.
“Kra, eu aprendi uma terrivel lição. No PHP.ini so mecho no cache de upload e pastas temporarias. Mais nada, isso porque eu fui no embalo e comecei a mudar as diretivas do php.ini e em cima desenvolvi todo um portal, perto de 300 paginas e tudo funionava corretamente até que resolvi hospedar o portal num provedor profissional e ai a coisa pegou feio. Nos provedores profissionais, eles instalam o php e não mudam variaveis globais. Quando fui testar o portal, meu Deus, foi uma catástrofe. O sistema perdeu todas as sessions, os forms e os cookies. Eu passei os ultimos dois meses “refazendo codigo que nem doido e so agora finalmente estou acabando de arrumar a bagunça. Por isso, tome muito cuidado ao mexer nas variaveis do php.ini porque a coisa pode complicar la na frente.
Lauro A L Brito
http://www.scriptbrasil.com/forum/read.php?f=5&i=545&t=521
Bem, sem comentários. MUITO CUIDADO COM ISSO.
EGPCS
Environment => Variáveis de Ambiente
GET => Variáveis GET
POST => Variáveis POST
Cookie => Variáveis COOKIE
Server => Variáveis SERVER
Se for setado como PC, as variáveis de ambiente, gets e servers serão ignoradas. Nesse caso as variáveis COOKIE serão sobrepostas pelas POST, caso ocorram com mesmo nome.
Por exemplo:
Se num form tivermos:
<input type=”text” name=” nome_usuario”>
Após a submissão, podemos acessá-lo dessa maneira:
<?php echo $nome_usuario; ?>
E se tivermos um COOKIE com o mesmo nome “nome_usuario”:
Ao tentarmos imprimir, teremos sempre o valor do POST e nunca o do COOKIE. A descoberta desse mínimo detalhe pode ser muito danosa: TEMPO!!!!
A solução seria usar:
<?php echo $_COOKIE[“nome_usuario”]; #ou // Em desuso !!! echo $HTTP_COOKIE_VARS["nome_usuario"]; ?>
Um perigo também é a mudança de servidor.
Vejam esse comentário de um usuário que dialogou comigo num fórum do www.scriptbrasil.com.
“Kra, eu aprendi uma terrivel lição. No PHP.ini so mecho no cache de upload e pastas temporarias. Mais nada, isso porque eu fui no embalo e comecei a mudar as diretivas do php.ini e em cima desenvolvi todo um portal, perto de 300 paginas e tudo funionava corretamente até que resolvi hospedar o portal num provedor profissional e ai a coisa pegou feio. Nos provedores profissionais, eles instalam o php e não mudam variaveis globais. Quando fui testar o portal, meu Deus, foi uma catástrofe. O sistema perdeu todas as sessions, os forms e os cookies. Eu passei os ultimos dois meses “refazendo codigo que nem doido e so agora finalmente estou acabando de arrumar a bagunça. Por isso, tome muito cuidado ao mexer nas variaveis do php.ini porque a coisa pode complicar la na frente.
Lauro A L Brito
http://www.scriptbrasil.com/forum/read.php?f=5&i=545&t=521
Bem, sem comentários. MUITO CUIDADO COM ISSO.
verdadeiramente é uma das melhores formas de trabalhar com matrizes. Um acréscimo sobre o mesmo vindo direto do manual.
"Quando o foreach inicia sua primeira execução, o ponteiro interno da matriz é zerado automaticamente para o primeiro elemento do array. Isto significa que você não precisa chamar reset() antes de um loop foreach."
"Quando o foreach inicia sua primeira execução, o ponteiro interno da matriz é zerado automaticamente para o primeiro elemento do array. Isto significa que você não precisa chamar reset() antes de um loop foreach."
11/11/2003 5:07pm
(~21 anos atrás)
Obrigado Olavo,
muito legal a alternativa de foreach para elas..
da pra trabalhar legal com isso
muito legal a alternativa de foreach para elas..
da pra trabalhar legal com isso
07/11/2003 8:25am
(~21 anos atrás)
Marcelo,
pode-se utilizar sim... a função print_r() serve apenas para facilitar...
faça o seguinte:
foreach ($_SERVER as $dado)
{
list($nome,$valor) = each ($_SERVER);
echo "$nome: $valor<br>";
}
É O MESMO result de print_r($_SERVER); só que lá em cima temos o valores de cada atributo em separado...
isso vale para
uma GET;
uma POST;
um COOKIE;
uma SESSION;
uma SERVER_VARS;
uma ENV_VARS;
até mais
pode-se utilizar sim... a função print_r() serve apenas para facilitar...
faça o seguinte:
foreach ($_SERVER as $dado)
{
list($nome,$valor) = each ($_SERVER);
echo "$nome: $valor<br>";
}
É O MESMO result de print_r($_SERVER); só que lá em cima temos o valores de cada atributo em separado...
isso vale para
uma GET;
uma POST;
um COOKIE;
uma SESSION;
uma SERVER_VARS;
uma ENV_VARS;
até mais
07/11/2003 7:18am
(~21 anos atrás)
Não cheguei a fazer muitos testes
mas pode ser feito uso de foreach para o $_REQUEST ?
vou dar uma olhada no manual e posto aqui qualquer coisa.. tenho a impressão que dá pra fazer um exemplo de como usar
Mais tarde devo estar postando isso
Abraços
mas pode ser feito uso de foreach para o $_REQUEST ?
vou dar uma olhada no manual e posto aqui qualquer coisa.. tenho a impressão que dá pra fazer um exemplo de como usar
Mais tarde devo estar postando isso
Abraços
07/11/2003 4:14am
(~21 anos atrás)
A função print_r() é perfeita para analisar os valores de variáveis no script, nas sessions, por exemplo onde sempre estamos passando valores á muito rápido ver se estar ocorrendo algum problema....
06/11/2003 10:06pm
(~21 anos atrás)
Só para adicionar ao conteudo do artigo
esses dias fiz um teste bastantae interessante que me ajudou a enxergar o que há dentro destas variáveis que o Olavo explicou
o uso de print_r($_GET);
facilita MUITO para você ver como ele armazena os dados espero ter ajudado
isso pode ser feito para $_POST $_REQUEST etc..
esses dias fiz um teste bastantae interessante que me ajudou a enxergar o que há dentro destas variáveis que o Olavo explicou
o uso de print_r($_GET);
facilita MUITO para você ver como ele armazena os dados espero ter ajudado
isso pode ser feito para $_POST $_REQUEST etc..
06/11/2003 6:49pm
(~21 anos atrás)
Dependendo do seu software de FTP você pode ter opções como "change permissions" ou até mesmo "chmod".
Lembre-se que para qualquer usuário poder gravar você deve setar a pasta com chmod 777. Como o script roda no servidor com o usuário nobody você deve setar o chmod para não dar erro de permissões.
Tente se informar no suporte do provedor, em algumas ocasiões eles próprios podem setar essa configuração para você.
Existe também a função move_uploaded_file que é muito interessante para o Upload de arquivos via PHP.
Lembre-se que para qualquer usuário poder gravar você deve setar a pasta com chmod 777. Como o script roda no servidor com o usuário nobody você deve setar o chmod para não dar erro de permissões.
Tente se informar no suporte do provedor, em algumas ocasiões eles próprios podem setar essa configuração para você.
Existe também a função move_uploaded_file que é muito interessante para o Upload de arquivos via PHP.
04/11/2003 1:04pm
(~21 anos atrás)
por acaso voce colocou o enctype correto no formulario ?
este tambem é um dos motivos comuns quando tentamos fazer upload
espero ter ajudado
este tambem é um dos motivos comuns quando tentamos fazer upload
espero ter ajudado
04/11/2003 5:07am
(~21 anos atrás)
geralmente vc não tem permissão para gravar no diretório, vc pode resolver isso pelo FTP liberando as permissões do diretório
03/11/2003 11:24am
(~21 anos atrás)
Existe um valor recomendado certo? Dizem que é por questão de seguranca. Qual a diferenca (em termos de segurança) da diretiva ter o valor On ou Off ? Eu postei uma perguntao na fórum relativa a isso e se alguem puder responder eu serei muito grato.
Abraços.