Autor | Zpráva | ||
---|---|---|---|
sexusbtw Profil |
#1 · Zasláno: 5. 2. 2009, 17:14:42
Zdravím.
Poraďtě někdo vševědoucí, jaký je rozdíl mezi zápisem: $order_id = int($_SESSION[order_id]); a $order_id = $_SESSION[order_id]; Někdy se píše, že funkce vrací ono int(), třeba: preg_match($re,$str); //vrátí int(1), tedy shodu Já sám zatím zatím int nepotřeboval, ale ve větších projektech jsem to viděl.. Díky.. |
||
Nox Profil |
#2 · Zasláno: 5. 2. 2009, 17:30:25
sexusbtw
No očividně se jedná o vlastní funkci, "int()" v manuálu není Ale může se jednat o převedení sessionu order id na int, jako ochrana aby tam někdo nezadal něco podlého To jde zadat i bez funkcí, s tím co php nabídne samo: $order_id = (int)$_SESSION["order_id"]; Navíc tyto kódy nejsou moc dobré, protože index sessionu nemají jako řetězec ale konstantní proměnnou, pouze využívají toho, že phpko když takovou proměnnou (order_id) nezná, použije to jako řetězec...ale někdo by tam možná mohl podstrčit vlastní hodnotu Každopádně dávat uvozovky...pokud to celé není v řetězci, je možné třeba toto: echo "Order id je: $_SESSION[order_id]"; |
||
kletely Profil |
#3 · Zasláno: 5. 2. 2009, 17:33:08
Nox
echo "Order id je: {$_SESSION[order_id]}"; //alebo echo "Order id je: ".$_SESSION[order_id]; |
||
sexusbtw Profil |
#4 · Zasláno: 5. 2. 2009, 17:40:21
no takhle
$order_id = (int)$_SESSION["order_id"]; takže je to forma ochrany? a co to tedy je? interní proměnná? |
||
kletely Profil |
#5 · Zasláno: 5. 2. 2009, 17:43:43
sexusbtw
INT je celočíselný dátový formát. Rozsah čísel je od -2147483648 až 2147483648. |
||
sexusbtw Profil |
#6 · Zasláno: 5. 2. 2009, 17:49:20
„ pouze využívají toho
„[i]že phpko když takovou proměnnou (order_id) nezná, použije to jako řetězec...ale někdo by tam možná mohl podstrčit vlastní hodnotu“ já vím ,že takhle se do session přiřazují hodnoty, ale jak jinak obsah session vylouskat? jasně můžu používat session, ale v kódu je to o 100% přehlednější (a navíc vím, že hodnota původně přišla ze session) podstrčit jinou hodnotu je podle mně vyloučený, když mám vždy zaplý safe_mode.. |
||
sexusbtw Profil |
#7 · Zasláno: 5. 2. 2009, 17:49:55
kletely: aha! jako v MySQL, nj už se mi rozblesklo!
|
||
sexusbtw Profil |
#8 · Zasláno: 5. 2. 2009, 17:53:44
Ale je mi, pánové, divné, že že když to int umažu, tak je proměnna order_id prázdná. To mi hlava nebere. Když to int v podstatě limituje řetezec co se přiřadí do order_id na pouhé číslo, tak by to mělo chodit. Pokud tam int není, tak by to mělo přiřadit i cokoliv jiného než číslo, a ne nechat proměnoou prázdnou...
|
||
Nox Profil |
#9 · Zasláno: 5. 2. 2009, 18:08:27 · Upravil/a: Nox
kletely
Tak to druhé právě určitě ne, pro to, co už jsem psal předtím Tvůj první moc neznám, takovéto zápisy jsem zkoušel, ale nefungovalo to (už nevim jak přesně), ikdyž ti věřím že to funguje...možná je to nastavením, nebo jsem to psal špatně Způsob, který jsem uvedl, je správný, někde je o tom také debata na php.vrana.cz EDIT: už jsem našel: http://php.vrana.cz/psani-insert-into.php#d-221 sexusbtw 1) nechápu o čem to mluvíš...psal jsem o rozdílu $_SESSION[order_id] vs. $_SESSION["order_id"] (přičemž by se měl používat ten druhý) 2) ne v MySQL, v PHP (resp.v MySQL je int taky, ale teď se bavíme o PHP) 3) umažeš int() nebo (int)? A je vůbec něco v tom sessionu? Nech si zároveň přes var_dump vypisovat $order_id i $_SESSION["order_id"] |
||
sexusbtw Profil |
#10 · Zasláno: 6. 2. 2009, 09:12:01
3) umažu (int) .. v session je nějaké číslo vždy.. takže když to umažu, nemělo by se nic stát, jen nemám jistotu že to bude vždy celé číslo..
|
||
Aesir Profil |
#11 · Zasláno: 6. 2. 2009, 09:28:27
|
||
Časová prodleva: 15 let
|
0