Zasieg zmiennych, przyjmujących wyniki formularza

0

Witam.
Próbuje napisać swój własny skrypt formularza z backend'em. Niestety jestem świeżak i czasami zatne sie na najprostszych rzeczach.

Mam formularz:

<form action="kontakt.php" method="get">
    <p>Użytkownik: <?php echo var_dump($_GET) ?></p>
    <p> <?php echo $text; ?></p>
    <p><?php echo $subject; ?></p>
    <textarea name="subject"></textarea>
    <textarea name="text"></textarea>
    <input type="submit" name="button" id="button" value="Submit">
</form>

Kontakt.php to moj plik w ktorym sie formularz znajduje.
I chcialbym oby zmienne $text i $subject w oddzielnej funkcji przyjmowaly wyniki formularza

<?php
   function dobazy(){
       $user = '';
   $subject = $_GET["subject"];
     $text=$_GET["text"];
       echo $subject;
       echo $text;
   }

if(isset($_GET['button']))
{
    dobazy();
    echo $subject;
    echo $text;
}
?>

w samej funkcji echo wyświetla prawidłowo, ale już kawałek za nią niestety nie. Będe tego potrzebował do przesłania danego użytkownika (z joomli). Próbowałem dodać global przed funkcjami ale niestety skrypt sie wysypuje i nawet formularz sie nie wyświetla

0
<?php
  $subject = $text = ''; // tutaj definiujesz domyślną wartość dla twoich zmiennych globalnych

  function dobazy() {
    global $subject, $text;
    $subject = $_GET['subject'];
    $text = $_GET['text'];
    // echo $subject;
    // echo $text;
  }

  if (isset($_GET['button'])) {
    dobazy();
    echo $subject;
    echo $tekst;
  }
?>

Jeśli miałbyś jakieś pytania co do zasięgu zmiennych oraz zmiennych globalnych zapraszam do małej lektury: http://docs.php.net/manual/pl/language.variables.scope.php.

1

@kamilwxx: ty go nie ucz globalek, bo potem będzie tworzył programistyczne potwory.

@MikizOgro: skoro używasz zmiennych superglobalnych i niekoniecznie przejmujesz się rozbijaniem kodu np. do MVC, to używaj sobie tych GETów jak leci (btw: takie dane powinny iść przez POST). Jeżeli potrzebujesz używać poza funkcją używać zmiennych, które w funkcji powstały - to je po prostu zwróć returnem (hint: w php istnieją tablice).

0

Aha dziekuje. Brakowało mi return w tym przykładzie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1