{"id":15919,"date":"2025-02-08T09:16:06","date_gmt":"2025-02-08T07:16:06","guid":{"rendered":"https:\/\/www.beseit.net\/?p=15919"},"modified":"2025-02-10T10:23:06","modified_gmt":"2025-02-10T08:23:06","slug":"variables-_session-i-_get","status":"publish","type":"post","link":"http:\/\/www.beseit.net\/?p=15919","title":{"rendered":"Variables $_SESSION i $_GET de PHP"},"content":{"rendered":"\n<p>si faig clic a Mes taules\/catala\/castella, veig que apunta a <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f41010\" class=\"has-inline-color\">localhost\/polidic\/taula_cat_cast.php?lang=cat<\/mark>. aix\u00f2 vol dir que entraria al fitxer: <mark style=\"background-color:rgba(0, 0, 0, 0);color:#f41616\" class=\"has-inline-color\">taula_cat_cast.php<\/mark> amb la variable $_GET= cat?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><mark style=\"background-color:rgba(0, 0, 0, 0);color:#fb0d0d\" class=\"has-inline-color\">localhost\/polidic\/taula_cat_cast.php?lang=cat&amp;dic=castella_catala<\/mark><\/code><\/pre>\n\n\n\n<p>Exactament! Quan fas clic a l&#8217;enlla\u00e7 &#8220;M\u00e9s taules\/Catal\u00e0\/Castell\u00e0&#8221;, l&#8217;URL apunta a http:\/\/localhost\/polidic\/taula_cat_cast.php?lang=cat. Aix\u00f2 significa que el fitxer taula_cat_cast.php es carregar\u00e0 amb el par\u00e0metre lang establert a cat.<\/p>\n\n\n\n<p>Qu\u00e8 passa en aquest cas:<br>Carrega el fitxer: El navegador carregar\u00e0 el fitxer taula_cat_cast.php.<\/p>\n\n\n\n<p>Par\u00e0metre lang a l&#8217;URL: L&#8217;URL cont\u00e9 el par\u00e0metre lang=cat, per la qual cosa PHP processar\u00e0 aquest par\u00e0metre i el far\u00e0 accessible a trav\u00e9s de $_GET[&#8216;lang&#8217;].<\/p>\n\n\n\n<p>\u00das de $_GET[&#8216;lang&#8217;]: A dins del fitxer taula_cat_cast.php, pots accedir al valor de $_GET[&#8216;lang&#8217;] i prendre accions en conseq\u00fc\u00e8ncia. Per exemple, podries utilitzar aquest valor per carregar contingut en catal\u00e0 o fer qualsevol altra operaci\u00f3 espec\u00edfica a l&#8217;idioma.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><code>$_GET['dic']<\/code> no s&#8217;emmagatzema ni al servidor ni al navegador per si mateixa. La informaci\u00f3 de <code>$_GET<\/code> es passa a trav\u00e9s de l&#8217;URL quan l&#8217;usuari accedeix a una p\u00e0gina web. Aqu\u00ed tens una mica m\u00e9s de detall:<\/p>\n\n\n\n<p><strong>Navegador<\/strong>: Quan l&#8217;usuari fa clic en un enlla\u00e7 o envia un formulari, els par\u00e0metres <code>$_GET<\/code> (inclosos els <code>dic<\/code> i <code>lang<\/code>) es passen com a part de l&#8217;URL. Aix\u00f2 significa que els valors <mark style=\"background-color:rgba(0, 0, 0, 0);color:#fa0808\" class=\"has-inline-color\">s\u00f3n visibles a l&#8217;URL<\/mark> del navegador, per exemple: <code>http:\/\/example.com\/page.php?dic=catala_castella&amp;lang=cat<\/code>.<\/p>\n\n\n\n<p><strong>Servidor<\/strong>: Quan el servidor rep la sol\u00b7licitud HTTP del navegador, la interpretaci\u00f3 de l&#8217;URL (<mark style=\"background-color:rgba(0, 0, 0, 0);color:#f60b0b\" class=\"has-inline-color\">un cop analitzada<\/mark>) la considera v\u00e0lida es fa a trav\u00e9s de les superglobals de PHP com <code>$_GET<\/code>. Aquestes variables s\u00f3n accessibles durant l&#8217;execuci\u00f3 del codi PHP en el servidor, per\u00f2 no es guarden persistentment a menys que el teu codi les emmagatzemi de manera expl\u00edcita (per exemple, en sessions, bases de dades, etc.).<\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>tan <code>$_GET<\/code> com <code>$_SESSION<\/code> estan implicats en la interacci\u00f3 entre el navegador i el servidor web, funcionen de maneres diferents:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>$_GET<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gestionat pel Navegador<\/strong>: Els par\u00e0metres <code>$_GET<\/code> s\u00f3n passats a trav\u00e9s de l&#8217;URL quan el navegador fa una sol\u00b7licitud HTTP al servidor. Aix\u00f2 vol dir que el navegador envia aquesta informaci\u00f3 al servidor en la l\u00ednia d&#8217;adre\u00e7a quan es fa una sol\u00b7licitud per carregar una p\u00e0gina web.<\/li>\n\n\n\n<li><strong>Visible a l&#8217;Usuari<\/strong>: Els par\u00e0metres <code>$_GET<\/code> s\u00f3n visibles a l&#8217;usuari a l&#8217;URL del navegador, el que significa que l&#8217;usuari pot veure i modificar aquests valors directament.<\/li>\n<\/ul>\n\n\n\n<p><strong>Flux complet per verificar<\/strong><\/p>\n\n\n\n<p>Aqu\u00ed tens el flux complet que hauria de seguir-se quan visites<\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0);color:#ec1111\" class=\"has-inline-color\"> <code>index.php?lang=eus&amp;redirect=true<\/code><\/mark>:<\/p>\n\n\n\n<p>Si <code>redirect=true<\/code>, es redirigeix a <code>index.php<\/code> sense mostrar els par\u00e0metres <code>lang<\/code> a l&#8217;URL.<\/p>\n\n\n\n<p><strong>Accedir a <code>index.php<\/code>:<\/strong><\/p>\n\n\n\n<p><code>$_GET['lang']<\/code> captura el valor <code>eus<\/code> i es guarda.<\/p>\n\n\n\n<p>S&#8217;estableix <code>$_SESSION['language'] = 'eus'<\/code>.<\/p>\n\n\n\n<p><strong>Incloure <code>mes_taules_lang.php<\/code>:<\/strong><\/p>\n\n\n\n<p><code>$idioma_actual<\/code> pren el valor de <code>$_SESSION['language']<\/code> (<code>eus<\/code>).<\/p>\n\n\n\n<p>Es genera el contingut del men\u00fa desplegable en euskera.<\/p>\n\n\n\n<p><strong>Incloure <code>menu.php<\/code>:<\/strong><\/p>\n\n\n\n<p>Es verifica que <code>$_SESSION['language']<\/code> \u00e9s correcte.<\/p>\n\n\n\n<p>Es renderitza el men\u00fa principal amb l&#8217;idioma seleccionat.<\/p>\n\n\n\n<p><strong>Redirecci\u00f3 (opcional):<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><code>$_SESSION<\/code><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gestionat pel Servidor<\/strong>: Les dades de sessi\u00f3 <code>$_SESSION<\/code> es guarden al servidor. Quan un usuari inicia una sessi\u00f3, el servidor crea una identificaci\u00f3 de sessi\u00f3 \u00fanica (sessi\u00f3 ID) que s&#8217;envia al navegador com una cookie.<\/li>\n\n\n\n<li><strong>Persistent al Servidor<\/strong>: El servidor guarda tota la informaci\u00f3 relacionada amb la sessi\u00f3 en mem\u00f2ria o en fitxers del servidor. Les dades de sessi\u00f3 poden incloure informaci\u00f3 sensible com les prefer\u00e8ncies d&#8217;usuari, dades de sessi\u00f3, etc.<\/li>\n\n\n\n<li><strong>Cookie de Sessi\u00f3<\/strong>: El navegador nom\u00e9s guarda l&#8217;ID de sessi\u00f3 com una cookie, que s&#8217;envia al servidor amb cada sol\u00b7licitud HTTP posterior per identificar la sessi\u00f3 de l&#8217;usuari.<\/li>\n\n\n\n<li><strong>No Visible a l&#8217;Usuari<\/strong>: Les dades de sessi\u00f3 no s\u00f3n visibles ni accessibles directament a l&#8217;usuari, nom\u00e9s l&#8217;ID de sessi\u00f3 es guarda en una cookie.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Comparaci\u00f3 i Funci\u00f3:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>$_GET<\/strong>: Es fa servir per passar par\u00e0metres no confidencials, com ara criteris de cerca, filtres, etc., de l&#8217;usuari al servidor a trav\u00e9s de l&#8217;URL.<\/li>\n\n\n\n<li><strong>$_SESSION<\/strong>: Es fa servir per emmagatzemar dades confidencials i persistents al llarg de tota la sessi\u00f3 d&#8217;usuari, com ara autenticaci\u00f3, cistell de la compra, i prefer\u00e8ncies.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#f70b0b\" class=\"has-inline-color\">PYTHON<\/mark><\/h2>\n\n\n\n<p>Python \u00e9s un llenguatge de programaci\u00f3 molt vers\u00e0til i s&#8217;utilitza \u00e0mpliament per al desenvolupament web. Hi ha diversos marcs (frameworks) que faciliten la creaci\u00f3 de llocs web i aplicacions web amb Python. Els m\u00e9s populars s\u00f3n:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Django<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Descripci\u00f3<\/strong>: Django \u00e9s un dels marcs m\u00e9s coneguts i complets per al desenvolupament web amb Python. Proporciona moltes funcionalitats integrades, com ara gesti\u00f3 d&#8217;usuaris, autenticaci\u00f3, enrutament, models de dades i molt m\u00e9s.<\/li>\n\n\n\n<li><strong>Caracter\u00edstiques<\/strong>: Alt nivell de seguretat, escalabilitat, ORM (Object-Relational Mapping) integrat, sistema de plantilles, i moltes eines per al desenvolupament r\u00e0pid d&#8217;aplicacions.<\/li>\n\n\n\n<li><strong>\u00das Com\u00fa<\/strong>: Aplicacions web, llocs de comer\u00e7 electr\u00f2nic, portals socials, etc.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Flask<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Descripci\u00f3<\/strong>: Flask \u00e9s un micro-marcs (micro-framework) que proporciona les eines b\u00e0siques per a la creaci\u00f3 de llocs web i aplicacions web, permetent als desenvolupadors ampliar-lo amb extensions segons les seves necessitats.<\/li>\n\n\n\n<li><strong>Caracter\u00edstiques<\/strong>: Lleuger, flexible, f\u00e0cil de comen\u00e7ar, i permet una major personalitzaci\u00f3 comparat amb marcs m\u00e9s grans com Django.<\/li>\n\n\n\n<li><strong>\u00das Com\u00fa<\/strong>: Aplicacions web petites a mitjanes, APIs RESTful, prototips r\u00e0pids.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pyramid<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Descripci\u00f3<\/strong>: Pyramid \u00e9s un altre marc de desenvolupament web que \u00e9s conegut per la seva flexibilitat i escalabilitat. Pot ser utilitzat per a projectes petits aix\u00ed com aplicacions grans i complexes.<\/li>\n\n\n\n<li><strong>Caracter\u00edstiques<\/strong>: Flexible, suport per a m\u00faltiples bases de dades, autenticaci\u00f3 i autoritzaci\u00f3 integrades.<\/li>\n\n\n\n<li><strong>\u00das Com\u00fa<\/strong>: Aplicacions web variades, des de petits projectes fins a grans aplicacions empresarials.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Tornado<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Descripci\u00f3<\/strong>: Tornado \u00e9s un marc de desenvolupament web i una biblioteca de xarxa as\u00edncrona que es va desenvolupar originalment per FriendFeed.<\/li>\n\n\n\n<li><strong>Caracter\u00edstiques<\/strong>: Alt rendiment, manejament de connexions de llarga durada, as\u00edncron, i ideal per a aplicacions que requereixen un gran nombre de connexions simult\u00e0nies.<\/li>\n\n\n\n<li><strong>\u00das Com\u00fa<\/strong>: Aplicacions en temps real, serveis de xat, jocs en l\u00ednia.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">FastAPI<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Descripci\u00f3<\/strong>: FastAPI \u00e9s un marc modern, r\u00e0pid (d&#8217;alt rendiment) per construir APIs amb Python 3.6+ basat en est\u00e0ndards tipus (tipado) Python.<\/li>\n\n\n\n<li><strong>Caracter\u00edstiques<\/strong>: Rendiment elevat, validaci\u00f3 de dades autom\u00e0tica, documentaci\u00f3 autom\u00e0tica generada, f\u00e0cil de codificar, tipus de seguretat robusta.<\/li>\n\n\n\n<li><strong>\u00das Com\u00fa<\/strong>: APIs modernes i r\u00e0pides, microserveis, backend per a aplicacions web i m\u00f2bils.<\/li>\n<\/ul>\n\n\n\n<p>Tots aquests marcs fan que Python sigui una opci\u00f3 excel\u00b7lent per al desenvolupament web, oferint una gran flexibilitat i una \u00e0mplia gamma d&#8217;eines per als desenvolupadors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PHP no necessita un marc (framework) per funcionar. <\/h2>\n\n\n\n<p>PHP \u00e9s un llenguatge de programaci\u00f3 per a servidors i es pot utilitzar directament per crear llocs web i aplicacions web. Pots escriure codi PHP des de zero i gestionar totes les parts d&#8217;una aplicaci\u00f3 web, incloent-hi el maneig de sol\u00b7licituds HTTP, interaccions amb bases de dades, autenticaci\u00f3 d&#8217;usuaris, etc.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Avantatges de no utilitzar un framework:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Flexibilitat<\/strong>: Pots personalitzar cada part del teu codi segons les teves necessitats espec\u00edfiques sense les restriccions d&#8217;un marc.<\/li>\n\n\n\n<li><strong>Control complet<\/strong>: Tens control absolut sobre l&#8217;arquitectura, l&#8217;organitzaci\u00f3 del codi i les biblioteques que utilitzes.<\/li>\n\n\n\n<li><strong>Aprenentatge<\/strong>: Aprendre a desenvolupar una aplicaci\u00f3 des de zero pot donar-te una comprensi\u00f3 m\u00e9s profunda de com funcionen les coses sota la superf\u00edcie.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Desavantatges de no utilitzar un framework:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Efic\u00e0cia<\/strong>: Pot requerir m\u00e9s temps i esfor\u00e7 construir funcionalitats que els marcs ja proporcionen de manera integrada.<\/li>\n\n\n\n<li><strong>Seguretat<\/strong>: Els marcs sovint inclouen mesures de seguretat integrades per protegir-te contra vulnerabilitats comunes, com la injecci\u00f3 SQL i els atacs CSRF.<\/li>\n\n\n\n<li><strong>Manteniment<\/strong>: Sense un marc, pot ser m\u00e9s dif\u00edcil mantenir i escalar l&#8217;aplicaci\u00f3, especialment a mesura que creix en complexitat.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Quan utilitzar un framework:<\/h3>\n\n\n\n<p>Molts desenvolupadors prefereixen utilitzar marcs (frameworks) per facilitar i agilitzar el desenvolupament. Alguns dels marcs PHP m\u00e9s populars inclouen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Laravel<\/strong>: Conegut per la seva simplicitat, eleg\u00e0ncia i una gran quantitat de funcionalitats integrades.<\/li>\n\n\n\n<li><strong>Symfony<\/strong>: Potent i flexible, ideal per a aplicacions web complexes.<\/li>\n\n\n\n<li><strong>CodeIgniter<\/strong>: Lleuger i f\u00e0cil d&#8217;aprendre, adequat per a projectes petits i mitjans.<\/li>\n\n\n\n<li><strong>Zend Framework<\/strong>: Escalable i orientat a objectes, adequat per a aplicacions empresarials.<\/li>\n<\/ul>\n\n\n\n<p>Els marcs ofereixen una estructura predefinida per al desenvolupament d&#8217;aplicacions web i venen amb una \u00e0mplia gamma de funcionalitats integrades, com autenticaci\u00f3, enrutament, ORM, validaci\u00f3 de dades i m\u00e9s. Aix\u00f2 pot estalviar-te temps i esfor\u00e7, aix\u00ed com proporcionar-te una base s\u00f2lida sobre la qual construir aplicacions segures i escalables.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>si faig clic a Mes taules\/catala\/castella, veig que apunta a localhost\/polidic\/taula_cat_cast.php?lang=cat. aix\u00f2 vol dir que entraria al fitxer: taula_cat_cast.php amb la variable $_GET= cat? Exactament! Quan fas clic a l&#8217;enlla\u00e7 &#8220;M\u00e9s taules\/Catal\u00e0\/Castell\u00e0&#8221;, l&#8217;URL apunta a http:\/\/localhost\/polidic\/taula_cat_cast.php?lang=cat. Aix\u00f2 significa que el &hellip; <a href=\"http:\/\/www.beseit.net\/?p=15919\">Continua llegint <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":8179,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-15919","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloc-de-notes"],"_links":{"self":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15919"}],"version-history":[{"count":12,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15919\/revisions"}],"predecessor-version":[{"id":15942,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/posts\/15919\/revisions\/15942"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=\/wp\/v2\/media\/8179"}],"wp:attachment":[{"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15919"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15919"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.beseit.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}