DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   Kako izbeći PHP i include funkciju? (http://www.devprotalk.com/showthread.php?t=9188)

miljant 01. 10. 2010. 21:32

Kako izbeći PHP i include funkciju?
 
Vlasnik sam jednog web kataloga. Za ovo što hoću da uradim važne su dve stranice, jedna unutar koje su ispisane kategorije i druga koja na osnovu parametra prosleđenog GET metodom ispisuje sajtove iz određene kategorije.

Ostale stranice (prijava sajta i sl.) za ovo nisu važne.

Ideja je da drugim sajtovima ponudim da preuzmu kod koji bi postavili na svoj sajt na kojem će se prikazivati katalog. Najjednostavniji metod je php include, ali bih ja hteo da ga zaobiđem i vidim koji je najbolji način za tako nešto.

Te dve stranice bi bile odjedinjene u jednu. Ako je prosleđen ID prikazuje se odgovarajuća kategorija, u suprotnom prikazuje se lista kategorija.

Samo nemoj da mi ko pomene iframe.

LiquidBrain 01. 10. 2010. 21:40

napravish javascript widget, gde korisnicima dash samo javascript da stave na svoju stranu i to je to...

miljant 01. 10. 2010. 22:25

Koliko je pametno podesiti Apache tako da .js fajlovi rade sa PHP?

ivanhoe 01. 10. 2010. 22:51

slobodno, i nema potrebe da to radis na celom apachu, podesi samo za jedan dir ili cak samo za taj jedan js fajl

miljant 01. 10. 2010. 23:58

Nisam baš najbolji sa JS i nešto tu pogrešno radim.

Ovo je mog kod koji poziva js stranicu

Kôd:

<script src="http://www.mojsajt.com/include.js">
</script>

Ovde ne vidim način da prosledim parametre GET metodom

include.js?id=1
include.js?id=2

Očigledno da sam ja zbog neznanja počeo nešto da radim naopako.

MorenoArdohain 02. 10. 2010. 00:26

Mali primer kako bi to trebalo da izgleda:

<script type="text/javascript" src="http://www.mojsajt.com/include/site.php?id=1"></script>

Ekstenzija je ovde nebitna jer browser ce tretirati pozvani fajl kao JS kod (zbog tog type="text/javascript").

I u tom site.php naravno generises JS kod (malo cu da uprostim):
Kôd:

<?php

if ($_GET['id'] == 1)
print "document.write('sadrzaj za sajt 1');";

?>

A ako bas zelis da ti pozvani fajl ima .js ekstenziju, treba uraditi ono sto je ivanhoe predlozio, da se podesi apache da tretira .js fajlove u odredjenom diru kao .php fajlove, tj da ih procesira kroz PHP.

mileusna 02. 10. 2010. 01:01

Citat:

Originalno napisao MorenoArdohain (Napišite 89990)
A ako bas zelis da ti pozvani fajl ima .js ekstenziju, treba uraditi ono sto je ivanhoe predlozio, da se podesi apache da tretira .js fajlove u odredjenom diru kao .php fajlove, tj da ih procesira kroz PHP.

Može i kroz mod_rewrite, recimo za neki /scripts/widget1234.js gde je 1234 neki ID npr.

Kôd:

RewriteCond %{REQUEST_URI} ^/scripts/widget\d+\.js$
RewriteRule ^scripts/widget(\d+)\.js /generate_js.php?id=$1 [L]


LiquidBrain 02. 10. 2010. 01:19

cekaj bre... pogresno ste me shvatili... Ono sto sam ja predlozio je da napravish nesto slicno google analytics kodu... Dakle korisnik samo stavi neki javascript snippet koji ce da kontaktira tvoj server i da dovuce html koji ce da ga ispuca na stranu...

MorenoArdohain 02. 10. 2010. 01:25

@LiquidBrain Pa ovo je slican princip za inkluziju u strane kao i za GA? Google analytics poziva google-analytics.com/ga.js kod, uz odredjene parametre. Isti djavo je i ovde.

LiquidBrain 02. 10. 2010. 01:36

Citat:

Originalno napisao MorenoArdohain (Napišite 89993)
@LiquidBrain Pa ovo je slican princip za inkluziju u strane kao i za GA? Google analytics poziva google-analytics.com/ga.js kod, uz odredjene parametre. Isti djavo je i ovde.

Google Analytics inkluduje ga.js i onda poziva funckiju
Kôd:

pageTracker._trackPageview();
A sta posle ta funcija radi to je drugo...

Resenje:

ovo je na primer kod koji das korisnicima:
Kôd:

<script type="text/javascript">
  var Host = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  document.write(unescape("%3Cscript src='" + Host + "tvojdomen.com/javascript_fajl.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<div id='id_diva_za_zamenu'></div>
<script type="text/javascript"> prikazi_sadrzaj('kategorija');</script>

ovo je fajl javascript_fajl.js koji stavish u root tvog domena:

Kôd:

<script type="text/javascript">
  var http = false; 
  if(navigator.appName == "Microsoft Internet Explorer") { 
    http = new ActiveXObject("Microsoft.XMLHTTP");
  } else { 
    http = new XMLHttpRequest();
  } 

  function prikazi_sadrzaj(kategorija) { 
    http.open("GET", "sadrzaj.php?kategorija=" + kategorija, true);
    http.onreadystatechange=function() {    if(http.readyState == 4) {
      document.getElementById('id_diva_za_zamenu').innerHTML = http.responseText;
    }
  } 
  http.send(null);

 </script>

sve sto trebash posle da uradish jeste da u zavisnosti od kategorije koju hocesh nekom da prikazujesh dash taj javascript deo, i da ti na sajtu napravish php sktiptu sadrzaj.php koja za parametar kategorija vraca odgovarajuci sadrzaj...

PS. Ovo nisam testirao.. mozda i nece da radi... a mozda i sintaksa nije dobra :P


Vreme je GMT +2. Trenutno vreme je 01:39.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.