track
20.05.2004, 12:09:31
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¶ 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
netzah
20.05.2004, 12:24:30
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..
kszychu
20.05.2004, 12:27:48
No właśnie: używaj tablicy $_SESSION i na początku (najlepiej skryptu) daj session_start().
track
20.05.2004, 12:37:37
Dodalem na poczatku (przed wywolaniem funkcji) linijke:
global $page_user, $page_pass, $admin, $status, $loged;
i caly czas nie dziala. Dlaczego?
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¶ 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
track
20.05.2004, 13:21:21
No ok.... a gdzie jakas wskazowka?
Chewolf
20.05.2004, 13:26:52
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' ";
track
20.05.2004, 13:57:09
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¶ 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
Kinool
20.05.2004, 14:09:40
a session_start()

?
track
20.05.2004, 14:17:54
session_start() jest w pliku idex.php do ktorego sa wrzucane wszystkie skrypty itd.
netzah
20.05.2004, 14:25:43
Zauwaz, ze zmienne $page_user, $page_pass wystepuja zarowno jako paramert funkcji, jak i globale - a to niedobrze, wiec zmien im nazwy.
track
20.05.2004, 21:45:19
Wielkie dzieki. Pomoglo.
Pozdrawiam...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.