Autor | Zpráva | ||
---|---|---|---|
La_ToRaNTe Profil |
#1 · Zasláno: 19. 4. 2005, 20:38:43
K vypsáni dat z databáze guestbooku používám tenhle jednoduchej kod:
Vždycky to fungoval, ale najednou to nejde. Nevíte proč? Má to něco společněho s "register_globals" mi píše program.. Nechápu to. :-( |
||
thingwath Profil |
#2 · Zasláno: 19. 4. 2005, 22:36:47
zkus tu funkci mysql_fetch_array napsat takto:
(ten zápis s : a endwhile je asi ok, ale dělá se mi z něho zle :-)) |
||
krteczek Profil |
#3 · Zasláno: 20. 4. 2005, 03:13:28
Nejsem si jistý na 100% ale podle mne je chyba v tomhle:
$query = "SELECT * FROM ".$gbook." ORDER BY id desc"; ty předáváš proměnnou z jiného skriptu ( z jiné stránky ) a na službě ktrou používáš změnili asi verzi php, nebo zpřísnili pravidla a zakázali používat globální proměnné. To pro tebe znamená že pokud předáváš nějakou proměnnou najdeš ji bud v poli$_POST["promenna"] , $_GET["promenna"] nebo v $_REQUEST["promenna"] takze nejprva ji musíš předat a potom ji muzeš použít. jo a pokud na domácím kompu používaš nějakou verzi apache, php a mysql tak doporučuji stáhnout nejnovější stabilní verzi a a v php.ini nastavit parametry pro výpis chyb na: error_reporting = E_ALL tím bude php sdílnější a ty budeš schopný odstranit spoustu chyb ještě před odesláním skriptů na server nebo si v php.ini nastav hodnotu register_globals = Off , s největší pravděpodobností ji máš na On ( to abys nemusel měnit apache a ostatní ) krteczek |
||
mackopu Profil |
#4 · Zasláno: 20. 4. 2005, 09:46:33
krteczek má svatou pravdu - problém je skutečně v předávané proměnné $gbook. Před časem jsem měl stejnou potíž, a protože jsem nechtěl přepisovat stovky stránek, domluvil jsem se se správcem hostingového serveru, aby mi povolil globální proměnné. Teď je trend je zakazovat z důvodu větší bezpečnosti. Pokud ale neděláš e-banku a podobně, není to nutné.
Jestliže ale tvé stránky nejsou příliš rozsáhlé, vyplatilo by se to přepsat - v tomto případě na $_GET["gbook"] nebo $_POST["gbook"], podle toho jestli proměnnou předáváš formulářem nebo linkem, případně podle toho, jakou action máš nastavenu ve formuláři. |
||
La_ToRaNTe Profil |
#5 · Zasláno: 20. 4. 2005, 16:18:45
Ta proměná $gbook je na začátku toho scriptu napsaná takhle.. .$gbook = "gbook"; .. takze v tom bych to neviděl :(
|
||
llook Profil |
#6 · Zasláno: 20. 4. 2005, 17:27:20
V tom případě bych chybu viděl jinde. Nevidím tam nic dalšího, co by mohlo souviset s register_globals. Jaké ti to vypisuje chyby?
|
||
La_ToRaNTe Profil |
#7 · Zasláno: 20. 4. 2005, 17:53:26
llook
Ted zrovna nic, na fbi ( kde to testuju ) jim nejde databáze. Ale psalo to neco jako "suplied argument" .. A Zend studio mi říká, ze tady mají byt dvě rovnáse..
Ale kdyz je tam dám, tak to pak nefunguje vůbec .. |
||
La_ToRaNTe Profil |
#8 · Zasláno: 20. 4. 2005, 18:17:47
Ale říkám si, ze to bude asi tou databazi co maji na FBI, doma na localhostu mi to normálně funguje..
|
||
thingwath Profil |
#9 · Zasláno: 20. 4. 2005, 18:33:41
To ti Zend říká pěknou blbost. Zkoušel si tam dodat ten parametr co jsem ti radil?
|
||
La_ToRaNTe Profil |
#10 · Zasláno: 20. 4. 2005, 18:53:40
thingwath
jj, zkoušel.. Doma na localhostu to funguje pořád stejně a na tom zkušebnim hostingu nevim, nefunguje ted databaze. Píše to : Chyba #2002 - Can't connect to local MySQL server through socket '/database/mysql/users/mysql.sock' (111) Asi to bude celkove tím hostingem. Doufám, ze sem vás tu neotravoval, a pokud ano, tak se omlouvám. |
||
thingwath Profil |
#11 · Zasláno: 20. 4. 2005, 19:02:31
Pokud je na hostingu ta db na localhostu (skutečně?), tedy jesti to máš správně nastavené, tak je to skutečně chcíplá databáze.
Pak se maximálně podívat, jakou verzi máš doma a co tam mají oni (hlavně PHP). |
||
La_ToRaNTe Profil |
#12 · Zasláno: 20. 4. 2005, 19:07:36
thingwath
Mám to nastavené dobře .. :-/ |
||
llook Profil |
#13 · Zasláno: 21. 4. 2005, 10:26:00
neco jako "suplied argument" ..
To by mohlo být "suplied argument is not a valid resource", pak by byla chyba někde při připojování a vybírání databáze - špatný host, jméno, heslo nebo název databáze. To co ti radilo Zend studio je blbost - jenom upozorňovalo, že pokud je v podmínce přiřazování, pak jde většinou o překlep. Ale v tomhle případě to tak neni. |
||
Časová prodleva: 1 rok
|
|||
pr . Profil * |
#14 · Zasláno: 28. 4. 2006, 23:42:34
google pr main
|
||
rabbit Profil |
#15 · Zasláno: 29. 4. 2006, 00:21:52
Teď je trend je zakazovat z důvodu větší bezpečnosti. Pokud ale neděláš e-banku a podobně, není to nutné.
Sorry mackopu, ale dovolím si s tebou hrubě nesouhlasit! Něco takového jako $query = "SELECT * FROM ".$gbook." ORDER BY id desc"; smrdí vyloženě sql injection. A i když tam může místo $gbook napsat $_GET['gbook'], tak by ho to mohlo aspoň trknout, aby si ten vstup napřed otestoval. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0