Gebruik van Ajax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jordy nvt

Jordy nvt

05/08/2011 17:11:43
Quote Anchor link
Op mijn website heb ik een systeem gebouwd waarbij een gebruiker een bepaalde actie kan uitvoeren als hij ooit eens actie X ofzoiets heeft uitgevoerd. Dit staat opgeslagen in de database. Graag wil ik deze validatie enzo uitvoeren met Ajax, zodat de validatie zonder paginavernieuwing plaatsvindt. Nu heb ik echt al héél veel tutorials doorgelezen (waaronder die van phphulp.nl) maar ik kom er maar niet uit. De één gebruikt ajaxRequest, de ander xmlHttpRequest of htmlObject.open. In beide moet je in ieder geval de url van je script doorgeven. Zoiets als

httpObject.open("GET", "mijnscript.php?inputText="+document.getElementById('inputText').value, true)

Maar dat betekent dus dat iemand weet hoe mijn script heet (mijnscript.php) en die kan ie dus zo oproepen. En dat is niet de bedoeling. Als ik op andere professionele websites kijk die van die Validatietechniek gebruik maken dan zie ik allemaal andere codes, maar géén van allen heeft zoiets waarbij de naam van het script naar voren komt. Weer een ander gebruikt JSON. Kortom, ik snap er geen fluit van. Zou iemand mij een beetje kunnen helpen. Heel erg bedankt alvast!
 
PHP hulp

PHP hulp

22/12/2024 08:54:00
 
Write Down

Write Down

05/08/2011 18:03:12
Quote Anchor link
Ik heb weinig kennis van Ajax, maar mag de persoon in kwestie al dan niet weten of mijnscript.php bestaat? Of volstaat om de bezoeker toegang te weigeren tot dat script?
 
Eric Wagener

Eric Wagener

05/08/2011 18:08:22
Quote Anchor link
Als iets via Ajax wordt aangeroepen, dan kun je altijd de link achterhalen. Dat kun je goed zien met Firebug. Dat komt doordat het via JavaScript wordt aangeroepen en dus via de browser gaat.

Maar wat is het probleem dat iemand de scriptnaam ziet, je weet toch niet wat de source is?
 
Write Down

Write Down

05/08/2011 18:11:05
Quote Anchor link
Ik vermoed dat de TS wilt dat mijnscript.php niet kan worden uitgevoerd. Nu dat is volgens mij simpel op te lossen, methoden genoeg. De makkelijkste volgens mij is het IP detecteren.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if($_SERVER['REMOTE_ADDR']!='het_IP_van_webserver) {
 header('
Location: index.php');
}

/* Overige code */
?>
 
- Ariën  -
Beheerder

- Ariën -

05/08/2011 18:13:58
Quote Anchor link
Of sessies..,
Ik ben wel benieuwd naar een site met een 'verborgen' ajax call url. Kan zijn dat deze gepacked is...
 
Write Down

Write Down

05/08/2011 18:30:46
Quote Anchor link
In dit geval vind ik een sessie compleet overbodig. Onnodig tmp-files maken...
 
- Ariën  -
Beheerder

- Ariën -

05/08/2011 18:36:47
Quote Anchor link
Ligt eraan. Als het een inlog controle is.
 
Jordy nvt

Jordy nvt

05/08/2011 18:41:48
Quote Anchor link
Ja, dat bedoel ik inderdaad. Wat als het een inlogcontrole is? Die ga ik misschien ook maken. Of een andere controlescript. Stel de volgende site voor: http://www.w3schools.com/php/php_ajax_database.asp

In de code is te vinden dat het script getuser.php heet. Dus als ik de url uitvoer met een id 1 krijg ik http://www.w3schools.com/php/getuser.php?q=1. Heel leuk natuurlijk, maar iedereen kan de gegevens zien en dat is nou juist niet de bedoeling.

@WriteDown, die mogelijkheid is inderdaad goed, maar ook 100% waterdicht? Volgensmij niet toch?
 
Write Down

Write Down

05/08/2011 18:48:03
Quote Anchor link
Volgens mij wel, tenzij er iemand op de server zelf naar jouw website surft, maar dat gebeurd normaal niet... Je zou natuurlijk ook de referrer kunnen nakijken, dus kijken of mijnscript.php effectief is aangeroepen door een pagina waarop het mag.
 
- Ariën  -
Beheerder

- Ariën -

05/08/2011 18:56:03
Quote Anchor link
Referer is te faken.

Maar waarom mogen ze het niet handmatig aanroepen?
 
Write Down

Write Down

05/08/2011 19:03:46
Quote Anchor link
Dat is waar Aar, maar ik bedoelde het eerder als toevoeging.
 
Jordy nvt

Jordy nvt

05/08/2011 19:14:46
Quote Anchor link
@Aar,

Ik ga maar even wat noemen, dit is niet wat ik in mijn script doe. Maar bijvoorbeeld: Een speler kan dingen kopen op de website. Zijn totaalbedrag van all-time wordt opgeslagen in de Database. Vanaf 50 EURO ooit besteed op de website krijgt hij een speciale optie. Dit wordt gevalideerd door Ajax in het bestand checktotal.php ofzoiets. Als iemand anders dit bestand aanroept ziet ie zomaar dat Jantje voor 350 EURO aan geld heeft besteed ofzoiets. Dat is niet echt fijn om openbaar te maken...

Maar dit is slechts een voorbeeld, ik kan eigenlijk nog wel wat betere verzinnen:P
Gewijzigd op 05/08/2011 19:15:03 door Jordy nvt
 
Joakim Broden

Joakim Broden

05/08/2011 20:14:49
Quote Anchor link
Hoezo zou je iemand anders zijn geld kunnen bekijken, als jij dan via sessie kijkt welke gebruiker ingelogd is of dergelijke kun je het zo maken dat hij alleen zijn eigen geld kan bekijken

Wel zou ik er voor zorgen dat je niet te veel ajax in je website gebruikt, dit kan je website heel erg langzaam maken.
 
Jordy nvt

Jordy nvt

05/08/2011 22:38:12
Quote Anchor link
Ok, bedankt voor de tip. Met sessie, bedoel je dan dat ik eerst een sessie aanmaak met een unieke code, dan het bestand met Ajax aanroep en check of de sessie overeenkomt?

Bedankt iig!
 
Joakim Broden

Joakim Broden

05/08/2011 22:40:38
Quote Anchor link
Nou ik neem aan dat een gebruiker eerst inlogt op je website en daarna pas die ajax scripts krijgt, als je in de source van het ajaxscript dan checkt op de sessie kun je kijken welke gebruiker het is en wat hij wel en niet mag of kan doen.
 
- Ariën  -
Beheerder

- Ariën -

05/08/2011 22:41:02
Quote Anchor link
Ja, dat klopt.
 
Jordy nvt

Jordy nvt

05/08/2011 23:03:50
Quote Anchor link
Ok, en als iemand het script dan direct aanroept is er niemand ingelogt en bestaat er dus ook geen sessie... Maar hoe kan het dat sommige websites andere Ajax requests hebben. Bijvoorbeeld tribalwars.nl? Van hun Ajax code snap ik niks.
 
Write Down

Write Down

05/08/2011 23:07:40
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if(isset($_SESSION['user_id'])) {
//haal gebruikergegevens op
}else {
echo 'Je bent niet ingelogd';
}

?>
 
- Ariën  -
Beheerder

- Ariën -

05/08/2011 23:10:04
Quote Anchor link
Jordy nvt op 05/08/2011 23:03:50:
Ok, en als iemand het script dan direct aanroept is er niemand ingelogt en bestaat er dus ook geen sessie... Maar hoe kan het dat sommige websites andere Ajax requests hebben. Bijvoorbeeld tribalwars.nl? Van hun Ajax code snap ik niks.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
http://tribalwars.nl/register.php?ajax=check_input

Die gebruiken het jQuery framework i.p.v. standaard Javascript met 'xmlHttpRequest', en hebben hun code geminified, zodat de enters en tabs eruit gehaald zijn ten bate van de snelheid.

Het ligt gewoon aan de implementatie en het gebruik van eventuele Frameworks. Zo zie ik op FokForum en Tweakers dat zij een functie gemaakt hebben waarin ze AJAX aanroepen doen, in de paramaters geven de extra informatie mee voor welk doeleinde de AJAX-call geldt en wat de inhoud is.
Gewijzigd op 05/08/2011 23:14:27 door - Ariën -
 
Jordy nvt

Jordy nvt

05/08/2011 23:14:35
Quote Anchor link
Ja, die had ik idd gezien, maar ingame (bv in het hoofdgebouw) staat een heel vaag script voor het uitbouwen van gebouwen en sorteren van de wachtlijst. Dat wordt ook live gedaan. Is dat allemaal met dat JQuery framework gedaan?
 
- Ariën  -
Beheerder

- Ariën -

05/08/2011 23:15:14
Quote Anchor link
Als ze het jQuery framework inladen, dan kan je daar wel vanuit gaan.
 

Pagina: 1 2 volgende »



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.