.js file buiten de public folder includen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de vries

thomas de vries

25/04/2014 09:59:16
Quote Anchor link
Goedendag mede leden,

Ik heb een vraag ik heb 2 directorys

private
public

in public wordt de totale site geladen
in private staan bestanden die niet toegankelijk zijn voor de public viewers.

Nu is mijn vraag hoe include ik een bestand in mijn index file

ik heb dit gedaan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<script type="text/javascript" src="/../private/functions.js"></script>


maar hij pakt het niet

als ik de function.js gewoon in mijn public zet dan pakt die het wel maar dan laat mijn site niet goed omdat die dan de ajax.php die in de .js file staat niet kan laden

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$(document).ready(function(UpdateOnline) {
    UpdateOnline('#online').load('../../ajax.php?a=online')
    UpdateOnline.ajaxSetup({ cache: false }); // This part addresses an IE bug. without it, IE will only load the first number and will never refresh
    setInterval(function() {
        UpdateOnline('#online').load('../../ajax.php?a=online');
    }, 5000); // the "3000" here refers to the time to refresh the div. it is in milliseconds.
});


Hoe kan ik dit het beste oplossen.

Met vriendelijke groet,

Thomas de vries
 
PHP hulp

PHP hulp

24/04/2024 00:22:35
 
Erwin H

Erwin H

25/04/2014 10:02:44
Quote Anchor link
Je zet een bestand een in private directory en probeert hem dan aan te roepen vanuit een publiek toegankelijke html. Vind je die gedachtegang nu zelf niet een beetje raar? Als dat zou kunnen is dat hele private toch weg?

Andere oplossing bedenken dus.
 
Michael -

Michael -

25/04/2014 10:03:12
Quote Anchor link
/../private/functions.js

Kan sowieso al niet. / is je root, en dan wil je nog een stap lager...

/private/functions.js of ../private/functions.js al geprobeerd?

Edit: Inderdaad wat Erwin zegt, je maakt eigenlijk een private bestand public.
JS bestanden worden clientside uitgevoerd, dus moeten wel te benaderen zijn door de browser/gebruiker.
Gewijzigd op 25/04/2014 10:05:27 door Michael -
 
Thomas de vries

thomas de vries

25/04/2014 10:06:53
Quote Anchor link
@erwin

wat eigenlijk de bedoeling hiervan is is dat een persoon niet in de adress balk dit kan typen

www.site.com/ajax.php?donate etc

daarom wil ik die buiten de root om laten gaan dus in een private directory en vanuit daar gaan includen

@michael ja dat had ik ook al geprobeerd

Edit het gaat ook eigenlijk niet om de .js file maar meer om die ajax.php file die ik om veiligheids redenen buiten de root dir wil hebben
Gewijzigd op 25/04/2014 10:07:48 door thomas de vries
 
Michael -

Michael -

25/04/2014 10:12:37
Quote Anchor link
Kun je verduidelijken wat je wilt?
ajax.php?donate wordt uitgevoerd wanneer men een donatie doet, maar dit mag niet rechtstreeks?
Als je in de ajax.php controleert of de juiste variabele zijn geset is het niet zo'n probleem toch.
 
Erwin H

Erwin H

25/04/2014 10:14:12
Quote Anchor link
Thomas de vries op 25/04/2014 10:06:53:
@erwin

wat eigenlijk de bedoeling hiervan is is dat een persoon niet in de adress balk dit kan typen

www.site.com/ajax.php?donate etc

daarom wil ik die buiten de root om laten gaan dus in een private directory en vanuit daar gaan includen

Onmogelijk. Als de browser er bij kan via een link, kan de gebruiker het ook direct. Het is namelijk gewoon een url.

Edit op basis van wat Michael zegt:
je kan wel bepalen in php of een request een ajax request is en op basis daarvan bepalen of jet het request wilt uitvoeren of niet. Dit biedt enigszins een beveiliging omdat je dan een request dat direct wordt ingetikt wel kan stoppen.
Gewijzigd op 25/04/2014 10:16:34 door Erwin H
 
Thomas de vries

thomas de vries

25/04/2014 10:20:08
Quote Anchor link
Ok ik begrijp wat je bedoelt erwin alleen waarom hebben de meeste hostings dan 2 maps
public and private.

er moet toch een manier zijn om er voor te zorgen dat een gebruiker dus niet direct de ajax.php kan oproepen
maar dat dit alleen gedaan kan worden als het gaat om een include/cq ajax request?

Of zie ik dit nu helemaal verkeerd.
 
Michael -

Michael -

25/04/2014 10:25:23
Quote Anchor link
Misschien is dit wat je zoekt?
Maar ook dat kun je vast wel omzeilen als ik een eigen ajax call op ajax.php uitvoer.*

Zoals ik al zei, zolang je controleert of er een post request is en de variabelen die je nodig hebt zoals de donatie gevuld zijn, dus een succesvolle donatie, dan is het toch geen probleem?
Wat voor misbruik verwacht je?

*Erwin, dat klinkt logisch, maar niet 100% waterdicht dus.
Gewijzigd op 25/04/2014 10:58:45 door Michael -
 
Erwin H

Erwin H

25/04/2014 10:45:32
Quote Anchor link
De private folder gaat om content die via een https verbinding wordt aangeboden, de public folder voor content via een http verbinding. Maar dannog geldt, dat als de browser erbij kan (via http, of https) de gebruiker het direct dus ook kan.

@michael
een eigen ajax call opzetten is niet zo makkelijk, omdat je dan eigenlijk al direct in een cross domain opstelling komt en de meeste ajax verbindingen staan dat niet toe.
 
- Ariën  -
Beheerder

- Ariën -

25/04/2014 11:49:46
Quote Anchor link
Maar buiten AJAX om kan je het script wel handmatig aanroepen vanaf andere sites. Een oplossing is om met een sessie-controle te werken. Op de index-pagina van je site plaats je een sessie met een unieke string, en die moet ook dan bekend zijn bij het AJAX-script.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.