Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Trying to get property of non-object, jakim cudem za pomocą zmiennych to nie działa?
shpaque
post 15.06.2018, 10:19:26
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


Dzień dobry, fiksuję już chyba bo tego zupełnie nie rozumiem.

dlaczego w kodzie:

  1. if (isset($_GET['fr']))
  2. {
  3. $getFolderRow = $_GET['fr'];
  4.  
  5. echo $customer -> catalogs -> catalog[TUTAJ] -> title;
  6. }


przy adresie get: http://www.bleble.vx/costam.php?fr=1

kiedy dam na sztywno [1] wszystko jest ok, ale kiedy dam [$getFolderRow], wywala

Trying to get property of non-object
Go to the top of the page
+Quote Post
Pyton_000
post 15.06.2018, 10:33:58
Post #2





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

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


var_dump($customer->catalogs->catalog);
Go to the top of the page
+Quote Post
shpaque
post 15.06.2018, 10:46:24
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


patrzylem i na printr i na var dump - chodzi o to ze zwraca jedna tablice z pierwszym "katalogiem"
jest ich 3, jak dam na sztywno - odczytuje, jak nie, zwraca blad...

dlatego mnie to dziwi, dlaczego dziala na sztywno [1], dlaczgeo dziala tak jak ponizej:

  1. for ($i = 0; $i < $countCats; $i++)
  2. {
  3. if ($i == $getFolderRow)
  4. {
  5. echo $customer -> catalogs -> catalog[$i] -> title;
  6. }
  7. }


a dlaczego nei dziala tak:

  1. echo $customer -> catalogs -> catalog[$getFolderRow] -> title;
Go to the top of the page
+Quote Post
nospor
post 15.06.2018, 10:54:47
Post #4





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




$getFolderRow = (int)$_GET['fr'];

A jak i to nie zadziala to pokaz co zwraca
var_dump($_GET['fr']);


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

"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
shpaque
post 15.06.2018, 11:00:25
Post #5





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


string(1) "1"

to dziwne bo w innych przypadkach dziala to bezblednie, a tu nie i musze bezcelowo dodwac kolejna petle zeby zadzialalo:

  1. $findCatTitle = '';
  2. for ($i = 0; $i < $countCats; $i++)
  3. {
  4. if ($i == $getFolderRow)
  5. {
  6. $findCatTitle = $customer -> catalogs -> catalog[$i] -> title;
  7. }
  8. }
  9. var_dump($_GET['fr']);
  10.  
  11. if ($findCatTitle == $getFolderTitle)...
Go to the top of the page
+Quote Post
nospor
post 15.06.2018, 11:01:38
Post #6





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




No ale zrobiles $getFolderRow = (int)$_GET['fr']; jak prosilem? Pokaz caly kod po zmianach. Caly.

I pokaz co dokladnie zwraca
var_dump($customer -> catalogs -> catalog);


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

"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
shpaque
post 15.06.2018, 11:05:35
Post #7





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


nie zrobilem bo mowiles ze i tak nie zadziala - ale zadziałało!!! Tylko dlaczego tutaj musialo a gdzie indziej idzie normalnie?

Cały kod

  1. $xmlPath = './db/customers.xml';
  2. $dataBase = simplexml_load_file($xmlPath) or die ('Błąd: Wystąpił problem z plikiem XML!');
  3.  
  4. $changeLogDB = $dataBase -> changeLog;
  5. $ip = $dataBase -> ip;
  6.  
  7. foreach ($dataBase -> customer as $customer)
  8. {
  9. if ( ($customer -> name == $getCustomerName) && ($customer -> settings -> id == $getID) )
  10. {
  11. $customerName = $customer -> name;
  12. $customerFolder = $customer -> folder;
  13. $settings[] = $customer -> settings;
  14. $catalogs[] = $customer -> catalogs;
  15.  
  16. $countCats = count($customer -> catalogs -> catalog);
  17.  
  18. // Sprawdzamy, czy nie trzeba dodać nowego katalogu klienta
  19. if ( (isset($_GET['f'])) && (isset($_GET['fn'])) )
  20. {
  21. $getFolder = $_GET['f'];
  22. $getFolderName = $_GET['fn'];
  23.  
  24. if (($getFolder == 'add') && ($getFolderName == 'new'))
  25. {
  26. // Dodajemy katalog i pierwszy main oraz link
  27. $dataBase -> changeLog = $nowDateTime;
  28. $dataBase -> ip = $yourIP;
  29. $i = $countCats + 1;
  30.  
  31. $dataBase -> customer -> settings -> changeLog = $nowDateTime;
  32. $newCatalog = $dataBase -> customer -> catalogs -> addChild('catalog');
  33. $newCatalog -> addChild('title', 'Tytuł nowego katalogu');
  34. $newCatalog -> addChild('file', '');
  35. $newMain = $newCatalog -> addChild('main');
  36. $newMain -> addChild('title', 'Tytuł nowego działu');
  37. $newMain -> addChild('page', '0');
  38. $newLink = $newMain -> addChild('link');
  39. $newLink -> addChild('title', 'Tytuł nowego linku');
  40. $newLink -> addChild('page', '0');
  41. $dataBase -> asXML($xmlPath);
  42.  
  43. // Zmieniamy strukturę pliku, upiększamy i zapisujemy go
  44. function formatXml($simpleXMLElement)
  45. {
  46. $xmlDocument = new DOMDocument('1.0', 'utf-8');
  47. $xmlDocument -> preserveWhiteSpace = false;
  48. $xmlDocument -> formatOutput = true;
  49. $xmlDocument -> loadXML($simpleXMLElement -> asXML());
  50.  
  51. return $xmlDocument -> saveXML();
  52. }
  53.  
  54. $beautifyXML = htmlspecialchars(formatXml($dataBase));
  55. $beautifyXML = html_entity_decode($beautifyXML);
  56.  
  57. $beautyFile = fopen($xmlPath, 'w');
  58. flock($beautyFile, LOCK_EX);
  59. fwrite($beautyFile, $beautifyXML);
  60. flock($beautyFile, LOCK_UN);
  61. fclose($beautyFile);
  62.  
  63. // Alertujemy co się wydarzyło
  64. $alertPath = './index.php?page=edit&id='.$getID.'&c='.$getCustomerName;
  65. $alertType = 'alert-success';
  66. $alertMessageStrong = 'Sukces!';
  67. $alertMessage = 'Nowy katalog został dodany.';
  68.  
  69. echo "<script>document.location.href = \"".$alertPath."&at=".$alertType."&ams=".$alertMessageStrong."&am=".$alertMessage."\";</script>";
  70. }
  71.  
  72. // Usuwanie katalogu z plikami i odnośnikami
  73. if ($getFolder == 'del')
  74. {
  75. if ( (isset($_GET['fr'])) && (isset($_GET['ft'])) )
  76. {
  77. $getFolderRow = (int)$_GET['fr'];
  78. $getFolderTitle = $_GET['ft'];
  79.  
  80. // Nadpisujemy czas zmiany pliku bazy danych
  81. $dataBase -> changeLog = $nowDateTime;
  82. $dataBase -> ip = $yourIP;
  83. $customer -> settings -> changeLog = $nowDateTime;
  84. $dataBase -> asXML($xmlPath);
  85.  
  86. $findCatTitle = $customer -> catalogs -> catalog[$getFolderRow] -> title;
  87. if ($findCatTitle == $getFolderTitle)
  88. {...
Go to the top of the page
+Quote Post
nospor
post 15.06.2018, 11:07:51
Post #8





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Cytat
nie zrobilem bo mowiles ze i tak nie zadziala
Koniec. Brak mi na ciebie juz sil. Omojam twoje tematu z daleka od dzisiaj. Ile razy mozna...za kazdym razem jest z toba uzeranie, prosze po kilkarazy o to samo... To mi/nam ma zalazec czy tobie? Wskaz mi prosze palcem gdzie ja ci napisalem ze to nie zadziala?!


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

"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
shpaque
post 15.06.2018, 11:10:01
Post #9





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


Cytat(nospor @ 15.06.2018, 11:54:47 ) *
$getFolderRow = (int)$_GET['fr'];

A jak i to nie zadziala to pokaz co zwraca
var_dump($_GET['fr']);

skoro napisałeś że nie zadziała - nie robiłem.
Go to the top of the page
+Quote Post
nospor
post 15.06.2018, 11:10:38
Post #10





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




NIe! Nie napisalem ze nie zadziala. Ty sie nauczy ze zrozumieniem czytac. Tam jest napisane, ze JESLI NIE ZADZIALA to .....


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

"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
shpaque
post 15.06.2018, 11:10:59
Post #11





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


ok. Przepraszam. Za szybko czytam.
Go to the top of the page
+Quote Post
nospor
post 15.06.2018, 11:12:24
Post #12





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Wlasnie. I tak z kazdym tematem od jakiegos czasu. Czytasz po lebkach i trzeba kilkukrtonie to samo powtarzac a nawet jak sie palcem pokaze to dalej nie raczysz sie skupic. Ja juz odpadam bo mam dosc takiego twojego zachowania.


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

"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

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 Wersja Lo-Fi Aktualny czas: 28.03.2024 - 17:46