HTML och PHP - att separera eller inte separera

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001

HTML och PHP - att separera eller inte separera

Hej,

I dag kör HTML med inbäddad PHP i filer med filändelsen .php och allting fungerar som det ska via de webbläsare jag har testat.
Till saken hör den att mitt spel som jag håller på att utveckla också behöver kunna anropa de inbäddade PHP-skripten men då de ligger inbäddade i HTML så får jag tillbaka hela websidan tillbaka till min klient, vilket inte är helt optimalt.

Som den absoluta nybörjare på webbutveckling jag är så ser jag två lösningar på problemet:
1. Separera HTML och PHP och låta spelklienten ansluta direkt till PHP-skriptet (http://www.minserver.se/login.php) och anropa PHP-skriptet från HTML (http://www.minserver.se/login.html)
2. Skicka med en _POST-variabel från spelklienten och ignorera HTML-output om den är satt

Hoppas ni förstår mitt dilemma och min terminologi...

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Avstängd
Registrerad
Dec 2015

@Wixner

Förstår inte riktigt vad det är du menar, html och php funkar utmärkt ihop, dock så är det html som är inbäddat i php om du använder filändelsen .php

Dvs typ nåt i stil med:

<?php echo "<a href='lank.html'>Länk</a>"; ?>

Ett inloggningsscript är oftast först en login_formulär.html -> login_script.php -> inloggad.php

Sen om du gör ett spel gissar jag på att du kör sessions?

Sen om du har renodlade script som behövs på olika sidor, kör inte scripten rent inbäddat på sidan, använd då include istället och gör separata filer för dina olika scripts:

vars.php <?php $color = 'green'; $fruit = 'apple'; ?> test.php <?php echo "A $color $fruit"; // A include 'vars.php'; echo "A $color $fruit"; // A green apple ?>

My setup:
[Intel Core i7-5960X @ 4ghz] - [Asus X99-deluxe] - [48GB Corsair Dominator Platinum] - [Geforce Gtx 780TI SLI] - [Corsair AX1200i] - [Kingston 240GB SSD m.2] - [4x 64GB OCZ-Vertex SSD in raid] - [6x 2TB Wd Red] - [Asus ROG SWIFT PG278Q]

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001

Jag förstår om det låter lite dimmigt

Allting (registrering, inloggning, sessioner) fungerar utmärkt med inbäddad PHP likt den nedan

<html> <?php echo "phpversion();" ?> </html>

men eftersom att min spelklient ansluter till samma sida (www.minserver.se/login.php) så får jag all HTML samt den processade PHP-koden tillbaka som svar, istället för bara resultatet av PHP-koden.

Så frågeställningen är den likt jag tidigare nämnde: Ska jag separera PHP från HTML och skicka spelklienten direkt på PHP-skriptet och webbläsare mot HTML (som i sin tur inkluderar PHP-skriptet) eller om jag ska fortsätta köra med inbäddad PHP i HTML och skicka med en _POST-variabel från spelklienten som tolkas av PHP-skriptet och inaktiverar HTML

<?php if(isset(_POST['game'])) { // .. bara PHP-output } else { ?> <html> ... </html> <?php } ?>

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Avstängd
Registrerad
Dec 2015

@Wixner:
Läs redigeringen av mitt inlägg

Kan även säga det , att bygga ett spel som nybörjade i php eller html, det är nog inget du ska satsa på.

Lär dig först hur det fungerar, hur man bygger enklare sidor, jag har hållt på med hemsidor i 10 år och har byggt ett x antal spel.

Du kommer använda dig av ofantligt många IF-satser, du kommer använda dig av enormt mkt sql och sessions, kan du inget av det, då bör du titta på lite tutorials om det.

Annars kan du bara pma mig så ska jag hjälpa dig

My setup:
[Intel Core i7-5960X @ 4ghz] - [Asus X99-deluxe] - [48GB Corsair Dominator Platinum] - [Geforce Gtx 780TI SLI] - [Corsair AX1200i] - [Kingston 240GB SSD m.2] - [4x 64GB OCZ-Vertex SSD in raid] - [6x 2TB Wd Red] - [Asus ROG SWIFT PG278Q]

Trädvy Permalänk
Entusiast
Testpilot
Plats
Chalmers
Registrerad
Aug 2011

Om du vill kunna anropa serversidekod asynkront kanske AJAX (XMLHttpRequest) är det du söker?

Är det ett onlinespel du utvecklar? Annars kan du ju göra allt i JavaScript.

5930K • Corsair DP 32 GiB • EVGA GTX 980 • 2x Swift PG278Q
Better SweClockersDisplayPort över USB-C

Köp processor för framtiden™, men inte grafikkort.

Trädvy Permalänk
Medlem
Plats
Luleå
Registrerad
Mar 2015

Jag förstår inte riktigt frågan men ska försöka hjälpa iaf.
Om jag förstår rätt så vill du enbart att användare ska komma åt html sidan och inte php skripten?
Det du kan göra är att skicka vidare användaren vid inloggning från html sidan till php skriptet med hjälp av _post anropet.

Andra alternativet är att du ger dig in på att läsa om javascript och ajax anrop vars användaren aldrig skickas ifrån html sidan utan allt sköts med Javascript ist.

Hoppas du förstår annars får jag försöka förklara bättre.

CPU: i7-6700k @ 4,0Ghz GPU: Asus GTX 980 STRIX 4GB DDR5
Mobo: ASUS Z170-A - ATX / Z170 / DDR4 / 1151
RAM: Corsair Vengeance LPX 16GB DDR4 / 2666MHz
SSD: 2x120gb Samsung 850 EVO 120GB
Låda: Fractal Design Define R5 - Black Pearl

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001
Skrivet av dallan87:

@Wixner:
Läs redigeringen av mitt inlägg

Kan även säga det , att bygga ett spel som nybörjade i php eller html, det är nog inget du ska satsa på.

Lär dig först hur det fungerar, hur man bygger enklare sidor, jag har hållt på med hemsidor i 10 år och har byggt ett x antal spel.

Du kommer använda dig av ofantligt många IF-satser, du kommer använda dig av enormt mkt sql och sessions, kan du inget av det, då bör du titta på lite tutorials om det.

Annars kan du bara pma mig så ska jag hjälpa dig

Skrivet av Alling:

Om du vill kunna anropa serversidekod asynkront kanske AJAX (XMLHttpRequest) är det du söker?

Är det ett onlinespel du utvecklar? Annars kan du ju göra allt i JavaScript.

Jag ber om ursäkt om jag varit lite luddig i vad det är jag utvecklar

Spelet kommer inte vara 'online' i den bemärkelse att man spelar med eller mot varandra i realtid utan spelklienterna kommer bara dela gemensam data (som ligger i en databas som kräver autentisering) och kommer vara utvecklat med Unity3D. Det enda som kommer att förläggas till webben är ett frontend mot databasen.

Jag har erfarenhet av både MSSQL, MySQL, C# och Unity3D så spelutvecklingen i sig kommer inte vara några problem, det är bara webbutveckligen som jag inte har erfarenhet av.

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001
Skrivet av dallan87:

@Wixner:
Läs redigeringen av mitt inlägg

Kan även säga det , att bygga ett spel som nybörjade i php eller html, det är nog inget du ska satsa på.

Lär dig först hur det fungerar, hur man bygger enklare sidor, jag har hållt på med hemsidor i 10 år och har byggt ett x antal spel.

Du kommer använda dig av ofantligt många IF-satser, du kommer använda dig av enormt mkt sql och sessions, kan du inget av det, då bör du titta på lite tutorials om det.

Annars kan du bara pma mig så ska jag hjälpa dig

Det är precis det jag har som ett av lösningsförslagen - spelklienten pratar direkt med PHP-skriptet, och webbläsarna pratar med HTML som inkluderar dessa script, men då "Best Practise" för HTML/PHP verkar vara inbäddning så funderar jag på om det är rätt väg att gå

WEB KLIENT ^ ^ | | HTML <- PHP

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Avstängd
Registrerad
Dec 2015
Skrivet av Wixner:

Det är precis det jag har som ett av lösningsförslagen - spelklienten pratar direkt med PHP-skriptet, och webbläsarna pratar med HTML som inkluderar dessa script, men då "Best Practise" för HTML/PHP verkar vara inbäddning så funderar jag på om det är rätt väg att gå

Såg ditt inlägg att du jobbar i unity och med C# .
Varför inte göra en asp.net sida istället?
Menar om du kan C# så är väl det betydligt lättare plus att du får väl bättre intrignation med unity?

Vad är det sidan ska vara till?

Jag har också hållt på en del med unity och c#.

My setup:
[Intel Core i7-5960X @ 4ghz] - [Asus X99-deluxe] - [48GB Corsair Dominator Platinum] - [Geforce Gtx 780TI SLI] - [Corsair AX1200i] - [Kingston 240GB SSD m.2] - [4x 64GB OCZ-Vertex SSD in raid] - [6x 2TB Wd Red] - [Asus ROG SWIFT PG278Q]

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001

@dallan87:

Att köra under ASP kräver (?) licenser, med PHP finns det oändligt med möjligheter att köra gratis

Sidan ska, som jag nämnde i ett tidigare svar, bara agera frontend för att läsa/skriva data till/från ett mysql-galerakluster

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Wixner:

Hej,

I dag kör HTML med inbäddad PHP i filer med filändelsen .php och allting fungerar som det ska via de webbläsare jag har testat.
Till saken hör den att mitt spel som jag håller på att utveckla också behöver kunna anropa de inbäddade PHP-skripten men då de ligger inbäddade i HTML så får jag tillbaka hela websidan tillbaka till min klient, vilket inte är helt optimalt.

Som den absoluta nybörjare på webbutveckling jag är så ser jag två lösningar på problemet:
1. Separera HTML och PHP och låta spelklienten ansluta direkt till PHP-skriptet (http://www.minserver.se/login.php) och anropa PHP-skriptet från HTML (http://www.minserver.se/login.html)
2. Skicka med en _POST-variabel från spelklienten och ignorera HTML-output om den är satt

Hoppas ni förstår mitt dilemma och min terminologi...

Efter att ha läst igenom tråden antar jag att du vill att spelet ska kommunicera med spelservern genom ett webbapi. Det känns otroligt bökigt att använda en PHP-fil för att hantera all serverkommunikation och dessutom serva en webbplats till besökare. Finns det någon särskild anledning till att du vill ha det så?

Egentligen tycker jag att du av säkerhetsskäl bör du separera webbplatsen och webbapiet ännu mer och se dem som två helt separata tjänster, där åtminstone webbapiet kräver autentisering.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Webbutvecklare
Moderator
Plats
::1
Registrerad
Dec 2002
Skrivet av Wixner:

Så frågeställningen är den likt jag tidigare nämnde: Ska jag separera PHP från HTML och skicka spelklienten direkt på PHP-skriptet och webbläsare mot HTML (som i sin tur inkluderar PHP-skriptet) eller om jag ska fortsätta köra med inbäddad PHP i HTML och skicka med en _POST-variabel från spelklienten som tolkas av PHP-skriptet och inaktiverar HTML

Om du vill kunna få tillbaks svar på flera olika sätt eller skriver något större än enstaka scripts så är det en god idé att separera presentationslogik (mallhanteringen) från övrig applikationslogik; kort sammanfattat så behöver din request hanteras av ett script som bedömer vad som behöver utföras, delegerar till rätt komponenter och när allt annat är klart returnerar ett svar till klienten (ofta genom att sammanställa värden som ska presenteras för en mall till ett HTML-dokument). Att skicka med en parameter som kontrollerar vilken typ av svar som ska ges är en enkel början, men för att göra det överskådligare vill du nog snart försöka strukturera upp det över flera filer och moduler som är oberoende av varandra.

Skrivet av Wixner:

Det är precis det jag har som ett av lösningsförslagen - spelklienten pratar direkt med PHP-skriptet, och webbläsarna pratar med HTML som inkluderar dessa script, men då "Best Practise" för HTML/PHP verkar vara inbäddning så funderar jag på om det är rätt väg att gå

Din spelklient och webbläsare är båda klienter som antagligen kommer använda HTTP för att kommunicera med servern, den avgör i sin tur hur en inkommande request ska hanteras och besvaras. HTML utför inga uppgifter och är inget man kan "prata med" utan är bara ett av många format du kan välja att skicka som svar, andra exempel kan vara XML, JSON eller bilder. PHP å andra sidan är ett scriptspråk och om din server är konfigurerad för det så kan den delegera requests till dess tolk istället.

Hanteras den av PHP-tolken så kommer den ignorera allt utanför sina öppnings-/avslutningstaggar (<?php ... ?>) och bara skicka med det som del av svaret till klienten. Om det är HTML eller något annat påverkar inte det direkt, men normalfallet är att informera klienten att svaret består av HTML i någon form (se HTTP headers: Content-Type) och därför kommer enkla scripts med blandad HTML och PHP oftast se ut som väntat i webbläsare utan extra jobb. Vad du kallar "best practice" ovan är antingen sådana eller mallar som är avsedda att inkluderas i ett annat sammanhang, men i större projekt bör de bara innehålla presentationslogik.

Abstractions all the way down.

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001
Skrivet av Teknocide:

Efter att ha läst igenom tråden antar jag att du vill att spelet ska kommunicera med spelservern genom ett webbapi. Det känns otroligt bökigt att använda en PHP-fil för att hantera all serverkommunikation och dessutom serva en webbplats till besökare. Finns det någon särskild anledning till att du vill ha det så?

Egentligen tycker jag att du av säkerhetsskäl bör du separera webbplatsen och webbapiet ännu mer och se dem som två helt separata tjänster, där åtminstone webbapiet kräver autentisering.

Den enda anledningen är egentligen gemensam PHP-kodbas då både websidan och spelklienten (än så länge) har samma funktionalitet (registrera konto, validera konto och logga in / ut)

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Wixner:

Den enda anledningen är egentligen gemensam PHP-kodbas då både websidan och spelklienten (än så länge) har samma funktionalitet (registrera konto, validera konto och logga in / ut)

Du kan låta webbplatsens server anropa webapi:et för att sköta in- och utloggning, nyregistrering osv. På så vis kan spelklienten och webbplatsen dela datakälla, samtidigt som du slipper blanda HTML och ren speldata i samma service.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001

Nu ska vi se om jag kan göra mig lite bättre förstådd; nedan har ni min nuvarande login.php utan modifikationer:

<!-- TODO + create login-form + create feedback-forms - log all errors to a database and send an administrative email ini_set('display_errors', 'On'); error_reporting(E_ALL); --> <?php include_once './lib/bytewizards/class.Session.php'; $session = new Bytewizards\Session(); session_set_save_handler($session, true); session_start(); if(isset($_SESSION['id'])) { header("Location: /profile.php"); exit(); } ?> <!doctype html> <html class="no-js" lang=""> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>Bytewizards Account</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="apple-touch-icon" href="apple-touch-icon.png"> <!-- Place favicon.ico in the root directory --> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/main.css"> <link rel="stylesheet" href="css/login.css"> <script src="js/vendor/modernizr-2.8.3.min.js"></script> </head> <body> <!--[if lt IE 8]> <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> <![endif]--> <!-- Add your site or application content here --> <?php try { $dsn = 'mysql:host='.'localhost'.';dbname='.'bytewizards.se;charset=utf8'; $options = array( PDO::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ); $pdo = new PDO($dsn, 'root', '', $options); if(isset($_POST['login'])) { $statement = $pdo->prepare('SELECT id, username, password, verified FROM accounts WHERE username = :username'); $statement->bindParam(':username', $_POST['username']); $statement->execute(); if($statement->rowCount()) { $account = $statement->fetch(PDO::FETCH_ASSOC); if(password_verify($_POST['password'], $account['password'])) { if($account['verified']) { $_SESSION['id'] = $account['id']; header('Location: /profile.php'); exit(); } else { echo "valid username and pasword, but account needs to be validated"; } } else { echo "invalid password (to be ofuscated)"; } } else { echo "invalid username (to be obfuscated)"; } } else { ?> <form action="" id="form" name="form" method="post"> <div id="tab-content2" class="tab-content"> <center> Username<br><input type="email" name="username" id="username" required><br> Password<br><input type="password" name="password" id="password" required><br><br> <input type="submit" value="Login" name="login" id="login-button"> </center> </div> </form> <?php } } catch(PDOException $exception) { echo $exception->getMessage(); } ?> <script src="https://code.jquery.com/jquery-{{JQUERY_VERSION}}.min.js"></script> <script>window.jQuery || document.write('<script src="js/vendor/jquery-{{JQUERY_VERSION}}.min.js"><\/script>');</script> <script src="js/plugins.js"></script> <script src="js/main.js"></script> <script src="js/verify.js"></script> <!-- Google Analytics: change UA-XXXXX-Y to be your site's ID. --> <script> window.ga=function(){ga.q.push(arguments);};ga.q=[];ga.l=+new Date; ga('create','UA-XXXXX-Y','auto');ga('send','pageview'); </script> <script src="https://www.google-analytics.com/analytics.js" async defer></script> </body> </html>

Dold text

och som @Tunnelsork säger så använder Unity HTTP för att kommunicera med ovan angivna fil för att försöka autentisera sig, vilket den också gör om jag anger ett existerade användarnamn och lösenord i _POST (komponeras från WWWForm i Unity). Problemet är att jag får hela sidan, komplett med HTML och processad PHP som svar.

Min tanke är då att bryta ut all PHP-logik till en egen fil (login.php) och byta namn på den fil som bara innehåller html till login.html.
Spelklienten kan nu kommunicera direkt med login.php utan att få HTML-kod i svaret och webläsare kan nå samma funktionalitet, via login.html (som anropar, inkluderar) login.php.

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Wixner:

Nu ska vi se om jag kan göra mig lite bättre förstådd; nedan har ni min nuvarande login.php utan modifikationer:

<!-- TODO + create login-form + create feedback-forms - log all errors to a database and send an administrative email ini_set('display_errors', 'On'); error_reporting(E_ALL); --> <?php include_once './lib/bytewizards/class.Session.php'; $session = new Bytewizards\Session(); session_set_save_handler($session, true); session_start(); if(isset($_SESSION['id'])) { header("Location: /profile.php"); exit(); } ?> <!doctype html> <html class="no-js" lang=""> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <title>Bytewizards Account</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="apple-touch-icon" href="apple-touch-icon.png"> <!-- Place favicon.ico in the root directory --> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/main.css"> <link rel="stylesheet" href="css/login.css"> <script src="js/vendor/modernizr-2.8.3.min.js"></script> </head> <body> <!--[if lt IE 8]> <p class="browserupgrade">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> <![endif]--> <!-- Add your site or application content here --> <?php try { $dsn = 'mysql:host='.'localhost'.';dbname='.'bytewizards.se;charset=utf8'; $options = array( PDO::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ); $pdo = new PDO($dsn, 'root', '', $options); if(isset($_POST['login'])) { $statement = $pdo->prepare('SELECT id, username, password, verified FROM accounts WHERE username = :username'); $statement->bindParam(':username', $_POST['username']); $statement->execute(); if($statement->rowCount()) { $account = $statement->fetch(PDO::FETCH_ASSOC); if(password_verify($_POST['password'], $account['password'])) { if($account['verified']) { $_SESSION['id'] = $account['id']; header('Location: /profile.php'); exit(); } else { echo "valid username and pasword, but account needs to be validated"; } } else { echo "invalid password (to be ofuscated)"; } } else { echo "invalid username (to be obfuscated)"; } } else { ?> <form action="" id="form" name="form" method="post"> <div id="tab-content2" class="tab-content"> <center> Username<br><input type="email" name="username" id="username" required><br> Password<br><input type="password" name="password" id="password" required><br><br> <input type="submit" value="Login" name="login" id="login-button"> </center> </div> </form> <?php } } catch(PDOException $exception) { echo $exception->getMessage(); } ?> <script src="https://code.jquery.com/jquery-{{JQUERY_VERSION}}.min.js"></script> <script>window.jQuery || document.write('<script src="js/vendor/jquery-{{JQUERY_VERSION}}.min.js"><\/script>');</script> <script src="js/plugins.js"></script> <script src="js/main.js"></script> <script src="js/verify.js"></script> <!-- Google Analytics: change UA-XXXXX-Y to be your site's ID. --> <script> window.ga=function(){ga.q.push(arguments);};ga.q=[];ga.l=+new Date; ga('create','UA-XXXXX-Y','auto');ga('send','pageview'); </script> <script src="https://www.google-analytics.com/analytics.js" async defer></script> </body> </html>

Dold text

och som @Tunnelsork säger så använder Unity HTTP för att kommunicera med ovan angivna fil för att försöka autentisera sig, vilket den också gör om jag anger ett existerade användarnamn och lösenord i _POST (komponeras från WWWForm i Unity). Problemet är att jag får hela sidan, komplett med HTML och processad PHP som svar.

Min tanke är då att bryta ut all PHP-logik till en egen fil (login.php) och byta namn på den fil som bara innehåller html till login.html.
Spelklienten kan nu kommunicera direkt med login.php utan att få HTML-kod i svaret och webläsare kan nå samma funktionalitet, via login.html (som anropar, inkluderar) login.php.

Om du med "anropar, inkluderar" menar att du på login.html skapar ett formulär som låter besökaren POSTa data till login.php så kan det fungera. Det är i princip samma sak som jag pratar om i inlägget ovan.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001

@Teknocide:

Japp - Min terminologi är väl inte riktigt 100%-ig, eller inte ens 20%-ig antar jag
Då separeras ju presentationslogik (HTML) från applikationslogik (PHP) och då frångår man ju de "Best Practices" som jag hittat att man inte bör separera dessa...

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Medlem
Plats
i din garderob
Registrerad
Sep 2007
Skrivet av Wixner:

@Teknocide:

Japp - Min terminologi är väl inte riktigt 100%-ig, eller inte ens 20%-ig antar jag
Då separeras ju presentationslogik (HTML) från applikationslogik (PHP) och då frångår man ju de "Best Practices" som jag hittat att man inte bör separera dessa...

Det brukar vanligtvis anses vara en bra grej att separera ansvarsområden (Separation of concerns) då det möjliggör återanvändning eller omskrivning av applikationslogik utan att röra gränssnittet.

Bilanaloger är som Volvo — varenda svenne kör med dem

Trädvy Permalänk
Medlem
Plats
Skellefteå
Registrerad
Maj 2003
Skrivet av Wixner:

@dallan87:

Att köra under ASP kräver (?) licenser, med PHP finns det oändligt med möjligheter att köra gratis

Sidan ska, som jag nämnde i ett tidigare svar, bara agera frontend för att läsa/skriva data till/från ett mysql-galerakluster

Licenser? Varför skulle det kosta att köra asp.net?

Med Visual Studio kan du stortsett klicka dig fram en bootstrap "frontend" för att läsa och skriva till din databas.

Utvecklare (Technical Director) / Delägare - Björnmamman | Printler - En marknadsplats för fotokonst

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001
Skrivet av Madsoul:

Licenser? Varför skulle det kosta att köra asp.net?

Med Visual Studio kan du stortsett klicka dig fram en bootratp "frontend" för att läsa och skriva till din databas.

Jag var lite luddig där med (inte bra att skriva forumtrådar när man jobbar) - det jag menar är ju förstås, så vitt jag vet att ASP.NET måste snurra på en windowsplattform, därav en licenskostnad

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Sep 2012
Skrivet av Wixner:

@Teknocide:

Japp - Min terminologi är väl inte riktigt 100%-ig, eller inte ens 20%-ig antar jag
Då separeras ju presentationslogik (HTML) från applikationslogik (PHP) och då frångår man ju de "Best Practices" som jag hittat att man inte bör separera dessa...

Inte alls, generellt bör man separera presentation från logik. På så vis kan de som utvecklar front-end på ett enkelt och överskådligt vis göra det utan att behöva förstå eller råka förstöra logiken. Självklart får man avgöra från fall till fall hur långt man vill dra det, och webbspråk som PHP är designade för att kunna blanda hejvilt om man så önskar.

En bra kompromiss i just PHP brukar vara att man blandar markup med presentationslogik, medans applikationslogiken får bo någon annanstans.

Trädvy Permalänk
Medlem
Plats
Skellefteå
Registrerad
Maj 2003
Skrivet av Wixner:

Jag var lite luddig där med (inte bra att skriva forumtrådar när man jobbar) - det jag menar är ju förstås, så vitt jag vet att ASP.NET måste snurra på en windowsplattform, därav en licenskostnad

Ah du tänkte så. Jag skulle rekommendera att du kollar på molntjänster eller en vps host, som ej tar betalt för OS.

Ontopic: rekommenderar dig att kolla in Laravel (eller liknande) och bygg ett enkelt api. Harva inte runt med en blandning av markup och php =).

Logik och presentation ska alltid separeras.

Skickades från m.sweclockers.com

Utvecklare (Technical Director) / Delägare - Björnmamman | Printler - En marknadsplats för fotokonst

Trädvy Permalänk
Medlem
Plats
Hudiksvall
Registrerad
Jul 2001

Jag tackar samtliga i tråden för all hjälp.

Logik och Presentation har separerats, men Logik har även delats in i två: Web och Klient och nu fungerar allting som det ska, oavsett vilken väg du kommer.

Tack för input

{ Supermicro X10SRi-F | Intel Xeon E5-2620v3 | 64GiB DDR4 | LSI 9207-8i | 4x250GiB Samsung 840 EVO } @ Supermicro CSE216E16-R1200LPB