Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

mysql_query php4 -> php5

[es] :: PHP :: mysql_query php4 -> php5

[ Pregleda: 2548 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Q_Line
BiH

Član broj: 4879
Poruke: 76

Sajt: www.google.ba


Profil

icon mysql_query php4 -> php519.03.2009. u 20:03 - pre 182 meseci
Pozdrav,

imao sam jednu mysql bazu jos od 2003. godine i ta baza od 2006. vide nije koristena... tada je radila na mysql 4.1.9. i na php 4.3.10.

Ovih danas sam je prebacio na server na kome je mysql 5.0.5 i php 5.2.6.

Onda se pojavio problem, jer po postavkama php fajla iz tog vremena na serveru na kome je php 4-rka (kucni komp) dokumenat moze prikazivati podatke iz baze, a onaj server na kome je php 5-ica, php jednostavno ne procesira podatke kroz php fajl, ne prijavi nikakvu gresku i kad se ukljuci debugg, jednostavno prikaze prazan dokumenat bez $promjenjivih, jedino su td tr table i ostali klasicni html tagovi vidljivi...

Onako, googlajuci okolo mislim da je problem oko mysql_query, tj. nacina "izvlacenja" podataka iz baze. Evo dijela koda orginalnog dokumenta starog 5-6 godina:

Code:
$get_news = mysql_query("SET CHARACTER SET 'utf8'",$db);
$get_news = mysql_query("SELECT *,Article.UserId as uid, $article_catfile.ArtDesc AS CatDesc, $article_catfile.ArtIcon AS CatIcon 
                                    FROM $article_file,$article_catfile 
                                   WHERE $article_file.ArtCat = $article_catfile.ArtCat AND $article_file.ArtID = '$ArtID' LIMIT 0,1",$db);
$get_rows = mysql_fetch_array($get_news);

$date = stripslashes($get_rows[ArtDate]);
$msg = stripslashes($get_rows[ArtMsg]);
$title = stripslashes($get_rows[ArtTitle]);
$lead = stripslashes($get_rows[ArtLead]);

Ikakva pomoc? :)

[Ovu poruku je menjao flylord dana 02.07.2009. u 21:07 GMT+1]
"Q" 9G - Ponosni Titin pionir
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: mysql_query php4 -> php519.03.2009. u 20:53 - pre 182 meseci
U, pa to je baš staro... Odnosno, stil pisanja koda je baš "izašao iz mode".

Taj prvi upit "ovih dana" obično izgleda ovako: SET NAMES UTF8, i njega samo treba da izvršiš, bez potrebe za upisom rezultata u neku promenljivu.

A taj glavni upit mi deluje ok, i on bi, koliko vidim, trebao da vrati samo jedan red.

Ako hoćeš da radiš sa asocijativnim nizom koristi mysql_fetch_assoc, ili ako baš voliš mysql_fetch_array, a rezultate hoćeš da uzimaš asocijativno, kao drugi argument prosledi MYSQL_ASSOC. Za svaki slučaj, imena kolona piši pod jednostrukim navodnicima ($get_rows['ArtDate'], $get_rows['ArtMsg'], itd.).
 
Odgovor na temu

Q_Line
BiH

Član broj: 4879
Poruke: 76

Sajt: www.google.ba


Profil

icon Re: mysql_query php4 -> php519.03.2009. u 22:11 - pre 182 meseci
Mozes to napisati, ako ti nije eproblem, jer pokusavam danima razne opcije i nece :)
"Q" 9G - Ponosni Titin pionir
 
Odgovor na temu

kazil
Robert Bašić
Full time PHP dev :)
Bačka Topola - Novi Sad

Član broj: 120044
Poruke: 686
*.3.nat.stcable.net.

Jabber: robertbasic@elitesecurity.org
ICQ: 446475288
Sajt: robertbasic.com


+2 Profil

icon Re: mysql_query php4 -> php519.03.2009. u 22:15 - pre 182 meseci
Posto si rekao da je to bilo na php4, pretpostavljam da promenljive nisi preuzimao iz GET/POST array-a, vec iz globala (vec ni ne znam kako se zove to :-/).

Elem, moje pitanje se svodi na sledece: odakle uzimas $ArtID?
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: mysql_query php4 -> php519.03.2009. u 22:19 - pre 182 meseci
pored detalja koje ti je nikola vec rekao (navodnici za indexe asocijativnog niza), "set names utf8" ... upit je malo "nezgodan" .. tj, sta je sa

$article_catfile.ArtDesc, $article_catfile.ArtCat ....

jel imas te varijable? u starom php-u on bi iskulirao deo iza tacke i zamenio samo $article_catfile parce ali u 5.2 koliko se ja secam (moguce da gresim) trazice klasu $article_catfile i property ArtCat ...

odradi upit sa "xxx" . $xyz . "yyy" sintaksom - tako je mnogo manja sansa da napravis gresku ...


EDIT: sto kaze robert, proveri register_globals

EDIT: nije ti problem to mysql-a vec do php-a, izbacuje ti praznu stranu posto ne moze da isparsira stranu - da je problem do mysql-a php bi prosledio upit i vratio gresku

 
Odgovor na temu

Q_Line
BiH

Član broj: 4879
Poruke: 76

Sajt: www.google.ba


Profil

icon Re: mysql_query php4 -> php519.03.2009. u 22:49 - pre 182 meseci

Na ovome serveru kod kuce sam imao register_globals = On i radilo je, kada sam podesio u php.ini register_globals = Off nije vise radilo... Znaci do toga je

Mislim da moj server admin nece dopustiti da ukljucim register_globals = On na serveru na kome mi je ovo potrebno. Da li postoji neki drugi nacin "zaobilazenja" opcije register_globals?!
"Q" 9G - Ponosni Titin pionir
 
Odgovor na temu

ihti
Jasmin I

Član broj: 3794
Poruke: 30
92.36.199.*

Sajt: www.inservio.ba


Profil

icon Re: mysql_query php4 -> php519.03.2009. u 23:30 - pre 182 meseci
Dinamicki kreiras varijable na osnovu podataka iz $_GET

GET: skripta.php?v1=jedan&v2=dva&v3=tri

Code:

<?php
    foreach($_GET as $var => $val) {
        ${$var} = $val;
    }
    
    
    echo $v1;
    echo $v2;
    echo $v3;
?>

NO FATE. ONLY THE POWER OF WILL.
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
91.150.127.*

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: mysql_query php4 -> php520.03.2009. u 07:39 - pre 182 meseci
Nemoj molim te ovako pisati:

Citat:
ihti: Dinamicki kreiras varijable na osnovu podataka iz $_GET

GET: skripta.php?v1=jedan&v2=dva&v3=tri

Code:

<?php
foreach($_GET as $var => $val) {
${$var} = $val;
}


echo $v1;
echo $v2;
echo $v3;
?>


Ovo je najgora moguća varijanta. Poenta isključivanja register_globals je da se ne konvertuju svi GET parametri u varijable. Zamisli ovakav query:

GET: skripta.php?article_catfile[ArtDesc]=* FROM users WHERE 1=1 --

Nisam siguran da li je ovo najbolji attack vector, ali hakeri će sigurno znati bolje i opasnije napade da urade.

Za numeričke varijable koristi recimo:
$numvar = isset($_GET['numvar']) && !is_null($_GET['numvar']) && ctype_digit($_GET['numvar']) ? $_GET['numvar'] : 0;
za string:
$stringvar = isset($_GET['stringvar']) ? mysql_real_escape_string($_GET['stringvar']) : '';

"Common sense is not so common." - Voltaire
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: mysql_query php4 -> php520.03.2009. u 12:15 - pre 182 meseci
ako je sysadmin dozvolio mozes da upalis register_globals iz .htaccess fajla, ali ako ikako mozes da to zaobidjes, zaobidji, register_globals je ovoooooliiiiiiiiika rupa .. dakle kao sto ti napisa shinan

Citat:

Za numeričke varijable koristi recimo:
Code:

$numvar = isset($_GET['numvar']) && !is_null($_GET['numvar']) && ctype_digit($_GET['numvar']) ? $_GET['numvar'] : 0;

za string:
Code:

$stringvar = isset($_GET['stringvar']) ? mysql_real_escape_string($_GET['stringvar']) : '';



btw, neko bi mogao ovo da vrati u php forum ili kako se vec isti zove posto ovo stvarno nema apsolutno nikakve veze sa mysql-om
 
Odgovor na temu

ihti
Jasmin I

Član broj: 3794
Poruke: 30
92.36.137.*

Sajt: www.inservio.ba


Profil

icon Re: mysql_query php4 -> php520.03.2009. u 12:56 - pre 182 meseci
Citat:
Shinhan: Nemoj molim te ovako pisati:



Procitaj post od Q_Line, trazi rjesenje da zaobidje register_globals=off, vjerovatno ne zeli da u cijeloj app mjenja $var u $_GET['var].
Ovo sto sam ja napisao je ono sto php interno uradi kada je register_globals=on.
Naravno da je ovo lose rjesenje s aspekta sigurnosti ali to u ovom slucaju nisam uzimao u obzir...

NO FATE. ONLY THE POWER OF WILL.
 
Odgovor na temu

Q_Line
BiH

Član broj: 4879
Poruke: 76

Sajt: www.google.ba


Profil

icon Re: mysql_query php4 -> php521.03.2009. u 22:31 - pre 182 meseci

Pozdrav svima koji su odgovarali i koji su mi pomogli :) Procitao sam sve sto ste napisali i "napisao" rjesenje na zadovoljstvo svih.

Hvala jos jednom ES timu!

"Q"
"Q" 9G - Ponosni Titin pionir
 
Odgovor na temu

[es] :: PHP :: mysql_query php4 -> php5

[ Pregleda: 2548 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.