login  Naam:   Wachtwoord: 
Registreer je!
 Forum

JS/JQuery/PHP (Opgelost)

Offline larssy1 - 07/08/2012 16:07 (laatste wijziging 08/08/2012 13:28)
Avatar van larssy1MySQL beginner Hoi mensen,

Ik ben momenteel met mijn website bezig. Echter zit ik nu met een vraag..

Iedereen weet uiteraard dat PHP serverside is en voor de gebruiker is afgeschermt. Daarnaast is het ook uiteraard bekend dat JS/JQuery gewoon uit te lezen is in de pagina source.

Deze code kan ik dan ook niet afschermen.

Maar zou voor het afschermen mogelijk zijn dat ik in JS simpel weg een PHP function aanroep inplaats van dat ik het gedoe allemaal in JS afhandel?

Momenteel roep ik een query aan dat zijn result terug stuurd naar de door mij op gegeven callback JS functie.

Momenteel doe ik daar dus ook alle programmering maar is het nogal gemakkelijk om de code te 'jatten'.

Nu is mijn vraag, zal het tot langere laadtijden, etc leiden als ik deze PHP functies aanroep en de gegevens laat tonen inplaats van JS.

Mvgr,
Lars

------------------------------------------------------

Op mijn website, gebruik ik zoals hierboven verteld JS in combinatie met PHP.
Om mijn code niet steelbaar te maken, door middel van 'View Source' van IE, de 'Element Inspector' van Chrome, of de 'Firebug' van FireFox.. vraag ik mij af of ik bijv. in JS gewoon een PHP functie kan aanroepen.

Dit zou er dan bijv kunnen gaan uitzien als:

  1. <?php
  2.  
  3. function Details($data) {
  4.  
  5. $feed = $data.feed;
  6. $entries = $feed.entry;
  7.  
  8. $title = $entries[0].title.$t;
  9.  
  10. $html = "<div id='title'>". $title ."</div>";
  11.  
  12. return $html;
  13. }
  14.  
  15. ?>


  1. <script type="text/javascript">
  2. function myCallbackMethod (data) {
  3.  
  4. $('#title').html('<?php echo Details(' + data + '); ?>');
  5.  
  6. }
  7. </script>


Zo zou ik dan mijn code kunnen afschermen, denk ik..
Maar zou dit tenkoste gaan van de snelheid van de website, of andere problemen?

Ik hoop dat het nu iets duidelijker is..

11 antwoorden

Gesponsorde links
Offline vinTage - 07/08/2012 17:39
Avatar van vinTage Nieuw lid Als je het niet erg vind om een page-refresh te krijgen voor elke melding, dan kun je inderdaad beter gewoon met php werken (dat doe ikzelf sowieso altijd al, NEVER trust clientside input).

Het javascript gedeelte is er alleen maar voor de gebruiksvriendelijkheid, zoals 'realtime' controle en afhandeling van foutenmeldingen.
Offline larssy1 - 07/08/2012 21:54
Avatar van larssy1 MySQL beginner Nou, het betreft gewoon de Youtube API, dus youtube handeld ook de user input af..

Het is enkel dat ik mijn code niet zichtbaar wil hebben.. En het is mogelijk om te communiceren tussen PHP en JS, dus mijn vraag is dan ook, ALS ik dit ga toepassen, zal dit een effect hebben op de pageload, etc.
Offline Martijn - 08/08/2012 12:07 (laatste wijziging 08/08/2012 12:08)
Avatar van Martijn Crew PHP De regel is simpel: Vertrouw NOOIT clientside info. Javascript zou dus nooit belangrijke keuzes voor afhandeling mogen maken.

Denk bijvoorbeeld aan registeren, JS zou nooit een query in elkaar mogen zetten en die naar PHP sturen om uit te voeren. Wat JS wel mag doen, is alle velden controleren of het ingevuld is. En daarna die waardes via ajax naar PHP sturen. Nu weten we dat we nooit clientside info mogen vertrouwen, dus in PHP nogmaals alles checken, en dan kun je er mee doen wat je wilt.

Ikzelf doe veel op die methode. Javascript laat ik netjes controleren, op een manier dat een 'normale' user nooit door de JS validatie heen komt zonder correcte waardes. Voor die paar die lopen te kutten heb ik een superbasic phpcontrole zonder echt nette afhandelijk (edit: want die zijn mn tijd niet waard. Je zou hier een logfuntie kunnen maken indien handig).

Het is dus een afweging hoever je JS dingen laat doen, en hoeveel je door PHP doet.

PS: Bang zijn dat je code wordt uitgelezen is ook niet echt nodig, je kunt beter bang zijn voor alle clientside info die je afwerkt, want dusver is een SQL injection de meest voorkomende grote bug in websites, en die komt (vaak) door alleen maar in een al bestand (bv zoek-)veld iets in te vullen.
Offline larssy1 - 08/08/2012 13:21
Avatar van larssy1 MySQL beginner Naja, het scheelt dat mijn eigen framework apart staat van heel het JS gebeuren, dus er zijn totaal geen database gerelateerde acties ook maar in de buurt van JS.

Verders vraag ik vrijwel nooit om USER INPUT, de enkele USER INPUT dat wordt gebruikt is een search met de daarbij behorende $_GET functie.

Echter komt ook deze $_GET niet in de buurt van mijn database omdat deze input rechtstreeks richting Youtube wordt verstuurd.

Overigens zijn dit niet de antwoorden naar waar ik op zoek ben, en zal even mijn vraag verduidelijken. (Zie main thread).

Daarnaast was ik bezig om een eigen functie voor number_format in JS te maken, maar deze blijft laden en loopt dus de browser vast.

Misschien dat jullie mij hierbij kunnen helpen? Heb uiteraard ook op google gezocht, maar daarbij kwam ik alleen bij formats dat mij een getal terug gaven dat eindigde met ,00.

  1. function number_format(num)
  2. {
  3. var value = "";
  4. var length = num.length;
  5.  
  6. var count = length / 3;
  7. var rem = length % 3;
  8.  
  9. var startIndex = rem;
  10. var endIndex = 0;
  11.  
  12. value = num.substring(0, rem - 1);
  13.  
  14. for (var i = startIndex; startIndex < length; i = i+3) {
  15. endIndex = startIndex + 3;
  16. value += ',' + num.substring(i, endIndex);
  17. }
  18.  
  19. return value;
  20. }
Offline Martijn - 08/08/2012 13:39
Avatar van Martijn Crew PHP
  1. // prep4money - zet een INT om in een moneyformat
  2. function prep4money(num) {
  3. num = num.toString().replace(/\$|\,/g,'');
  4. if(isNaN(num))
  5. num = "0";
  6. sign = (num == (num = Math.abs(num)));
  7. num = Math.floor(num+0.50000000001);
  8. cents = num%100;
  9. num = Math.floor(num/100).toString();
  10. if(cents<10)
  11. cents = "0" + cents;
  12. for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
  13. num = num.substring(0,num.length-(4*i+3))+','+
  14. num.substring(num.length-(4*i+3));
  15. return (((sign)?'':'-') + num + ',' + cents);
  16. }


die heb ik ooit op het internet gevonden, die werkt wel goed.

Op je ",00", die kan je ook gewoon kunnen gebruiken en dan de komma's door punten vervangen 
Bedankt door: larssy1
Offline larssy1 - 08/08/2012 13:54 (laatste wijziging 08/08/2012 14:07)
Avatar van larssy1 MySQL beginner
Martijn schreef:
[..code..]

die heb ik ooit op het internet gevonden, die werkt wel goed.

Op je ",00", die kan je ook gewoon kunnen gebruiken en dan de komma's door punten vervangen 


Ik krijg bij deze een output van 990,524,50 wanneer het getal 99052450 is, enig idee waarom?

Het is overigens geen geld, het is gewoon een view count, dat bijv in dit geval 99052450 is, maar moet worden weergeven als 99,052,450

---------------------

Ah heb t al..

  1. function number_format(num) {
  2. return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  3. }


---------------------

Toevallig ook nog een antwoord op de originele vraag? 
Offline Martijn - 09/08/2012 15:22
Avatar van Martijn Crew PHP Op die vraag, daar zou ik me niet druk om maken. Zolang alle aanpassingen die een bezoeker maakt in zn html/js alleen maar bij de gebruiker dingen veranderd, dan is er helemaal niets aan de hand
Offline larssy1 - 09/08/2012 17:06
Avatar van larssy1 MySQL beginner snap ik, maar het is vooral om een copy van mijn eigen website te voorkomen zeg maar.. aangezien de hele website eigenlijk vrijwel JS is, kunnen ze de code kopieren en als hun eigen benoemen.. ook al staat er in mijn disclaimer, terms, etc dat dat niet de bedoeling is..

Daarnaast, enig idee hoe ik het probleem met mijn footer kan oplossen?? (Bij een te klein formaat wordt de footer veranderd, zo worden er diverse divs naar onderen verplaatst).

[url]http://www.youtubeonreplay.com/beta/youtubeonreplay/disclaimer/[/url]
Offline Pieter - 09/08/2012 19:50
Avatar van Pieter Gouden medaille

SEO guru
Als je gekopieerd wordt, is het eerder een compliment voor je. Heb geen schrik van gekopieerde code. Als het echt een te erge kopie is, kan je je copyright inroepen bij Google en de site in kwestie laten verwijderen op basis van copyright schending.

Gebruik hiervoor dit formulier:

http://support....page=ts.cs

Op die manier worden ze massaal uit de zoekresultaten gekegeld en heb je eigenlijk er geen last meer van. Google neemt copyright wel serieus, ik heb voor zowel mezelf als klanten er al gebruik van gemaakt en binnen de paar weken bestaat die site dan niet meer. 
Bedankt door: larssy1
Offline larssy1 - 10/08/2012 08:17
Avatar van larssy1 MySQL beginner Hartelijk bedankt, dat is zelfs een betere oplossing 

Ik zal jou antwoord als "Oplossing!" markeren zodra er een mogelijke oplossing voor mijn footer komt 
Offline Martijn - 10/08/2012 13:51
Avatar van Martijn Crew PHP Álles wat de user in zn browser ziet, is kopieerbaar, of je het nou met js, php of html doet. De phpsource kunnen ze nooit van je krijgen, die van javascript wel. Er zijn scramblers maar die kosten vaak geld.

Ik zou me dr echt echt echt niet druk om maken.
Bedankt door: larssy1
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s