1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problema simples de php...

Discussão em 'Programação' iniciada por Rato, 21 de Abril de 2005. (Respostas: 11; Visualizações: 839)

  1. Boas ppl,

    estou a fazer um tuturial em php.. e encravei num certo passo que me deixou um pouco chateado dado ser tão simples e semelhante ao asp...

    Eu instalei o interpretador que esta no site oficial da php.. o 5.0.4...
    Por isso não sei qual será o problema disto...

    tenho um form.php

    <html>
    <head>
    <title>TEste</title>
    </head>
    <body>
    <form action="verifica.php">
    Introduzir nome: <input type=txt name="nome"><br>
    <input type=submit value="teste">
    </form>
    </body>
    </html>


    e um verifica.php

    <html>
    <head>
    <title>verifica.php</title>
    </head>
    <body>
    <?
    echo "O nome introduzido foi:". $nome;
    ?>
    </body>
    </html>


    o erro resultante é...
    "Notice: Undefined variable: nome in c:\inetpub\wwwroot\php\verifica.php on line 7
    O nome introduzido foi: "


    por que razão ele n está a admitir a variável...?

    Agradecia alguma ajuda....


    gracias
    Cumps




    Ps: Estou a fazer este tutorial...

    http://www.truquesedicas.com/tutoriais/php/basico/00009a.htm

    Se acharem que existem melhores postem ai...
     
  2. Simao

    Simao Power Member

    o $nome é uma variavel local, a variavel que tas a tentar usar é a $_POST['nome'] , o $_POST e um array global, que alem de outras coisas, tem as variaveis ke mandaste usando o metodo "POST".
     
  3. mcog_blaster

    mcog_blaster Power Member

    o que se passa é que dever ter no teu php.ini algo do tipo register_globals = Off.
    deste modo nao podes usar $nome, tem de $_POST['nome'], $_GET['nome'], etc.

    desta maneira sabes sempre de onde vêm os valores e evita-se algums problemas de segurança...

    alguem poderia sempre fazer http://..../verifica.php?nome=Simao e a script executava direito sem que alguem tivesse passado pela pagina do form.

    com $_POST['nome'] sabes que vem um valor do form, isto claro se tiveres dito method=post no form.
     
  4. obrigadao pessoal pelas respostas... vou experimentar...

    cumps
     
  5. Boas pessoal...

    já experimentei... e só funcionou com get...

    devia ter funcionado com post?


    obrigadao pela ajuda!
     
  6. NoMercy

    NoMercy Power Member

    http://www.htmlhelp.com/reference/wilbur/block/form.html

    O método de CGI ou é POST ou é GET.
    Como não expecificas-te qual dos dois era, assume-se que era GET sendo este o default.

    Experimenta <FORM ACTION="verifica.php" METHOD=GET> para o método GET
    e <FORM ACTION="verifica.php" METHOD=POST> para o método POST
     
  7. era isso que eu estava a dizer...
    com post n funcionava
     
  8. Imaginem agora que eu quero limpar a "cache".. n sei se posso dizer assim..

    Dos valores que estão nas variáveis... imaginem que na segunda vez que vou usar o form vao lá estar os valores anteriores...

    Como posso impedir por código que ele tome os primeiros valores metidos... em vez dos que estou a meter no momento?

    gracias
     
  9. mcog_blaster

    mcog_blaster Power Member

    <input type=txt name="nome" value="">
     
  10. N era esse o meu problema...

    <form action="verifica.php" method=GET>

    Select:<br>
    <select name="select">
    <option value=opcao1>Ola</option>
    <option value=opcao2>Olas</option>
    </select><br><br>

    </form>

    se eu modificar este select para o seguinte...

    Select:<br>
    <select name="select">
    <option value=ola>Ola</option>
    <option value=olas>Olas</option>
    </select><br><br>

    e mesmo acrescentanto mais campos ao form...


    o verifica.php esta sempre a funcionar como se fosse enviado só o select e com os values a opcao1 e opcao 2..

    o que eu pergunto é se existe algum directiva ou algum comando que force o verifica.php a receberes tanto os valores como os campos actualizados...
     
  11. NoMercy

    NoMercy Power Member

    Verifica como é que está a ficar o caching do lado do servidor.
     
  12. E como é que eu vejo isso?
     

Partilhar esta Página