Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> definiowanie funkcji
track
post
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Łódź

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


Witam serdecznie. Mam taka funkcje:

[php:1:040d9dfeb2]<?php
function login ($page_user, $page_pass)
{
if ($page_user != "" AND $page_pass != "") {
$p_user = $_POST['page_user'];
$ask = "SELECT * FROM sms_users WHERE user = '$p_user' ";
$do = mysql_query($ask) or die("<P>Error: <b> " . mysql_error() . "n");
$num = mysql_numrows($do);
if ($num == "1") {
$pole = mysql_fetch_array($do);
if ($pole[pass] == $page_pass) {
session_register('page_user');
$page_user = $pole[user];
$loged = "in";
session_register('loged');
if ($pole[status] == "A") {
$admin = "Y";
session_register('admin');
}
$message .= "Zostałe&para; poprawnie zalogowany.";
} else {
$message .= "Wprowadzone hasło jest niepoprawne.";
}
} else {
$message .= "Niema takiego użytkownika.";
}
}
return;
}

?>[/php:1:040d9dfeb2]

Zastanawiam sie dlaczego po wywolaniu jej w sposob:

[php:1:040d9dfeb2]<?php
login($page_user, $page_pass)
?>[/php:1:040d9dfeb2]

Funkcja nie chce dzialac. Nie rejestruje zmiennych w sesji. Dlaczego?
Z gory dzieki za pomoc.

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





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 19.03.2004

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


session_register rejestruje zmienne globalne, wiec:
moze dodac na poczatku

[php:1:e516b2bd4e]<?php
global $page_user, $loged, $admin;
?>[/php:1:e516b2bd4e]

albo odwoluj sie do zmiennych przez $GLOBALS['loged'], itp..
Go to the top of the page
+Quote Post
kszychu
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


No właśnie: używaj tablicy $_SESSION i na początku (najlepiej skryptu) daj session_start().
Go to the top of the page
+Quote Post
track
post
Post #4





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Łódź

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


Dodalem na poczatku (przed wywolaniem funkcji) linijke:

global $page_user, $page_pass, $admin, $status, $loged;

i caly czas nie dziala. Dlaczego?
Go to the top of the page
+Quote Post
Ace
post
Post #5





Grupa: Zarejestrowani
Postów: 216
Pomógł: 0
Dołączył: 9.08.2003
Skąd: Warszawa

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


Cytat
Witam serdecznie. Mam taka funkcje:

[php:1:7b3f80ec05]<?php
global $page_user, $page_pass, $admin, $status, $loged;  // zle !!
function login ($page_user, $page_pass)
{
global $page_user, $page_pass, $admin, $status, $loged;  // ok
   if ($page_user != "" AND $page_pass != "") {
       $p_user = $_POST['page_user'];
       $ask = "SELECT * FROM sms_users WHERE user = '$p_user' ";
       $do = mysql_query($ask) or die("<P>Error: <b> " . mysql_error() . "n");
       $num = mysql_numrows($do);
       if ($num == "1") {
           $pole = mysql_fetch_array($do);
           if ($pole[pass] == $page_pass) {
               session_register('page_user');
               $page_user = $pole[user];
               $loged = "in";
               session_register('loged');
               if ($pole[status] == "A") {
                   $admin = "Y";
                   session_register('admin');
               }  
               $message .= "Zostałe&para; poprawnie zalogowany.";
           } else {
               $message .= "Wprowadzone hasło jest niepoprawne.";
           }  
       } else {
           $message .= "Niema takiego użytkownika.";
       }  
   }  
   return;
}

?>[/php:1:7b3f80ec05]

Zastanawiam sie dlaczego po wywolaniu jej w sposob:

[php:1:7b3f80ec05]<?php
login($page_user, $page_pass)
?>[/php:1:7b3f80ec05]

Funkcja nie chce dzialac. Nie rejestruje zmiennych w sesji. Dlaczego?  
Z gory dzieki za pomoc.

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





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Łódź

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


No ok.... a gdzie jakas wskazowka?
Go to the top of the page
+Quote Post
Chewolf
post
Post #7





Grupa: Zarejestrowani
Postów: 335
Pomógł: 0
Dołączył: 15.11.2003

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


Cytat
No ok.... a gdzie jakas wskazowka?

Gościu popatrz w Kod php !
Cytat
<?php  
global $page_user, $page_pass, $admin, $status, $loged;  // zle !!
function login ($page_user, $page_pass)  
{  
global $page_user, $page_pass, $admin, $status, $loged;  // ok
   if ($page_user != "" AND $page_pass != "") {  
       $p_user = $_POST['page_user'];  
       $ask = "SELECT * FROM sms_users WHERE user = '$p_user' ";  
Go to the top of the page
+Quote Post
track
post
Post #8





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Łódź

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


Przepraszam. Niedopatrzenie.

Zrobilem tak i niestety problem pozostal. Ciagle nie dziala.

Przedstawie problem moze jeszcze raz:

funkcja:
[php:1:6cea765a27]<?php
function login ($page_user, $page_pass)
{
global $page_user, $page_pass, $admin, $status, $loged;
if ($page_user != "" AND $page_pass != "") {
$p_user = $_POST['page_user'];
$ask = "SELECT * FROM sms_users WHERE user = '$p_user' ";
$do = mysql_query($ask) or die("<P>Error: <b> " . mysql_error() . "n");
$num = mysql_numrows($do);
if ($num == "1") {
$pole = mysql_fetch_array($do);
if ($pole[pass] == $page_pass) {
$page_user = $pole[user];
session_register('page_user');
$loged = "in";
session_register('loged');
if ($pole[status] == "A") {
$admin = "Y";
session_register('admin');
}
$message .= "Zostałe&para; poprawnie zalogowany.";
} else {
$message .= "Wprowadzone hasło jest niepoprawne.";
}
} else {
$message .= "Niema takiego użytkownika.";
}
}
return;
}
?>[/php:1:6cea765a27]

I oto plik w ktorym funkcja jest uzywana:

[php:1:6cea765a27]<?php
if($_POST[page_user] != "" && $_POST[page_pass] != "")
{
echo "Login i hasło zostały podane.<p>";
}
login($_POST[page_user], $_POST[page_pass]);

if ($_SESSION[admin] == "Y") {
$ask = "UPDATE sms_prasa_komentarze SET active = 'Y' WHERE id = '$_SESSION[com]'";
$do = mysql_query($ask) or die("<P>Error: <b> " . mysql_error() . "n");

echo "Komentarz został aktywowany.";
echo "<p>";
echo "<img src=pliki/arrow_left.gif bordr=0> <a href=index.php?id=prasa>powrót</a>";
} else {
echo "<center>";
echo "Numer komentarza: $_SESSION[com] <br>";
echo "Aktywacji dokonać może tylko administrator. Proszę się zalogować.";
echo "<form action=index.php?id=prasa&action=active_com method=post>";
echo "<table border=0 cellpadding=0 cellspacing=0 style='font-size: 11' align=center>";
echo "<tr><td align=center>Login:</td></tr>";
echo "<tr><td align=center><input type=text name=page_user size=12></td></tr>";
echo "<tr><td align=center>Hasło:</td></tr>";
echo "<tr><td align=center><input type=password name=page_pass size=12></td></tr>";
echo "<tr><td align=center><input type=submit value='Loguj' class=input_button></td></tr>";
echo "</table>";
echo "</form>";
echo "</center>";
}

?>[/php:1:6cea765a27]

i nie dziala. Wydaje mi sie, ze wszystko jest dobrze, ale moglem cos przeoczyc.

Pozdrawiam
Go to the top of the page
+Quote Post
Kinool
post
Post #9





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


a session_start() (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
track
post
Post #10





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Łódź

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


session_start() jest w pliku idex.php do ktorego sa wrzucane wszystkie skrypty itd.
Go to the top of the page
+Quote Post
netzah
post
Post #11





Grupa: Zarejestrowani
Postów: 109
Pomógł: 1
Dołączył: 19.03.2004

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


Zauwaz, ze zmienne $page_user, $page_pass wystepuja zarowno jako paramert funkcji, jak i globale - a to niedobrze, wiec zmien im nazwy.
Go to the top of the page
+Quote Post
track
post
Post #12





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 17.07.2003
Skąd: Łódź

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


Wielkie dzieki. Pomoglo.

Pozdrawiam...
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: 22.08.2025 - 15:26