Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z przekazaniem zmiennej
Forum PHP.pl > Forum > Przedszkole
kropla
witajcie mam (pewnie banalny) problem z którym nie mogę sobie poradzić. Otóż chce zrobić sprawdzanie uprawnień z ewentualnym logowaniem do strony i tak w pliku index.php mam coś takiego

  1. <?php
  2. require_once('myObject.php');
  3.  
  4. echo 'witaj';
  5. ?>


w pliku 'myObject.php mam

  1. <?php
  2. class myObject{
  3. var $us_name;
  4. var $us_pass;
  5. var $sess;
  6. var $_form_login="./sample_lform.htinc";
  7. var $action;
  8.  
  9. function check(){
  10.  
  11. echo 'funkcja check<br>';
  12. echo '<br><br>user -'.$this->us_name;
  13.  
  14. require_once($this->_form_login);
  15.  
  16. }
  17. }
  18.  
  19. $run =new myObject();
  20. $run->check();
  21. ?>


a w pliku lform.htinc

<form action="" name="dane" method="post">
USER -> <input type="text" name="us_name"/>
PASSWORD -><input type="password" name="us_pass"/><br>
<input type="button" value="Zapisz" onClick="gotopage('dane','check','')">
<input type="hidden" name="action" value="logging">
<input type="hidden" name="run">
</form>

od razu mówię z góry że przekazuję te wartośći za pomocą gotopage i to działa.
Jak w pliku MyObject.php w linii gdzie obecnie jest
  1. <?php
  2. echo '<br><br>user -'.$this->us_name;
  3. ?>
zmienię wartość
  1. <?php
  2. $this->us_name
  3. ?>
na
  1. <?php
  2. $_POST['us_name']
  3. ?>
to wtedy mam wyswietlane to co wpisalem z formularza ale jak mam przez $this->us_name to już nie.
Jak to powinno być questionmark.gif?
dzięki za info
Cysiaczek
$this->us_name nie zawiara tego, co masz w formularzu, bo nigdzie tego nie przypisałeś do tej składowej.
Możesz np. tak (prymitywnie)

  1. <?php
  2. class myObject{
  3. var $us_name=$_POST["us_name"]; // o tutaj
  4. var $us_pass;
  5. var $sess;
  6. var $_form_login="./sample_lform.htinc";
  7. var $action;
  8.  
  9. (...)
  10.  
  11. // i teraz możesz
  12.  
  13. print $this->us_name; //dlatego, że wcześniej przypisałeś wartosć tablicy POST o kluczu us_name.
  14. ?>


Pozdrawiam.
kropla
nie działa -> jawne przypisanie przy deklaracji wywala mi błąd
Parse error: parse error in c:\usr\apache\httpd\html\dziek\new\myObject.php on line 3
smile.gif
Cysiaczek
Fakt, w zależności od wersji php ta metoda działa lub nie.
wpakuj np. w konstruktor i po problemie smile.gif
  1. <?php
  2. function __construct(){
  3. $this->us_name=$_POST["us_name"];
  4. }
  5. ?>


choć lepiej...
tak:
  1. <?php
  2. function __construct($aData){
  3. $this->us_name=$aData["us_name"];
  4. }
  5. // a w ciele tak:
  6. $obiekt=new MyObject($_POST);
  7. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.