Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zasięgiem (?) zmiennej
Forum PHP.pl > Forum > PHP
Dominator
Cześć, na stronie pojawia mi się dynamiczny formularz (modal) w którym wybieram pozycję z listy i wybieram liczę. Oczywiście bez problemu przekazuję te wartości do PHP. Z tym problemu nie ma. Problem objawia się przy "zwrocie" danych z bazy danych. Na górze strony sprawdzam sobie czy formularz został przesłany, jeśli został to sprawdzam który formularz konkretnie został przesłany (są 4). Po identyfikacji wykonuje się funkcja PHP. Problem jest taki, że nie mogę sobie wypisać danych na stronie w odpowiedzi z serwera... no nie wiem czemu, ktoś mnie olśni?

  1. if($_POST == true)
  2. {
  3. if(AdminManager::hasPermission("op") == true || AdminManager::hasPermission("admin") == true)
  4. {
  5. if(isset($_POST["voucher_wygeneruj"]) == true)
  6. {
  7. $_voucherManager->addVoucher($_POST["voucher_service"], $_POST["ilosc"]);
  8. $vouchers = $_voucherManager->getVouchers();
  9. $info = 'Vouchery zostały wygenerowane';
  10. AdminManager::Log($nick," Dodał voucher <b>".$_POST["voucher_service"]."</b>");
  11. }
  12. }
  13. else
  14. {
  15. echo '<div class="alert alert-danger">Brak uprawnień</div>';
  16. }
  17. }




Interesuje mnie możliwość dostępu do zmiennej $vouchers, niestety nie mam sad.gif
Tak wygląda kod od strony silnika:

  1. class VoucherManager extends DatabaseConnector
  2. {
  3. public $vouchers = array();
  4.  
  5. public function addVoucher($service, $ilosc)
  6. {
  7. for($i=0;$i<$ilosc;$i++)
  8. {
  9. $voucherid = md5(uniqid(rand(), true));
  10. $stmt = $this->pdo -> prepare("INSERT INTO `itemshop_vouchers_2` (`voucher_service`, `voucher_code`) VALUES('".$service."', '".$voucherid."')");
  11. $stmt -> execute();
  12.  
  13. $this->vouchers[$i] = $voucherid;
  14. }
  15. }
  16.  
  17. public function getVouchers()
  18. {
  19. return $this->vouchers;
  20. }
  21. }




Gdziekolwiek nie napiszę print_r($vouchers) to nic nie wypisze, dlaczego?
mmmmmmm
A masz:
$_voucherManager = new VoucherManager();
Dominator
Tak
Tomplus
jak masz zmienną $vouchers, to czy w ogóle masz dostęp do tej części kodu?

echo $info; ?

viking
Poza tym if($_POST == true). POST jest tablicą, dlaczego to porównujesz do true? Zwróci false.
mstraczkowski
@up
Nie zwróci false, bo dojdzie do konwersji typów (bo zastosowany został operator porównania, a nie identyczności), a tablica, która nie jest pusta zrzutowana na boolean to true

  1. var_dump((boolean)array('1', '2')) // true
  2. var_dump((boolean)array()); // false
  3. var_dump(array('1', '2') == true); // true
Pyton_000
Jak już się tak czepiamy wink.gif
  1. php > var_dump($_POST == true);
  2. php shell code:1:
  3. bool(false)
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.