Ti hogyan oldanátok meg (kezdő)?

Sziasztok!

Többek között PHP-val ügyködöm, teljesen amatőr szinten. Amit eddig akartam, azt le tudtam kódolni, más kérdés, mennyire "ütésállóra". Folyton keresem az eddigi megoldásaimnak a hatékonyabb, szebb, jobb formáit, és ebben a keresésben most nem tudok tovább lépni, a tapasztaltabbak segítségét kérem.

1. Kerestem és nem találtam azt a fórumot, ahol a felhasználó beléptetését úgy javasolta megoldani valaki, hogy egyetlen login.php végzi el a műveletet, majd a további php oldalakat ez hívja meg (valami ilyesmire emlékszem). Ez elegánsnak látszik, hiszen a felhasználó böngészőjében mindig csak a login.php látszik, elrejti a többi oldalt. Na de ezt mégis hogyan kellene kivitelezni? Tudna valaki erre példát vagy tutorial-t adni?

2. Írok éppen egy könnyed kis keretrendszert, beléptetem a felhasználót, ott művel valamit, az eredményt adatbázisban tárolom, stb. Külön framework-öt nem használok (kellene? melyiket?), a munkamenet kezelésére az alábbi módszert használom:

...
session_start();
if (isset($_SESSION['userID'])) {
...

Van ezzel gond, vagy hasonlóan egyszerű módszer? (Ennél a projektnél nincs szükség HTTPS szintű védelemre)

3. JS oldal jquery segítségével .ajax() függvény használatával adatokat küld és fogad a PHP oldalnak/tól. Létrehoztam egy központi php oldalt, amit minden ajax() meghívhat, az első paraméter az adja meg, hogy a php-ban mi történjen. A php-n belül egy switch-case szerkezettel különítem el a feladatokat, ~100 külön kérés kiszolgálásánál a case ág meglehetősen nehezen karban tartható. Kérdem én: hogyan legyen ez másként?

Köszönöm!

Cözi

Hozzászólások

1. "a felhasználó böngészőjében mindig csak a login.php látszik"
Az nem jó, ha mindig a login.php látszik, keresők nem tudják indexelni a weblapot és a kedvencekhez adás is nehézkessé válik. Itt útválasztással oldják meg, nézz utána a clean url kifejezésnek (url rewrite, rewrite engine). Egyébként jó helyen tapogatóztál
2. "Írok éppen egy könnyed kis keretrendszert"
Keretrendszerből tengersok van, ráadásul abban az értelemben könnyedek is, hogy csak azokat a modulokat töltik be memóriába, amit éppen használni szándékozol. Ne pazarold ilyenre az időd. Amit megírsz, azt még tesztelni is kell, ezek pedig jó eséllyel hiba nélkül teszik a dolgukat (feltételezem nagy naívan). A session kezelés is meg van oldva bennük, ha érdekel, meg tudod nézni, de elég az is, ha az elvét érted. Pár példa: Zend Framework, Phalcon, Symfony, stb.
3. Ajax hívásoknál én inkább libeket használnék, külön metódussal, a switch case fölösleges hibaforrás (lemarad egy break pl).

Keretrendszereknél tuti fel fog merülni az MVC, azt mindenképp tanuld meg.

-----------
"Pontban 0:00-kor nem nagyon szoktak véletlen dolgok történni"

1. "a felhasználó böngészőjében mindig csak a login.php látszik"
Az nem jó, ha mindig a login.php látszik, keresők nem tudják indexelni a weblapot és a kedvencekhez adás is nehézkessé válik.

Igazából ez egy zárt rendszer lesz, nem igazán életszerű a kedvencek használata vagy a keresőmotorok indexelése.

clean url, url rewrite - ezekre rákeresek, köszönöm!

Nem teljesen kezdő vagyok, Java, JS, PHP ismerősek nekem. Nem főállásban programozom, igazából ez csak amolyan kompetencia-bővítmény nálam.

PHP most csak azért jött elő, mert ezt ismertem ebből a felhasználási szempontból, meg korábban csináltam hasonló aprómunkákat benne.

Természetesen nyitott vagyok és szívesen olvasom a hozzászólásokat!

Köszönöm, Cözi

Amit írtak az igaz, de alapvetően el lehet lenni a php-vel is, persze olyan amilyen...

És a topicindítóra, már ha nem vették el mások a kedved ettől a "megoldástól".

1. Én nem login.php-val csinálnám, hanem index.php-val.

A session vizsgálat és az autentikációt most hagyjuk, tfh minden aloldalon van egy "wtf" nevű változód ami alapján eldöntöd, hogy mit is kéne betölteni. Az action pedig mindig az index.php, aminek a "bele" kb. így nézne ki:


$allowed_subpages = array(
	'menu'
	, 'salala'
	, 'hihihi'
	, 'hahaha'
	, 'logout');
$subpage = (isset($_POST['subpage']) ? $_POST['subpage'] : '');
if (!in_array($subpage, $allowed_subpages)){
	$funct = 'menu';}
require 'inc_'.$funct.'.php';

Ez fapad és egyszerű, nyilván van millió kultúráltabb megoldás is.
Ha bookmark-olhatóra akarod akkor mehet GET-tel is.

2. Előrebocsátom, és no offense, de az "írok éppen egy könnyed kis keretrendszert" remélem csakis magadnak, szigorúan localhost-on csinálod, és nem production környezetbe akar menni. Így is van elég rommátört website, és a kérdéseid alapján még eléggé kezdő vagy ahhoz, hogy egy n+1.-et gyárts a netre...

Adatbázissal kapcsolatban: sql injection-re figyelni, a "little bobby tables" szituációkat el kell kerülni, illetve a bejövő form adatokat is validálni és escape-elni kell.
Framework alatt nem tudom mire gondolsz, de kb. a session_start-ot megoldásra épül minden.
"HTTPS szintű védelemre" pedig mindenhol szükség van, ahol autentikációs vagy - bármilyen szempontból is - érzékeny adat mehet keresztül. Egy self signed cert vagy egy startssl nem akkora nagy erőfeszítés, hogy ezt ne tegyük meg, szerintem legalábbis...

3. Pl. az 1-es pontban vázolt megoldás? Azaz egy tömbben felveszed az elfogadható paramétereket, és ha a bejövő paraméter megfelel ezeknek akkor betöltöd (include, require) az ehhez tartozó php kódot külön file-ból?

No offense, de tényleg nem tudom mire gondolsz.
Ez volt a topicindítóban a kérdés: " Külön framework-öt nem használok (kellene? melyiket?), a munkamenet kezelésére az alábbi módszert használom:
session_start()"

Tényleg érdekelne, hogy milyen módszerek vannak még session kezelésre ezen kívül.