IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @068
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Keď klient slúži

Globálny líder v oblasti tenkých klientov prichádza na Slovensko. www.ts.avnet.com

Hľadáte CRM softvér?

SunSoft.CRM • množstvo funkcií • možnosť individuálnych úprav • výhodná cena crm.sunsoft.sk

Dal som si poradiť

Mám sa na koho spoľahnúť. A vy? www.partnersgroup.sk

Sprostredkovávajte hypotéky

Začnite sprostredkovávať hypotéky s úspešným hypotekárnym centrom! www.SprostredkovanieUverov.sk

Získajte bonus 50 €

Prejdite na ktorýkoľvek program s platbou na faktúru. Len cez e-shop. www.o2.sk

Problém so sessions

Zaslať odpoveď
AutorSpráva
blazej44800
Užívateľ
Užívateľ

Založený: 23.12.2010
Príspevky: 288
Vek: 14

PríspevokZaslal: Ne 25.12.11 20:36Odpovedať s citátomNávrat hore

Ahojte

PHP skript mi vyhadzuje túto chybu:
citácia:
Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0


Skript vyzerá takto:
citácia:
<? define("INCLUDED", true); include "db.php"; header('Content-Type: text/html; charset=windows-1250');
$real_sid = session_id();

if ($_POST["akcia"] == "login") {
if ($_POST["login"] != "" and $_POST["password"] != "") {
$login = $_POST["login"];
$password = md5($_POST["password"]);

$user = mysql_query("SELECT * FROM `users` WHERE login='$login' and password='$password' LIMIT 1", $link) or die ("Chyba!");
$num = mysql_num_rows($user);
if ($num == 1) {
$ip = $_SERVER["REMOTE_ADDR"];
$cas = time();
$sid = session_id();
$online = "1";
$time = time();

mysql_query("UPDATE `users` SET ping=\"".$time."\" WHERE login=\"".$login."\" LIMIT 1", $link);
mysql_query("UPDATE `users` SET last_ip=\"".$ip."\" WHERE login=\"".$login."\" LIMIT 1", $link);
mysql_query("UPDATE `users` SET last_login=\"".$cas."\" WHERE login=\"".$login."\" LIMIT 1", $link);
mysql_query("UPDATE `users` SET online=\"".$online."\" WHERE login=\"".$login."\" LIMIT 1", $link);
mysql_query("UPDATE `users` SET sid=\"".$sid."\" WHERE login=\"".$login."\" LIMIT 1", $link);

//definicia sessionov
$_SESSION["id"] = $user["id"];
$_SESSION["sid"] = $user["sid"];
$_SESSION["login"] = $user["login"];
$_SESSION["prihlaseny"] = "1";

echo "login";
} else {echo "bad_password";}
}
else
{echo "empty_field";}
}
?>


a súbor db.php takto:

citácia:
<?php
if (!defined('INCLUDED')) die ('Fatal error.');
$link = mysql_pconnect ("localhost" , "root", "heslo") or die ("Nepodarilo sa spojiť zo serverom");
$db = mysql_select_db("chat", $link) or die ("Spojenie z databázov nefunguje");
// nastavenie znakovej sady
@mysql_query ("SET NAMES CP1250");

session_start();
$user = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE login=\"".$_SESSION["login"]."\" LIMIT 1", $link));
?>


Neviete kde by mohla byť chyba? Moja verzia php je PHP 5.3.8.

Ďakujem

// pridané po 26 minútach od posledného príspevku

Problém som vyriešil: v php.ini som mal register_global = Off

_________________
ASUS EeePc 1002HA 1GB RAM 120GB HDD Intel Atom N270 1,60GHz
Zobraziť informácie o autoroviOdoslať súkromnú správuSkypeZobraziť autorove WWW stránky
chrono
Skúsený užívateľ
Skúsený užívateľ

Založený: 13.11.2007
Príspevky: 808

PríspevokZaslal: Ne 25.12.11 23:00Odpovedať s citátomNávrat hore

Nič si nevyriešil, pretože register_global bude odstránené.

Inak "problém" je v tom, že ty tam nastavuješ $_SESSION["sid"] a pritom tam máš aj globálnu premennú s rovnakým názvom. Kedysi dávno, by to $_SESSION["sid"] menilo práve tú globálnu premennú (a kvôli nejakej chybe aj pri vypnutom register_global), takže to píše to upozornenie.

Niekde v návode k php (alebo na internete) nájdeš, ako zakázať zobrazovanie toho upozornenia (každopádne na produkčnom serveri by sa pravdepodobne také upozornenia zobrazovať nemali, keďže návštevníkom to nijako nepomôže).
Zobraziť informácie o autoroviOdoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd