Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] $GLOBALS dla tablic, problem z przekazywaniem zmiennych w tablicach.
isia
post 12.06.2006, 09:34:56
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 5.05.2003

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


Witam...
Mam taki problem:

W pliku konfiguracyjnym : config.php mama zdefioniowane zmienne:

$cfg = array("web"=>"dana1", "rok"=>"dana2");
$cfg["tyt"] = "dana3";
$cfg["lib"] = "dana4";

itd i jeszcze drugą tabelę w podobny sposób.

w pliku index.php mam:

include("conf.php");
include("main.php");

w pliku main.php korzystam już z tych zmiennych.
Do tej pory normalnie odowływałam się wpisująć $cfg[web] i działa ALE problem polega na tym, że owszem działa ale na serwerze odkłada się w error logs błąd, że zmienna nie została zdefiniowana. Log strasznie szybko rośnie więc muszę to zmienić.
Poczytałam o zmiennych $GLOBALS ale jak użyję w confin.php zwykłej zmiennej - np.
$zm = "coś tam";

to odwołanie do niej w pliku main.php: $GLOBALS["zm"] działa.
Natomiast nie chce mi działać na tablicach.
Mam takie odwołaniew main.php:
$GLOBALS["cfg[web]"] i nie wyświetla żadnych błędów ale zmiennej też nie przekazuje.

Bardzo proszę o poradę!!!!
pozdrówko
isia

Ten post edytował isia 12.06.2006, 09:42:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
mike
post 12.06.2006, 09:37:09
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


nie tak:
  1. <?php
  2. $cfg[web]
  3. ?>

tylko tak

  1. <?php
  2. $cfg[ 'web' ]
  3. ?>

exclamation.gif!

P.S.
Prosze poprawić temat wątku. Obecny nie spełnia wymogów określonych w zasadach pisania na forum Przedszkole.
Go to the top of the page
+Quote Post
isia
post 12.06.2006, 09:48:20
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 5.05.2003

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


i to wystarczy żeby nie ładowało błędów.
Nie trzeba tego wpakować do $HTTP_POST_VARS ?

:-)
poprawiłam nagłówek - przepraszam
Go to the top of the page
+Quote Post
nospor
post 12.06.2006, 09:50:16
Post #4





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




i spiewamy refren: "Manual, manual i jeszcze raz manual" smile.gif
http://pl.php.net/manual/pl/language.types.array.php
przeczytaj se wszystko a szczegolnie skup sie na fragmencie od slow:
Cytat
Co wolno, a czego nie w tablicach?


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

"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
-Gość-
post 12.06.2006, 11:12:07
Post #5





Goście







$HTTP_POST_VARS jest przestarzale, uzywaj $_POST
Go to the top of the page
+Quote Post
isia
post 13.06.2006, 00:15:54
Post #6





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 5.05.2003

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


Przeczytałam i się załamałam. Z tego co tam jest napisane nie wolno mi użyć czegoś takiego

$tablica[$zmienna]

A większośc funkcji (dynamiczne wyśiwetkanie tabelek itp) mam zrobionych właśnie na bazie takiego odwołania się do elementy w bazie. Chodzi o to, że do pewnych elementów odwołuję się w pętli.
Proszę pomóżcie mi jakoś z tego wybrnąć. Tekst manuala przeniósł mnie do rozdziału parsowanie zmiennych ale jakos nie potrafiię nic wymyślęć.
Go to the top of the page
+Quote Post
mike
post 13.06.2006, 00:21:23
Post #7





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(isia @ 13.06.2006, 01:15 ) *
Przeczytałam i się załamałam. Z tego co tam jest napisane nie wolno mi użyć czegoś takiego

$tablica[$zmienna]


Bzdury. Pokaż mi gdzie tam jest tak napisane?
Oczywiście że możesz tak robić.
Go to the top of the page
+Quote Post
isia
post 13.06.2006, 07:31:06
Post #8





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 5.05.2003

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


Cytat(mike_mech @ 13.06.2006, 01:21 ) *
Bzdury. Pokaż mi gdzie tam jest tak napisane?
Oczywiście że możesz tak robić.

Racja - bazdury.
Po prostu byłam już zakręcona jak słoik... blinksmiley.gif

ALE
dlaczego mam błędy po włączeniu
  1. <?php
  2. ?>

Notice: Undefined offset: 0 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 353
Notice: Undefined offset: 1 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 353
Notice: Undefined offset: 2 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 353
dla fragmentu kodu
  1. <?php
  2. $plik = @fopen($file,"r") or die($jez['uwaga']);
  3. while (!(feof($plik)))
  4. {
  5. $zawartosc[$i] .= iso(nl2br(fgets($plik, 2048))); // błąd questionmark.gif?
  6. $i++;
  7. }
  8. fclose($plik);
  9. ?>


będę wdzięczna za pomoc..
isia

Ten post edytował isia 13.06.2006, 07:32:41
Go to the top of the page
+Quote Post
dr_bonzo
post 13.06.2006, 07:38:20
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Bo nie masz zdefiniowanej wartosci dla $zawartosc[ 0 ], 1, 2...
Zamiast
$zawartosc[$i] .= iso(...
Daj
$zawartosc[$i] = iso(... (bez kropki, bo $zawartosc[$i] przeciez nie istnieje jeszcze, a .= jest rowne
$zawartosc[$i] = $zawartosc[$i] . iso(...


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
isia
post 13.06.2006, 12:16:31
Post #10





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 5.05.2003

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


Dzięki ...
to pozwolę sobie na jeszcze jedno pytanie. Poniżej fragment skryptu:
  1. <?php
  2. if (!$Gstr) {
  3. if ($linie <= $limit) { $limit = $linie; }
  4. for ($i = 0; $i <= $limit; $i++) { 
  5.  $podzialOK = strrpos($zawartosc[$i], "|"); //****
  6.  if ($podzialOK <> 0) { 
  7. $podzial = split("|",$zawartosc[$i]);
  8. if(IsSet($podzial['0'])) { $tytul = iso($podzial['0']); }  
  9. ..............
  10. if ($uri <> '')  { print "cos tam"; }
  11.  } else { print "<DIV class="txt">".$zawartosc[$i]."</DIV>"; } ///****
  12.  } // end of for $i
  13. }
  14. ?>

W miejscu gdzie jest //**** wywala błąd:

Notice: Undefined offset: 8 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 377
Notice: Undefined offset: 8 in d:\usr\krasnal\www\strona\lib\lib.inc.php on line 387

nie wiem o co chodzi - przecież w tej samej funkcji powyżej definiuję $zawartosc[$i] questionmark.gif?

Ten post edytował isia 13.06.2006, 12:17:08
Go to the top of the page
+Quote Post
dr_bonzo
post 13.06.2006, 12:25:36
Post #11





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Nie widze nigdzie wyzej (w tym ostatnim kodzie, mowisz o poprzednich postach??) $zawartosc[ $i ] = ....costam...

Daj
print_r( $zawartosc );
przed ta linia z bledem, ale wewnatrz bloku else {}

Zacznij poprawnie formatowac kod (jest art. na php.pl) to bedzie czytelniejszy.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
-Gość-
post 13.06.2006, 13:13:50
Post #12





Goście







Wstawiłam - wyświetla zawartość tablicy ładnie
Array ( [0] => pierszy wiersz
[1] => drugi wiersz
[2] => trzeci wiersz
itd.
a błąd dalej wywala.
Go to the top of the page
+Quote Post
nospor
post 13.06.2006, 13:26:20
Post #13





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




Cytat
itd.
smile.gif a zauwazyles aby te itd. doszlo do indexu nr. 8 ? bo raczej nie.
Twoja petla powinna byc nie taka:
  1. <?php
  2. for ($i = 0; $i <= $limit; $i++) {
  3. ?>

a taka
  1. <?php
  2. for ($i = 0; $i < $limit; $i++) {
  3. ?>

skoro $limit to liczba linii i numerujesz je od 0, to ostani index to $limit-1


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

"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
isia
post 13.06.2006, 13:27:14
Post #14





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 5.05.2003

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


nospor
padam do nóg - działa... no to sprawdzam dalej!!!!!

tylko jeszcze:

Już się zupełnie poplątałam w gąszczu artykułów na temat tablic.

Czy definicja tablicy:
$tablica[0] = ...
$tablica[1] = ...
$tablica[2] = ...
jest ok czy powinno być:
$tablica['0'] = ...
$tablica['1'] = ...
$tablica['2'] = ...

bo też mi wywalało błędy.

Ten post edytował isia 13.06.2006, 13:30:33
Go to the top of the page
+Quote Post
nospor
post 13.06.2006, 13:37:13
Post #15





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




nie mialo prawa ci wywalac bledow. pewnie cos masz zle (czytaj: nie masz takich indexow w tablicy) winksmiley.jpg

indexy liczbowe sa traktowane rownowaznie nie wazne czy sa w ciapkach czy nie:
  1. <?php
  2. $arr = array('1' => 'cos1','2' => 'cos2');
  3. echo $arr[1]; //cos1
  4. echo $arr['1']; //cos1
  5.  
  6.  
  7. $arr = array('1' => 'cos1','2' => 'cos2', 1 => 'cos3');
  8. echo $arr[1]; //cos3
  9. echo $arr['1']; //cos3
  10. //gdyz index 1 nadpisze index '1'
  11. ?>


Cytat
Już się zupełnie poplątałam w gąszczu artykułów na temat tablic.
bo nie czyta sie artykulow a manual
http://pl.php.net/manual/pl/language.types.array.php
Cytat
$zmiany = array( 10 // klucz = 0
, 5 => 6
, 3 => 7
, 'a' => 4
, 11 // klucz = 6 (najwyższy indeks całkowity był 5)
, '8' => 2 // klucz = 8 (całkowity!)
, '02' => 77 // klucz = '02'
, 0 => 12 // wartość 10 będzie nadpisana przez 12
);


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

"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: 14.08.2025 - 05:58