» »

php problem!!!

php problem!!!

JurijTurnsek ::

ok zadeva je taka:

jst hočem, da je link nekako takole: triki.php?trik=ollie (mislim da je tak prav)

zdj pa hočem vedet, kako dobit ollie v skripto: <?php include "triki(tu bi zdej pisalo ollie).txt"; ?>

upam da me razumete :)
http://www.slatnaskejta.com
  • zaklenil: darh ()

darh ::

<?php include "triki/".$HTTP_GET_VARS["trik"].".txt"; ?<>.. this should do the trick...
Excuses are useless! Results are priceless!

JurijTurnsek ::

hvala deluje!:)
http://www.slatnaskejta.com

cahahopie ::

Mi lahko kdo kaj več pove od teh preddefiniranih spremeneljivkah PHPja, ker v PHP Manualu o tem njic ne piše oz. piše samo kaj počne določena spremenjlivka ni pa nobenih primerov. Kolikor vem bi lahko s tem naprimer naredil, da bi se mi odprl profil določene osebe, ker bi zapisal profil.php?id=steviloIDja.
Sicer se da to narediti tudi drugače (brez znanja o teh preddefiniranih spremenljivkah.. no skoraj) ... namreč jaz sem to naredil s pomočjo explode funkcije tako, da sem prvo spravo trenuten link iz Address bara v kodo in nato odstranil "/" ( nato še "?" in na koncu še "=").
Dobil sem večje število arrayev in nato dal array_reverse in dobil array[0], ki je bilo stevilo IDja in tako selekto userja iz baze s tem IDjem... stvar deluje brez problema. Namreč malo zaštekal mi je pri tem, ko sem hotel pošiljat komentarje na neko novico...
O.k. če že pač to stvar ne bom mogu skapirat mi lahko kdo pove kako je ime tisti funkciji, ki ti spravi v kodo link od prejšne strani... ne od trenutne.

darh ::

kako ti znas zakomplicirat... ampak res človek pomisli da se zajebavaš...

$HTTP_GET_VARS - tu imas assoc array vrednosti, ki jih pošlje zahteva ( REQUEST METHOD ) GET,
$HTTP_POST_VARS - tu imas assoc array vrednosti, ki jih pošlje zahteva POST
$HTTP_COOKIE_VARS - assoc array cookijev...

če si pa tolk smotan, da si tud z manualom ne morš pomagat... pol pa počak, pripravja se en manual v slovenščini... ko bo published, boš vedu...
Excuses are useless! Results are priceless!

cahahopie ::

...hvala za tvoj zelo zelo obsežen odgovor, saj sedaj vem ravno toliko kot prej. Veš... to piše tudi v Manualu. Pa tud ne zajebavam se, če pa si tako umišjen, da misliš, da je to kot po naravi že samovmevno potem pa je čas da postaneš nobelov nagrajenec.

rc-car ::

cahahopie: pa ti si 1st class clovek, ki ne steka nic, da ne recem kej nelepega!

Ce hoces dobit iz index.php?ime=kmet&neki=polje pol to nardis tko:
$HTTP_GET_VARS["ime"] <- tuki not mas zdej napisan kmet.
$HTTP_GET_VARS["neki"] <- tuki je pa napisan not polje

ne vem kaj je tuki nerazumljivega..


Predefined variables tobis tuki. Ne, tuki nic ne pise..
In pa, ker 100% ne bos sam najdu:
$HTTP_REFERER


in pa da ne znas narest linka z idjem??
index.php?id=< ? php echo $id[id] ? >
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

Zgodovina sprememb…

  • spremenil: rc-car ()

cahahopie ::

Ej... ne vem kaj naj rečem. Morebiti ste se vsi rodili s tem znanjem in se vam zdi to tako samovmevno kot zavezovanje vezalk. Toda, da sem pa zato že kar najbolj neumno bitje na zemlji ker ne vem kaj naj bi preddefinirane spremenjlivke pomenile pa je tud višek človeške logike. Vseeno hvala za objasnilo (ma kakršno bilo)...loging off

cahahopie ::

No... že dolgo sem nisem oglasil. Do sedaj je vse lepo laufalo.
Zdaj se mi je pojavla na izgled zlo simpl a v resnici kar neprijetna težavca.
Redno berem php Manual a tokrat nisem našel nič takšenga kar bi rešilo mojo težavo. Glejte ... kaj narediti če želiš v neko spremenjlivko spravt več kot 100 vrstic html kode? Gletje mam nek form ki ima vsega boga... od input okenc do nekaj javaskripta z smeškoti..
Kako to sedaj not spravt... khhhm brez takšnega žličkarskega dela kot je brisanje dvojnih narakovajev. Videl sem enpar funkcij kot je npr. tale htmlentities() ali pa htmlspecialchars(). Toda nič nisem še spravu v delovanje. A bi sploh delovalo če bi npr. dvojne zamenjal z enojnimi z ereg_replace?
Hvala!

darh ::

2x sem prebral tvoj post pa nmism zalsedu kaj bi sploh rad naredu... dj še enkrat napiš problem in kake razultate pričakuješ, oki ?
Excuses are useless! Results are priceless!

rc-car ::

Kaj sploh hoces narest??
Kaj ti imas spremenjljivko v katero shranis vso vsebino za izpis in potem naredis echo $izpis; al kaj?

Vse bolj se mi dozdeva, da je to spet en tak tvoj tipicen problem..
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

cahahopie ::

rc-car:D...ne zdaj sem se popravu...

Glejte to bi naj blo v headerju mojga pejđa.
Želim nardit namreč to, da če nek user po pomoti zabluzi na adminski del pejđa, npr. na stran kjer lahko admin oddaja novice. Želim namreč tole:
if(isset($admin)
{
$novicaStatus = " form z ogromno html kode in z nekaj javaskripta z dvojnimi " " in enojnimi ' ' narekovaji, vsega skupaj je več kot 100 vrstic.";
}
else
{
$novaStatus = "Nemorete do administratoskega dela".
"strani!\\nProsim, da pojdete nazaj..itd..!";
}

Tisto html kodo bi torej rad spravu v spremenjlivko, da bi normaln delal. (lahko pa se tudi grem matrat s brisanjem dvojinih in enojnih narekovajev itd..)
In nato v novica_post.php napišem samo spremenljivko $novicaStatus.

Torej pozna kdo kakšno pametno funkcijo?

Loki ::

naredi tako, da user ne bo moral priti tja.
torej recimo da je path takle: www.slo-tech.com/script/news, das admin path takle: www.slo-tech.com/script/admin, onemogocis prikaz ustreznih linkov neavtoriziranim userjem in das cisto na zacetek admin strani ene par vrsteic kode, ki bo preverila, ce ima user pooblastila. (if stavek + sql).

cahahopie ::

Ja sj na takšen način tole tud laufa.
Tole je napisan v glavi strani, ki jo includam na vsak pejđ.
In če bi potem napisal.. npr.
if(isset($uid)
{
..
}
else
{
include("prepoved_vstopa.php")
}
bi imel torej torej dva pejđa, ker se header includa npr. na index.php ... header pa includa prepoved_vstopa.php..

Sicer pa moja stvarca skoraj deluje... samo problemi s JavaScriptom so še ostal.

darh ::

lej.. ena resitevj e, da maš tkole in uporabljaš include


if ( isset($admin) )
{
include "pac_en_file.html";
}
else
{
include "pac_en_drug_fajl.html";
}


še en trik, k je men bolj všeč je, da nardiš takole:


if ( isset($admin) )
{
admin_funkcija();
}
else
{
not_permitted_funkcija();
}

// zdj pa še kako funkcije zgledajo
function admin_funkcija()
{
// zdjle zakljušč PHP in preklopš na normaln HTML
?>
tukej pride navadn html... ki se outputa brez echota in usega..
deluje pa isto.. to foro lahko uporabljaš mirno namesto
vsakega echota ali printa... men je tako pač ljubše,
sploh pa če gre za več kot 3 vrtice outputane html kode
&lt?php
// pol pa preklopmo pač nazaj v PHP mode
}

function not_permitted_funkcija()
{
// zdjle zakljušč PHP in preklopš na normaln HTML
?>
pa še HTML za "ni dostopa"
&lt?php
}


simple as that...


upam da bo šlo.. sj samo copy/paste nardiš pa je...


aja... še tip of the da, k marsikdo ne ve te fore:

če mamo 90% HTML kode in en simple variable print notr (da izpišemo neko spremenjivko), lahko to naredimo takole:
<?php echo $en_variable_pac; ?>
oziroma naredimo takole;
<?=$en_variable_pac?>


over & out >:D

lep pozdrav
xbite
Excuses are useless! Results are priceless!

Zgodovina sprememb…

  • spremenil: darh ()

cahahopie ::

Hvala xbite, uporabil sem funkcijo. Od vseh te kode mi to res ni padlo na glavo.
Sicer sedaj deluje, toda a se da narditi npr. da je spremenjluvka $novicaStatus = funkcija(); ... brez, da bi se ta funkcija izpisala ampak samo shranila v to spremenjivko za prihodnjo uporabo?
Ko tole napišem v glavo in če se nato prijavim kot admin .. se v glavi izpiše spremenjlvka kateri sem priredil funkcijo, morala pa bi se izpisati v novica_post.php kjer je določena ta spremenjlivka. Se da to kako nardit mogoče? Sicer se pa zato zrihtal da vseeno dela. (v novica_post.php sem še enkrat vstavu:
if(isset($admin))
{
funkcija();
}
Hvala za pomoč.

darh ::

aja.. čit tko btw en HINT:

sledi tem korakom :

1. logiraj se kot en uporabnik ki NI admin
2. pojdi na eno stran k zahteva od uporabnika da JE admin
(po vsej logiki bi mogu dobit error, da nimas pravic or whatoever..)
3. zdj pa tam gor, za URL, dodaj naprimer tole:
http://www.cahahopie.com/page_ki_zahtev...

mogoče se ne zgodi nič in dobiš isti error message kt prej, samo mogoče, če si res tak smodlak kt mislm da si (>:D), pa boš mel vse administratorske privilegije ;)


over&out

lp,x
Excuses are useless! Results are priceless!

cahahopie ::

Khm... dobim... samo, da nobeden nebo vedel imena spremenjlivke... ker ni admin. Bom pa zato dal kar 16 mestno ime iz črk in številk.
Sicer pa je kakšna bolj varna zadeva glede tega?

Loki ::

hmm...nekej se spomnem, da si enkrat pravil, da bos uporabi sessione.
ne vem sicer kaj tocno je to (a mi lahko kdo razlozi), ampak se mi zdi, da je en nekej govoru, da bi vsak user imel v bazi svojo lastno "serijsko" stevilko (edinstvena za vsakega posebej, 16-32 mestna), prijavil (avto. p.) bi se pa tako, da bi mu dal cookie in nato primerjal tisto cifro v cookiju z tisto v bazi, prijavi se pa s tistim nickom, ki ima tisto serijsko kot je v nicku.

glede varnosti:
se preden bi zacel executat kakrsnokoli kodo na strani, bi pogledal tisto stevilko iz cookieja, pogledal, ker user ima to stevilko in se pogledal, kateri status ima user ter mu na podlagi le-tega dovolil vstop.

preveri se php 4.10, ki je sedaj izsel, v njem so ene varnostne spremembe, mogoce je to ravno tisto, kar ti hoces.

Zgodovina sprememb…

  • spremenil: Loki ()

cahahopie ::

Saj je vseeno...
Hmm.. Roberto mislim, da ni to tisto kar jaz trenutno mislim.

darh ::

cahahopie: jest uporabljam objekte za uporabnike in pravice... zgleda pa naprimer takole:


$auth->userID; // uporabnikov ID
$auth->username; // uporabniško ime
$auth->permissions->admin // če je admin, pol je to true, drgač pa ne...
...
ter ostale variacije zgornjih primerov...
Excuses are useless! Results are priceless!

cahahopie ::

Ahm... torej objekti/razredi ... v tole pa se bom moral malce poglobit.:D

cahahopie ::

Matr glede teh razredov mi je pa vse oblačn. Mi jih lahko kdo lepo po slovensko razloži??

darh ::

sj ti ne morm nc drgac kt pa ze v manualu pise povedat..

mas objekt.. naredis ga takole:

class ime_objekta
{
// pol mas pa notr funkcije
// enak kt so navadne funkcije
// sam da se nanje sklicujes v objektu takole:
$this->ime_funkcije

ipd :)
}
Excuses are useless! Results are priceless!

cahahopie ::

o.k.
Ta funkcija ima pač neko določeno dejavnost npr. vsebuje ogromno html kode....
In potem morš ta class includat v glavo npr.? In ga nato kličeš v kodi s $this->funkcija ??
Explain.... I'm not from this planet.:D

cahahopie ::

No dozdaj sem si nekaj prebral... pa še vedno me kar dosti zanima...
torej imamo class, v njem so definirane spremenljivke (lahko so public, private, protect). Nato imamo funkcijo z s parametri. Nato pa kaj... ?? Potem.. če napišeš class, ga nato includaš v kodo? V mojem primeru v glava.php?
Jao... men to ne gre.. v bučo..

rasta ::

če napišeš class, ga nato includaš v kodo? V mojem primeru v glava.php?


Odvisno, kaj bi z njim rad počel. Če je samo lokalen, za uporabo v samo eni PHP datoteki, potem ga ni treba vključiti v 'glava.php', če pa ta razred prenašaš preko npr. sessions, potem ga pa moraš vključiti v 'glava.php'.

Zanima me, kako je s public, private, protected, published v PHP-ju. Jaz nisem o tem nič zasledil, razredi pa se mi zdijo malo "čudni", so nekako "ne-delphijski" :8) ...

cahahopie ::

Aha...
Sam mene sedaj zanima uporaba v tej glavi ta class.
Maš torej eno funkcijo, ki npr določa kdo ima dostop do tega fajla in kdo ne. Kako jo potem kličeš v glavi.php ?
Nekako tako kot je poprej xbite napisal?
$auth->funkcija?
Huh.. plavam v težjih vodah programiranja.:D

cahahopie ::

Ehh... ma klinc gleda pa še te razrede... saj se da vredu portal nardit tud brez njih...
Mene bolj zanima samo tale stvarca... kako nardiš, da se vid kolkrat je bil nek thread ogledan (ne kolk postov je blo poslanih ampak kolk ogledov je blo).
Ve kdo? Kakšna funkcija? Se to mora beležit v bazo?

rc-car ::

Hmm, sem zdej spet bral mal tvoje poste cahahopie..
Se ti res delas norca iz nas?

kako nardiš, da se vid kolkrat je bil nek thread ogledan (ne kolk postov je blo poslanih ampak kolk ogledov je blo).
Mislim, to je prava znanost.. Vsakic, ko prikazes thread, povecas se stevilo ogledov. Za stevilo ogledov imas jasno posebno polje v tabeli..
Nothings gonna stop me now, I'm breaking the rules, I'm gonna do it if its not allowed

Zgodovina sprememb…

  • spremenil: rc-car ()

rasta ::

cahahopie: Mam občutek, da si se lotil eno zelo zahtevno reč v phpju, za katerega imaš malo ali nič znanja ... provaj najprej kaj bolj simpel ...
Sam mene sedaj zanima uporaba v tej glavi ta class.
Maš npr. spremenljivko (kr_ena), ki je razred (class kr_en), ki ga prenašaš preko session. V glavi moraš trej imeti deklaracijo tega razreda in npr.:
session_start();
if (!$PHPSESSID) {
session_register('kr_ena');
$kr_ena = new kr_en;
} else if (!$kr_ena) {
session_register('kr_ena');
$kr_ena = new kr_en;
}

Torej, če hočeš klicati funkcije iz razreda, ga moraš najprej ustvariti s konstruktorjem new, nato pa lahko kličeš $auth->funkcija ...
Pa razredi so lahko zelo uporabna zadeva, ki ti prihranijo marskikatero vrstico kode ...

cahahopie ::

Ne delam se norca in nisem brez znanja imam samo luknje v znanju. Odsedaj naprej ne vprašam nič več.
Hvala... lahko kateri od moderatorjev tole temo zapre?

darh ::

tvoja želja moj ukaz...

btw cahahopie... na phpbuilder.com imaž oooogromno zelo lepo razloženih primerov o vseh teh simple zatevah k si ti glavo razbijaš zdravn aveš...
Excuses are useless! Results are priceless!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Knjiga za Delphi

Oddelek: Programiranje
91228 (1016) Invictus
»

filmi

Oddelek: Sedem umetnosti
171677 (906) Invictus
»

Nadomestilo FRAME-ov?

Oddelek: Izdelava spletišč
161838 (1537) Jackass
»

Zaznamki so izginili!!!!!

Oddelek: Programska oprema
121949 (1763) GupeM
»

oop+php+sessions

Oddelek: Izdelava spletišč
152458 (2066) cahahopie

Več podobnih tem