Sessions

22 отговора 679 прегледа
#1

Sessions

Zdraveite!

Imam sledniq kod:

<?php
require 'functions.php';
session_start();
session_register($user_id);
session_register($password);
if (authenticateUser($user_id, $password)){
header("Location:[линк]");
exit();
} else {
header("Location:[линк]");
exit() ;
}
?>

no kogato se opitam da printna echo $_SESSION['user_id']; v main.php, nishto ne stava. Dori isset vrushta false.

Nqkoi bi li mi pomognal?

Merci

Отговор
в отговор на moni #2

Re: Sessions

Би трябвало да използваш името на променливите, а не техните стойности:

session_register('user_id');
session_register('password');

Отговор
в отговор на moni #4

Re: Sessions

а в началото на main.php имаш ли

session_start();

Отговор
в отговор на $burov #5

Re: Sessions

session_start()
e predi vsichko
purvo sloji session_start() i posle require

Отговор
в отговор на moni #6

Re: Sessions

AAAAAAAAAAAAAAAAAAA $burov HAHAHAHAHAHAHAHAHA!
$burov.... AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!
HAHAHAHAHAHAHAHHAHAHAHAHAHHAHAHAHAHHHHAHHAH!

ббббббббббббббббррррррррррррррррррррррррхххххххххххххххззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззззз!
$буров ааааааааааааааааааааааааааааааааааааааааааааааааааааааа!

1.php
$a = "zadnik";
session_register("a");
......................................
EOF
......................................
2.php
session_register("a");
echo $a;
......................................
EOF
......................................
kyv vi e zora be???????

Отговор
в отговор на $burov #7

Re: Sessions

da imam start_session() v nachaloto na main.php. Nqma intervali predi taga za php, nqma nishto predi tova. Problema e che dori i greshka ne dava :(

Отговор
в отговор на nupaT #8

Re: Sessions

i taka probvah i vse e sushtoto.

Отговор
в отговор на moni #9

Re: Sessions

vij kakvo ti e register_globals, zashtoto pri Off session_register ne raboti

-----------------------
гърбавия ковчег ще го изправи
Отговор
в отговор на moni #10

Re: Sessions

Probvai da promenish header("Location:[линк]"); na header("Location:[линк]".SID);
Ako sesiata ti oshte ne se e setnala kato cookie(koeto PHP avtomatichno se opitva da napravi), togava SID se predava chrez GET. Tuk obache ti ruchno podavash header i PHP-to ne mozhe da se pogrizhi samo.

Редактирано от toranaga на

Отговор
в отговор на Дpeмeщ #11

Re: Sessions

register_globals = On

session.use_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.use_trans_sid = 1

Отговор
в отговор на toranaga #12

Re: Sessions

Za suzhalenie i taka ne stava. SID taka i ne se poqvqva v url-to...

Отговор
в отговор на moni #13

Re: Sessions

Ami postni malko poveche kod. Kakvo pravish predi i sled fragmenta koito si postnal. Pod windows li testvash ili si pod *nix?

Отговор
в отговор на toranaga #14

Re: Sessions

pod Windows, PHP Version 4.3.0, Apche 2.0.43

koda predi tova e edna forma s user name i password:
<form method="POST" action="login.php">
<p><font color="#804000"><font face="MS Sans Serif">User Id

<input name="user_id" type="text" size="15" maxlength="9">

Password

<input name="password" type="password" size="15" maxlength="30">


</font>

<input name="B1" type="submit" value=" Enter NOW ! " >
</font></p>
</form>

posle sledva login.php:
<?php
session_start();
session_register('user_id');
session_register('password');

require 'functions.php';

if (authenticateUser($user_id, $password)){
header("Location:[линк]");
exit();
} else {
header("Location:[линк]");
exit() ;
}
?>

functions.php:
require 'common.inc';

// Display error messages
function DisplayErrMsg( $message )
{
printf("<blockquote><blockquote><blockquote><h3><font color=\"#cc0000\">
%s</font></h3></blockquote></blockquote></blockquote>\n", $message);
}

function authenticateUser($user, $pswd)
{
global $DB_SERVER, $DB_LOGIN, $DB_PASSWORD, $DB, $DOCROOT ;

// Open a persistent connection with the MySQl server
if (!($link = mysql_pconnect ($DB_SERVER,$DB_LOGIN, $DB_PASSWORD))) {
DisplayErrMsg(sprintf("internal error %s %s %s %d:%s\n",$DB_SERVER, $DB_LOGIN, $DB_PASSWORD,
mysql_errno(), mysql_error()));
return 0 ;
}

// Do the user/password authentication
if (!($result = mysql_db_query("$DB", "select * from student where id='$user'"))) {
DisplayErrMsg(sprintf("internal error %d:%s\n", mysql_errno(), mysql_error()));
return 0 ;
}

if (($row = mysql_fetch_array($result)) && ($pswd == $row["pass"] && $pswd != ""))
return 1;
else
return 0;

}
?>

i nai-nakraq main.php:
<?php
session_start();
echo $_SESSION['user_id'];
echo $_SESSION['pass_pasword'];

if (isset($_SESSION['user_id'])) echo "true"; else echo "false";
?>

koeto edinstveno izkarva false.



Suzhalqvam, che trqbvashe da paste-na vsichko tova, no veche cql den si bluskam glavata i naistina ne znam kakvo poveche da promenq.

Отговор
в отговор на moni #15

Re: Sessions

Заявката ти е празна:

select * from student where id='$user'

къде си задал стойност на $user ? Във формуляра имаш user_id и следователно:

select * from student where id='$_POST[user_id]'

а пък и това $pswd - същата история

Отговор
в отговор на $burov #16

Re: Sessions

ne e taka, ima si parametar $user

-----------------------
гърбавия ковчег ще го изправи
Отговор
в отговор на moni #17

Re: Sessions

dobre, dai da opitame slednoto:

zamesto session_register, sled session_start sloji $_SESSION['user_id']=$user_id i sushtoto za parola, dali v main.php shte se poiavi sushtia false na isset ili ne e.

(vse si mislia che register_globals se duni)

-----------------------
гърбавия ковчег ще го изправи
Отговор
в отговор на moni #18

Re: Sessions

ами не знам какво да ти кажа. пуснах кода ти при мен (Win XP, PHP 4.3, Apache 1.3.26) и си заработи без проблеми (спестих си извикването на authenticateUser). В main.php ми изкара каквото трябва - стойността на user_id и true.
Убеди се със сигурност че сесията стартира (copy-paste малко код от bg.php.net), аз лично ти препоръчвам вместо session_register('user_id') да ползваш $_SESSION['user_id']=$_POST['user_id'], но едва ли от това е проблема.
Погледни и как ти е session.save_path в php.ini и дали юзъра с който е стартирано апачето има права за modify там. По default това е system и права има навсякъде, но все пак...

Отговор
в отговор на moni #19

Re: Sessions

Така проблема идва от имената на променливите

пробвай така

<?php
session_start();
session_register('s_user_id');
session_register('s_password');

$s_user_id = $user_id;
$s_password = $password;

и от тук нататък си ползваш $s_user_id и $s_password


с две думи
session_register('user_id');
1.ако няма такава сессийна променлива я създава -> затрива сойноста на променливата която идва от формата
2.ако има такава променлива присвоява няйната стойност -> отново се затрива стойноста предадена през формата.


дано съм бил ясен ;)

...
Отговор
в отговор на toranaga #20

Re: Sessions

Kato mahnah headers i gi smenih s Javascript za redirect se opravi i sega si raboti dobre.
A kak da go nakaram da slaga SID v url-to?

Отговор