Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]z funkcji do define - jak to ugryźć?
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Panowie poprzez select option wstawiam sobie wartość do funkcji:
  1. function SelectedAccount($SelectedAccount){
  2. $pdo = new db_connect();
  3. $sql = $pdo->prepare('SELECT * FROM `users` WHERE `short` = "'.$SelectedAccount.'" ');
  4. $sql->execute();
  5. $row = $sql->fetch();
  6. echo $row['user_login'];
  7. echo $row['user_password'];
  8. }


i chciałbym teraz wstawić user-login i user-password do define:

  1. define('LOGIN', 'wstawiam');
  2. define('HASLO', 'wstawiam');


niestety nie mogę define wstawić do środka funkcji tylko musi być na zewnątrz.


Go to the top of the page
+Quote Post
Rysh
post
Post #2





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Użyj return do zwrócenia tych danych i użyj jak chcesz. Tak poza tym, co to za pomysł żeby pobierać hasło i wstawiać je do define.


--------------------
Go to the top of the page
+Quote Post
casperii
post
Post #3





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Kilka kont allegro i w zależności od wyboru z selecta ładuje dane do define a z nich wczytuje dalej do funkcji doLogin etc.
Z tym returnem coś nie idzie:
  1. return $row['user_login'];
  2.  
  3. echo SelectedAccount();



Ten post edytował casperii 9.07.2017, 22:57:46
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


my wiemy jak się robi return. Ty chyba nie... Pokaż cały kod a nie 2 wybrane linijki.
Poza tym wypadałoby się w końcu wziąć za podstawy programowania skoro masz problemy z takimi prostymi zadaniami.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pomijajac cale te return itp to DEFINE nie sluzy do tworzenia stalych z bazy danych. Totalnie zle do tego podchodzisz.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
casperii
post
Post #6





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


w pierwszym poście podałem całą funkcje:

  1. function SelectedAccount($SelectedAccount){
  2. $pdo = new db_connect();
  3. $sql = $pdo->prepare('SELECT * FROM `users` WHERE `short` = "'.$SelectedAccount.'" ');
  4. $sql->execute();
  5. $row = $sql->fetch();
  6. return $row['user_login'];
  7. //echo $row['user_password'];
  8. }


w kolejnym poście nie dawałem ponownie kodu, tylko pokazałem , że echo zamieniłem na return

do funkcji przekazuje wartość którą w zależności od wartości przeszukuje bazę.
Pytaniem nie jest jak użyć funkcji tylko jak wyświetlić z funkcji zwrócone wartości ?

@nospor define to jedyne co mi na chwilę obecną przychodzi do głowy by z w/w funkcji przekazać wartości do klassy:

  1. class AllegroWebAPI {
  2. protected $_instance;
  3. protected $_config;
  4. protected $_session;
  5. protected $_client;
  6. protected $_local_version;
  7. const COUNTRY_CODE = '1';
  8.  
  9. public function __construct() {
  10. $this->_config = array(
  11. 'allegro_id' => '1',
  12. 'allegro_key' => KLUCZ,
  13. 'allegro_login' => LOGIN,
  14. 'allegro_password' => (base64_encode(hash('sha256', HASLO, true)))
  15. );
  16. $this->_client = new SoapClient('https://webapi.allegro.pl/uploader.php?wsdl');
  17. }

Go to the top of the page
+Quote Post
phpion
post
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Przekaż dane jako argumenty konstruktora. Od biedy możesz też skorzystać ze statycznych składowych klasy.
Go to the top of the page
+Quote Post
casperii
post
Post #8





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


@phpion czy mógłbyś podać przykład jak to zrobić?
Go to the top of the page
+Quote Post
viking
post
Post #9





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


  1. private $db;
  2.  
  3. public function __construct(PDO $db) {
  4. $this->db = $db;
  5. }
  6. public function SelectedAccount($SelectedAccount){
  7. $sql = $this->db->prepare('SELECT * FROM `users` WHERE `short` = ?');
  8. if ($sql->execute([$SelectedAccount])) {
  9. $row = $sql->fetch();
  10. return [
  11. 'login' => $row['user_login'],
  12. 'pass' => $row['user_password']
  13. ];
  14. // albo return $sql->fetch();
  15. }
  16.  
  17. $x = new twojaklasa;
  18. var_dump($x->SelectedAccount('test'));


--------------------
Go to the top of the page
+Quote Post
casperii
post
Post #10





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


@viking , nie rozumiem skąd Ty to wziąłeś:

  1. $x = new twojaklasa;


przecież to:
  1. public function SelectedAccount($SelectedAccount){


nie jest w klasie tylko poza nią.

Przecież mamy kod:
  1. function SelectedAccount($SelectedAccount){
  2. $pdo = new db_connect();
  3. $sql = $pdo->prepare('SELECT * FROM `users` WHERE `short` = "'.$SelectedAccount.'" ');
  4. $sql->execute();
  5. $row = $sql->fetch();
  6. return $row['user_login'];
  7. //echo $row['user_password'];
  8. //echo $row['api-key'];
  9. }
  10.  
  11.  
  12. class AllegroWebAPI {
  13.  
  14. public function __construct() {
  15. $this->_config = array(
  16. 'allegro_id' => '1',
  17. 'allegro_key' =>SelectedAccount(tu przekazanie wartości pola klucz) //KLUCZ,
  18. 'allegro_login' => SelectedAccount(tu przekazanie wartości pola login)//LOGIN,
  19. 'allegro_password' => (base64_encode(hash('sha256', SelectedAccount(tu przekazanie wartości pola hasło, true)))
  20. );
  21. $this->_client = new SoapClient('https://webapi.allegro.pl/uploader.php?wsdl');
  22. }
  23.  
  24. }
Go to the top of the page
+Quote Post
viking
post
Post #11





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A skąd mogę wiedzieć? Myślałem że to fragment klasy. Zasada działania dokładnie ta sama. Przypisz wynik działania do zmiennej i podstaw dane.


--------------------
Go to the top of the page
+Quote Post
casperii
post
Post #12





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Czyli rozumiem, że to powinno być coś w ten deseń:

  1. function .. {
  2. ..
  3. $row = $sql->fetch();
  4. $costam = $row['user_login'];
  5. }


a potem:

  1. allegro_key' =>SelectedAccount($costam),
Go to the top of the page
+Quote Post
viking
post
Post #13





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Przecież ci dokładnie napisałem jak to ma być. Wywołanie jest tylko inne bo to funkcja a nie metoda.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 08:48