Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przekazywanie zmiennych pomiedzy funkcjami
Kasia
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.07.2003

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


Witam drodzy koledzy i kolezanki
Dostałam zadanie napisania bazy danych w php. Kupiłam wiec ksiązki i
zabrałam
sie do rzeczy. Baza oczywiscie ma byc dostepna w necie a uklad przyciskow
nawigacyjnych
ma zmieniac sie w zaleznosci od zalogowaniej osoby. Wymyslilam wiec sobie ze
w tabeli uzytkownicy dodam pole uprawnienia i to one bedzie zarzadzac
przyciskami
Stworzylam taki oto plik (w skrócie oczywiscie)

[php:1:22e33a1404]<?php

function tabela($uprawnienia)
tu rysuje sobie tabelke

tu tworze przyciski
if $uprawnienia =0 to
printf("n <a href="test.php3?form_logo=%s">Zaloguj się</a>n",
$uprawnienia);

if $uprawnienia =2 to
printf("n <a href="test.php3?form_2=%s">Opcja2</a>n", $uprawnienia);

itd;

function Zaloguj($user_name, $passsword)

tu zalogowanie do bazy
i sciagniecie z bazy danych na temat uprawnien
$uprawnienia = $row["uprawnienia"];

function przyciski($user_name,$uprawnienia)
tabela($uprawnienia)...

function form_2($uprawnienia) {
tworze nowy formularz i jeszcze raz rysuje tabele
print $uprawnienia;
tabela($uprawnienia);


i program główny
if(isset($form_logo)):
form_logo($form_logo); /funkcja wykonujaca formularz logowania
elseif(isset($form_2)):
form_2($uprawnienia);
elseif(isset($Zaloguj)):
Zaloguj($user_name,$password);
else:

tabela($uprawnienia);
endif;
?>[/php:1:22e33a1404]

I wszystko ładnie działa. Po zalogowaniu w zaleznosci od uprawnien
uzytkownicy maja
widza rozne przyciski ale jak juz nacisna na jakis wykona sie funkcja form_2
ale
zmienna $uprawnienia przybiera wartosc 0 i przyciski sa jak na poczatku
Jezeli znajdzie choc jedna osoba by pomoc badz co badz poczatkujacej
programistce (a wierze ze tak)
bede baaaaaardzo wdzieczna

Kasia


---------------
Używaj bbcode, tak jest ładniej... (DeyV)
Go to the top of the page
+Quote Post
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




zacznij od przeczytania topicu przyklajonego na forum php, na temat przekazywania zmiennych.
Go to the top of the page
+Quote Post
spenalzo
post
Post #3





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Poza tym do porównania stosuje się operator == lub ===. Ten ostatni sprawdza czy dwie wartości sa tego samego typu.
Tutaj użyłaś operatora przypisania = który zwróci prawdę.
Go to the top of the page
+Quote Post
squid
post
Post #4





Grupa: Zarejestrowani
Postów: 358
Pomógł: 0
Dołączył: 3.07.2003
Skąd: Szczecin->niebuszewo->*(next to window)

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


No wlasnie droga Kasiu nie wiem czy to tak specjalni (pseudokod) czy nie ale...
Cytat
[php:1:42c8f9eb96]<?php


if $uprawnienia =0 to
printf("n <a href="test.php3?form_logo=%s">Zaloguj się</a>n",
$uprawnienia);

if $uprawnienia =2 to
printf("n <a href="test.php3?form_2=%s">Opcja2</a>n", $uprawnienia);
?>[/php:1:42c8f9eb96]

... jesli to jest kod php(czy jakisc inny jezyk programowania) do porownania dwoch wartosci sluzy operator == a w php dodatkowo === ; moze w tym jest blad (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Kasia
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.07.2003

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


Operatora przypisania nie zrobiłam (tu tylko tak dla szybkiego pokazania) tylko zastosowałam odpowiednio przypisanie. Problem ze za pierwszym razem gdy sie loguje dobrze przyciski sa dobrze wyswietlane co oznacza ze zmienna uprawnienia jest dobrze porównywana. Gdy jednak probuje przekazac zmienna z funkcji tabela aby wywolac funkcje form_2 ktora wraca do funkcji tabeli robi sie problem. Probowalam zadeklarowac ta funkcje jako global i nic.

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





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


Dobrze, ladnie, tylko mam takie pytanie: skad sie w ogole bierze zmienna $uprawnienia ? Nie zapomisz moze jej ustawic ? Od razu mowie ze jej przekazywanie w urlu owszem i pomoze, ale bedzie to niebezpieczne. Polecam poczytanie o sesjach i zmiennych sesyjnych.
Go to the top of the page
+Quote Post
Kasia
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.07.2003

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


Zmienną $uprawnienia ustawiam w funkcji zaloguj i przy pierwszym przekazaniu dziala. O sesjach przeczytam z pewnościa?

Kasia
Go to the top of the page
+Quote Post
uboottd
post
Post #8





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


Czy funkcja zaloguj jest wywolywana za kazdym wejsciem do tego skryptu ?
Go to the top of the page
+Quote Post
Kasia
post
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.07.2003

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


Funkcja Zaloguj jest wywolywana tylko wtedy kiedy nacisniety jest przycisk Zaloguj czyli $uprawnienia ==0 czyli po otwarciu skryptu

Kasia
Go to the top of the page
+Quote Post
uboottd
post
Post #10





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


To przy tak ogolnym cytacie skryptu ciezko dalej mi gdybac. Sprobuj wyizolowac bledny kod sledzac caly czas jak ci sie zmienia link do nastepnej strony (widze ze nie masz przeladowan, wiec bedzie to proste), zwroc uwage czy zawsze dostajesz ta wartosc pod oczekiwana przez Ciebie nazwa, szczegolnie:

[php:1:3f9c6afd34]
elseif(isset($form_2)):
form_2($uprawnienia);
[/php:1:3f9c6afd34]

o ile cytat jest dokladny to przekazujesz sobie uprawnienia w zmiennej form_2 a funcji przekazujesz wartosc z uprawnienia, ktore w tym momencie sa puste (skoro funkja zaloguj tez nie byla wywolana w tym miejscu), wiec kod funkcji uprawnien juz nie dostaje.
Go to the top of the page
+Quote Post
Kasia
post
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.07.2003

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


W tym miejscu chcialam wywolac funkcje form_2 z wartościa $prawnienia
elseif(isset($form_2)):

form_2($uprawnienia);
kiedy zostal nacisniety przycisk form_2(nazwa nie istotna) w funkcji tabela
a href...
Jezeli wartosc $uprawnienia jest tu pusta co zrobic by tak nie bylo.
Kasia
Go to the top of the page
+Quote Post
uboottd
post
Post #12





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


Nie zupelnie mi o to chodzilo.

Jest tak:

rysujesz tabelke z kneflami. jeden z nich jest linkiem do <a href="test.php3?form_2=%s">Opcja2</a> z wartoscia uprawnien dajmy na to 2.

Przychodzi pan user i klika na tego linka.

Glowny program lapie sie na isset($form_2) i wywoluje funkcje form_2 z _pustym_ argumentem (bo jak napisalem nic nie wskazuje na istnienie zmiennej $uprawnienia,

Funkcja form_2 tworzy nowy formularz i rysuje tabelke z kneflami przekazujac jako parametr wartosc pusta - wiec tableka rysuje sie tak jak dla braku uprawnien.

PS. Moje GG 5211575 - bedzie szybciej, a potem sie podsumuje dla potomnych na forum.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.12.2025 - 06:17