Vriendschappelijke PHP van de Motor van het onderzoek Pagina's
De Technologieën van Zend - de Schijnwerper van de Galerij van de Code - Vriendschappelijke PHP van de Motor van het Onderzoek Pagina's
Nu u een beter inzicht in het probleem hebt, bekijk de oplossing. Opdat een spin (en bijgevolg index) een bepaalde pagina oversteekt, moet URL van om het even welke verschijning van parameters vrij zijn. Maar als een bepaalde pagina parameters om vereist behoorlijk te functioneren, wat kan worden gedaan? Het antwoord ligt in het gebruik van de $PATH_INFO milieuvariabele, u een URL kunt omzetten waarvan…
http://www.zend.com/myscript.php?myvalue=Hello
… aan een spin-vriendschappelijk formaat:
http://www.zend.com/myscript.php/myvalue/Hello
Bericht dat het spin-vriendschappelijke formaat geen aanwijzing bevat dat er om het even welke parameters die bij allen worden overgegaan zijn. Eerder, kijkt het eenvoudig als wij probeert om tot de folder op de zend.com plaats /myscript.php/myvalue/Hello toegang te hebben, en om het even welke spin van de onderzoeksmotor die tot de pagina toegang heeft zal geen probleem na URL hebben. Maar toch in werkelijkheid voeren wij het manuscript myscript.php uit.
Maar wat aan uw parameters gebeurde?
Hoe te om uw verborgen gegevens TE KRIJGEN
Nu u met succes uw parameters hebt verborgen binnen wat een folderstructuur schijnt te zijn, hoe gaat u hen weg? Wanneer een PHP manuscript met extra weggegevens uitgevoerd wordt die aan het eind van filename (aangezien wij hierboven in het spin-vriendschappelijke voorbeeld) worden toegevoegd deden, leidt de server van het Web tot een milieu veranderlijke $PATH_INFO die deze informatie bevat. U kunt tot deze milieuvariabele dan toegang hebben door PHP automatisch, en het ontleden om onze gegevens terug te winnen. Zo onze vroegere URL…
http://www.zend.com/myscript.php/myvalue/Hello
… de variabele $PATH_INFO met zou bevolken:
/myvalue/Hello
… van wat u de overgegaane informatie dan ontleden en kunt terugwinnen.
Het ontcijferen van uw gegevens
Nu u weet waar uw parameters zijn, de volgende stap is hen in een formaat te ontcijferen dat PHP kan gebruiken. Hoewel er geen vereiste methode is om dit te doen, zal ik veronderstellen dat u uw gegevens op de volgende manier hebt geformatteerd:
/var_name/var_data/var2_name/var2_data/…
Gebruikend deze methode, wordt dat alles verlaten is:
* om het verstrekte koord te breken telkens als wij een schuine streep („/“) ontmoeten
* om variabelen te creëren om de voornamen (var_name, var2_name, enz.) met hun respectieve waarden (var_data, var2_data, enz.) te associëren
Met elk van dit in mening, bekijken één of andere echte code.
Het manuscript
Zoals met vele krachtige technieken, is de code die wordt vereist om deze capaciteit in uw manuscripten tot stand te brengen niet moeilijk zich te ontwikkelen. Het proces bestaat uit het oversteken van een serie die op $PATH_INFO wordt gebaseerd, en het creëren van variabelen die op dat gegeven worden gebaseerd. Uiteindelijk, het voorwerp is URL te nemen…
http://www.zend.com/myscript.php/myvalue/Hello
… gebruik dan de gegevens die in de variabele $PATH_INFO worden verstrekt overeenkomstige variabelen te construeren:
$myvalue = „Hello“
De stroom van de code
* Controleer het bestaan van $PATH_INFO
* Verdeel $PATH_INFO in een serie
* Als het totale aantal parameters zelfs is, voeg aan het eind een extra leeg element toe om traversal in de volgende stap te vereenvoudigen
* De dwarsserie en leidt tot variabelen die op de $PATH_INFO- gegevens worden gebaseerd
<>
als (isset ($PATH_INFO)) {
$vardata = explodeer („/“, $PATH_INFO);
$num_param = tel ($vardata);
als ($num_param % 2 == 0) {
$vardata [] = '';
$num_param;
}
voor (var $i = 1; $i <>
[$i] = $vardata [$i 1];
}
}
? >
Filed onder Uncategorized |































