logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Dlaczego dane z formularza HTML nie wyświetlają się w PHP?

lepton 20 Cze 2006 17:28 1626 14
REKLAMA
  • #1 2747091
    lepton
    Poziom 12  
    Posty: 93
    Pomógł: 2
    Ocena: 1
    Mam taki problem, że gdy wypełnie formularz w pliku html i wysyłam go na inną stronę w php za pomocą get lub post to pobrane wartości się nie wyświetlają

    oto kod z pierwszej stronki plik1.html

    
    <FORM ACTION=plik2.php METHOD=POST>
    Imie: <INPUT TYPE=TEXT NAME=imie>
    </FORM>
    



    a to z drugiej plik2.php


      Imię: <?php echo $_POST['imie']?><br>


    w czym tkwi problem?
  • REKLAMA
  • #2 2747264
    ostry_18
    Poziom 24  
    Posty: 824
    Pomógł: 64
    Ocena: 35
    brakuje mi buttona submit w formulazu. jak Ty to wysyłasz?

    a może masz stara wersja php? tam trzeba by dac $HTTP_POST_VARS['zmienna']
  • #3 2747269
    And!
    Admin grupy Projektowanie
    Posty: 9061
    Pomógł: 175
    Ocena: 784
    Faktycznie dosć dziwne.

    Spróbuj zmienić na:

    <FORM ACTION=plik2.php METHOD="POST">
    Imie: <INPUT TYPE="TEXT" NAME="imie"><BR>
    <input type="submit" name="wyslij" value="wyslij"><BR>
    </FORM>
  • REKLAMA
  • #4 2747298
    lepton
    Poziom 12  
    Posty: 93
    Pomógł: 2
    Ocena: 1
    guzik oczywiście mam, ale bez guzika po naciśnięciu enter też wysyła...
    ostry_18 napisał:
    tam trzeba by dac $HTTP_POST_VARS['zmienna']


    wersja php jaką mam na krasnalu jest dość aktulna, że tego nie musze używać

    EDIT:

    właśnie przed chwilą wysłałem to na inny serwer sprawdziłem i działa :D
    ale coś jest nie tak z serwerem na moim kompie jak mam krasnala, bo nie wyświetla mi tego... co może być tego przyczyną?
  • REKLAMA
  • #5 2747409
    ostry_18
    Poziom 24  
    Posty: 824
    Pomógł: 64
    Ocena: 35
    a jakiego krasnala masz. 2.6 czy 2.7? a wersja php, 4 czy 5?
  • #6 2747432
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Przyczyną może być stara wersja PHP lub zła konfiguracja. Tablica $_POST została wprowadzona do PHP w wersji 4.1.0. Wcześniej nazywała się $HTTP_POST_VARS.
  • #7 2747438
    lepton
    Poziom 12  
    Posty: 93
    Pomógł: 2
    Ocena: 1
    - Krasnal 2.7
    - PHP 4.3.9

    $HTTP_POST_VARS['zmienna'] też próbowałem, ale i tak nic
  • #8 2747441
    ostry_18
    Poziom 24  
    Posty: 824
    Pomógł: 64
    Ocena: 35
    hm. przelacz na php5, moze jakis jest blad w php.ini dla php4.
  • #9 2747616
    lepton
    Poziom 12  
    Posty: 93
    Pomógł: 2
    Ocena: 1
    a nie, przeoczyłem... Krasnal też obsuguje wersje php 5, a tutaj jego dane:

    Apache 1.3.31
    PHP 4.3.9
    PHP 5.0.2
    MySQL 3.23.58
    ActivePerl 5.6.1.628
    phpMyAdmin 2.6.0 pl2
    SQLiteManager 1.0.1
    CesarFTP 0.99g
    WebAlizer 2.1
    Free SMTP Server
  • Pomocny post
    #10 2747847
    ostry_18
    Poziom 24  
    Posty: 824
    Pomógł: 64
    Ocena: 35
    nie zrozumiales. to ze ma php5 to wiem. kliknij prawym na tym zielonym 'ogórku' w trayu, ustawienia->php->wybierz 'php5'. zobaczymy czy zadziala wtedy.
  • #11 2754250
    ostry_18
    Poziom 24  
    Posty: 824
    Pomógł: 64
    Ocena: 35
    pomogło? bo dostałem podziekowania.
  • REKLAMA
  • #12 2758615
    _Damian_
    Poziom 21  
    Posty: 401
    Pomógł: 44
    Ocena: 12
    Prawdopodobnie masz wyłączone rejestrowanie zmiennym globalnych. ZObacz, czy w pliku php.ini masz coś takiego:
    ; You should do your best to write your scripts so that they do not require
    ; register_globals to be on; Using form variables as globals can easily lead
    ; to possible security problems, if the code is not very well thought of.
    register_globals = Off

    Wpisz On i powinno działać. Pamietaj, że to jest potencjalnie niebezpiezne.
  • #13 2758723
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Rejestrowanie zmiennych globalnych to bardzo zły pomysł i bynajmniej nie robi tego, co chce autor. Opcja ta powoduje, że jeśli masz w formularzu np.

    <input type="text" name="aaa">


    to automatycznie przy uruchomieniu skryptu tworzona jest zmienna globalna $aaa i wstawiana do niej wartość z tego pola. Jest to bardzo niebezpieczne, ale tłumaczenie dlaczego tak jest, nie ma tu większego sensu...
  • #14 2759583
    _Damian_
    Poziom 21  
    Posty: 401
    Pomógł: 44
    Ocena: 12
    pmichniewski napisał:
    Rejestrowanie zmiennych globalnych to bardzo zły pomysł i bynajmniej nie robi tego, co chce autor. Opcja ta powoduje, że jeśli masz w formularzu np.

    <input type="text" name="aaa">


    to automatycznie przy uruchomieniu skryptu tworzona jest zmienna globalna $aaa i wstawiana do niej wartość z tego pola. Jest to bardzo niebezpieczne, ale tłumaczenie dlaczego tak jest, nie ma tu większego sensu...

    Wiem, za co to odpowiada. Jednak kiedy, ktoś ma problem z przekazywaniem zmiennych w trybie POST to zazwyczaj ma rejestrowanie wyłączone. I tak, jak napisałem wcześnej lepiej zostawić wyłączone, (i zmienić kod) bo jest to potencjalnie niebezpieczne.
  • #15 2759812
    ostry_18
    Poziom 24  
    Posty: 824
    Pomógł: 64
    Ocena: 35
    zmienne globalne sa bardzo niebezpieczne. skoro $_POST działa, to i tak registered_globals nie powinno się włączać

Podsumowanie tematu

LABEL_AI_GENERATED
Problem polegał na tym, że dane przesyłane z formularza HTML metodą POST nie wyświetlały się w skrypcie PHP. Formularz zawierał poprawne pola, jednak brakowało przycisku submit lub użytkownik nie był pewien, czy formularz jest poprawnie wysyłany. Sprawdzono, że na innym serwerze kod działa poprawnie, co wskazywało na problem z konfiguracją lokalnego serwera. Dyskusja ujawniła, że na serwerze lokalnym działała wersja PHP 4.3.9, a dostępna była także wersja PHP 5.0.2. Zalecano przełączenie interpretera PHP na wersję 5 w środowisku Krasnal, co rozwiązało problem. Poruszono także kwestię wyłączonej opcji register_globals w pliku php.ini, jednak uznano, że nie jest to właściwe rozwiązanie ze względów bezpieczeństwa. Ostatecznie problem wynikał z nieprawidłowej wersji lub konfiguracji PHP na lokalnym serwerze, a poprawne działanie uzyskano po zmianie wersji PHP na 5 w środowisku Krasnal.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA