{"id":91869,"date":"2022-10-12T07:28:37","date_gmt":"2022-10-12T12:28:37","guid":{"rendered":"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/"},"modified":"2022-10-12T07:28:37","modified_gmt":"2022-10-12T12:28:37","slug":"lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/","title":{"rendered":"L\u00e4gg till autentisering till valfri PHP-app som anv\u00e4nder MySQL"},"content":{"rendered":"<div>\n<p>PHP \u00e4r ett skriptspr\u00e5k p\u00e5 serversidan med \u00f6ppen k\u00e4llkod som kan b\u00e4ddas in i HTML f\u00f6r att bygga webbapplikationer.  Den anv\u00e4nds f\u00f6r att utveckla dynamiska webbapplikationer och koppla applikationen till en databas.<\/p>\n<p>I den h\u00e4r guiden kommer du att l\u00e4ra dig hur du bygger ett autentiseringssystem med PHP- och MySQL-databaser.  Vi f\u00f6rv\u00e4ntar oss att du kan grunderna i PHP och MySQL innan du b\u00f6rjar.<\/p>\n<h2 id=\"building-the-layout-using-html-and-bulma-css\"><span class=\"ez-toc-section\" id=\"Bygga_layouten_med_HTML_och_Bulma_CSS\"><\/span>  Bygga layouten med HTML och Bulma CSS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Framsidan av detta projekt \u00e4r byggt med HTML och Bulma CSS.  Bulma CSS \u00e4r ett av de popul\u00e4ra CSS-ramverken som anv\u00e4nds f\u00f6r att designa webbsidor.  Du kan anv\u00e4nda Bulma CSS genom att importera den minifierade CSS fr\u00e5n CDN till din PHP-fil.<\/p>\n<pre>&lt;link rel=\"stylesheet\" href=\"https:\/\/cdn.jsdelivr.net\/npm\/<a rel=\"nofollow noopener\" href=\"http:\/\/ipotek.net\/cdn-cgi\/l\/email-protection\" class=\"__cf_email__\" data-cfemail=\"d9bbacb5b4b899e9f7e0f7ea\" target=\"_blank\">[email\u00a0protected]<\/a>\/css\/bulma.min.css\"&gt;<br\/><\/pre>\n<h2 id=\"integrating-mysql-database\"><span class=\"ez-toc-section\" id=\"Integrering_av_MySQL-databas\"><\/span>  Integrering av MySQL-databas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>MySQL \u00e4r ett relationsbaserat SQL-databashanteringssystem som anv\u00e4nds f\u00f6r att utf\u00f6ra CRUD-operationer p\u00e5 data.  Denna webbapplikation kommer att anv\u00e4nda <strong>phpMyAdmin<\/strong> f\u00f6r att hantera databasen.<\/p>\n<p><strong>phpMyAdmin<\/strong> \u00e4r en free mjukvaruverktyg skrivet i PHP, avsett att hantera administrationen av MySQL \u00f6ver webben.<\/p>\n<p>Du kan installera <strong>phpMyAdmin <\/strong>genom att st\u00e4lla in en WAMP-server p\u00e5 din Windows-dator (eller XAMPP p\u00e5 Linux) och bes\u00f6ka f\u00f6ljande URL<\/p>\n<pre>http:\/\/localhost\/phpmyadmin<\/pre>\n<p>Sk\u00e4rmen kommer att se ut s\u00e5 h\u00e4r:<\/p>\n<figure>\n<\/figure>\n<h2 id=\"creating-the-database\"><span class=\"ez-toc-section\" id=\"Skapar_databasen\"><\/span>  Skapar databasen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Du kan skapa databasen antingen genom att anv\u00e4nda SQL-fr\u00e5gor eller via det grafiska anv\u00e4ndargr\u00e4nssnittet som tillhandah\u00e5lls av <strong>phpMyAdmin<\/strong>.  I det h\u00e4r programmet \u00e4r namnet p\u00e5 databasen auth, och tabellnamnet \u00e4r ocks\u00e5 anv\u00e4ndare.  Tabellens attribut \u00e4r id, anv\u00e4ndarnamn, e-post och l\u00f6senord.<\/p>\n<p>S\u00e5 h\u00e4r kan du skapa databasen och tabellen med SQL-kommandon:<\/p>\n<pre>CREATE DATABASE auth;<br\/>CREATE TABLE users(<br\/>id int,<br\/>username varchar(255),<br\/>email varchar(255),<br\/>password varchar(500),<br\/>);<br\/><\/pre>\n<h2 id=\"connecting-the-app-to-the-database\"><span class=\"ez-toc-section\" id=\"Ansluter_appen_till_databasen\"><\/span>  Ansluter appen till databasen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Skapa en fil med namnet <strong>db.php<\/strong> i din projektmapp, d\u00e4r du kommer att ansluta din databas och importera den h\u00e4r filen till andra PHP-filer f\u00f6r att anv\u00e4nda den.<\/p>\n<p>Anslutningen uppr\u00e4ttas med hj\u00e4lp av <strong>mysqli_connect()<\/strong> metod.  Den h\u00e4r metoden accepterar fyra argument: servernamnet, anv\u00e4ndaren, l\u00f6senordet och databasnamnet.<\/p>\n<p>Du kan anv\u00e4nda<strong> $anslutning<\/strong> variabel n\u00e4r du k\u00f6r fr\u00e5gor genom att importera filen db.php till andra PHP-filer.<\/p>\n<pre>&lt;?php<br\/>$connection = mysqli_connect(\"localhost\", \"root\", \"\", \"auth\") ;<br\/>?&gt;<br\/><\/pre>\n<h2 id=\"sign-up-using-php\"><span class=\"ez-toc-section\" id=\"Registrera_dig_med_PHP\"><\/span>  Registrera dig med PHP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Den f\u00f6rsta fasen av att bygga ett autentiseringssystem involverar registrering eller registrering.  Frontend-layouten p\u00e5 registreringssidan har ett formul\u00e4r med en <strong>handling<\/strong> som g\u00f6r en POST-beg\u00e4ran p\u00e5 sidan.  Den har fyra inmatningsf\u00e4lt: anv\u00e4ndarnamn, e-post, l\u00f6senord och bekr\u00e4fta l\u00f6senord.<\/p>\n<pre> &lt;form class=\"card m-3 p-6 m-5 container mx-auto\" action=\"https:\/\/ipotek.net\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/.\/register.php\" method=\"POST\"&gt;<p>&lt;h1 class=\"title is-1 has-text-center\"&gt;Register Here&lt;\/h1&gt;<br\/>&lt;input class=\"input is-primary mt-4\" type=\"text\" name=\"username\" placeholder=\"Username\"&gt;<br\/>&lt;?php if ($usernameErrorMsg != \"\") echo \"&lt;p class=\"is-size-6 is-danger is-light has-text-danger\"&gt;$usernameErrorMsg&lt;\/p&gt;\" ?&gt;<\/p><p>&lt;input class=\"input is-primary mt-4\" type=\"email\" name=\"email\" placeholder=\"Email\"&gt;<br\/>&lt;?php if ($emailErrorMsg != \"\") echo \"&lt;p class=\"is-size-6 is-danger is-light has-text-danger\"&gt;$emailErrorMsg&lt;\/p&gt;\" ?&gt;<\/p><p>&lt;input class=\"input is-primary mt-4\" type=\"password\" name=\"password\" placeholder=\"Password\"&gt;<br\/>&lt;?php if ($passwordErrorMsg != \"\") echo \"&lt;p class=\"is-size-6 is-danger is-light has-text-danger\"&gt;$passwordErrorMsg&lt;\/p&gt;\" ?&gt;<\/p><p>&lt;input class=\"input is-primary mt-4\" type=\"password\" name=\"confirm-password\" placeholder=\"Confirm Password\"&gt;<br\/>&lt;?php if ($confirmPasswordErrorMsg != \"\") echo \"&lt;p class=\"is-size-6 is-danger is-light has-text-danger\"&gt;$confirmPasswordErrorMsg&lt;\/p&gt;\" ?&gt;<\/p><p>&lt;button type=\"submit\" name=\"submit\" class=\"button is-primary mt-4\"&gt;Register&lt;\/button&gt;<br\/>&lt;p class=\"mt-2 text-center\"&gt;Already have an account ? &lt;a href=\"https:\/\/ipotek.net\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/.\/login.php\"&gt;Login&lt;\/a&gt;&lt;\/p&gt; <br\/>&lt;\/form&gt;<\/p><\/pre>\n<figure>\n<\/figure>\n<p>  De <strong>isset()<\/strong> metoden kontrollerar om knappen klickas eller inte, eftersom den kan komma \u00e5t <strong>Registrera <\/strong>knappen med hj\u00e4lp av <strong>$_POST[]<\/strong>  superglobal.<\/p>\n<p>Innan allt detta m\u00e5ste du importera <strong>db.php<\/strong> fil i <strong>register.php<\/strong> fil.  Det finns ett par variabler deklarerade f\u00f6r indatavalideringen.  Kolla in koden nedan.<\/p>\n<pre>include \".\/db.php\";<br\/>$error = \"\";<br\/>$emailErrorMsg = \"\";<br\/>$usernameErrorMsg = \"\";<br\/>$passwordErrorMsg = \"\";<br\/>$confirmPasswordErrorMsg = \"\";<br\/><\/pre>\n<h2 id=\"input-validation-on-the-register-page\"><span class=\"ez-toc-section\" id=\"Inmatningsvalidering_pa_registersidan\"><\/span>  Inmatningsvalidering p\u00e5 registersidan<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Innan du forts\u00e4tter med ing\u00e5ngsvalideringen m\u00e5ste du f\u00e5 tillg\u00e5ng till v\u00e4rdena f\u00f6r de indataelement som anv\u00e4nder <strong>$_POST[]<\/strong>.<\/p>\n<p>De <strong>mysqli_real_escape_string()<\/strong> metod hj\u00e4lper till att ta bort specialtecken fr\u00e5n str\u00e4ngen eftersom de kan orsaka skadliga \u00e5tg\u00e4rder n\u00e4r du utf\u00f6r fr\u00e5geoperationer.<\/p>\n<pre>$username = mysqli_real_escape_string($connection, $_POST[\"username\"]);<br\/>$email = mysqli_real_escape_string($connection, $_POST[\"email\"]);<br\/>$password = mysqli_real_escape_string($connection, $_POST[\"password\"]);<br\/>$confirmPassword = mysqli_real_escape_string($connection, $_POST[\"confirm-password\"]);<br\/>if($username == \"\"){<br\/>$usernameErrorMsg = \"Please enter your username\";<br\/>}<br\/>if($email == \"\"){<br\/>$emailErrorMsg = \"Please enter the email\"; <br\/>}else if(!filter_var($email, FILTER_VALIDATE_EMAIL)){<br\/>$emailErrorMsg = \"Please enter a valid email\"; <br\/>}<br\/>if($password == \"\"){<br\/>$passwordErrorMsg = \"Enter your password\";<br\/>}<br\/>if($confirmPassword == \"\"){<br\/>$confirmPasswordErrorMsg = \"Enter confirm password\";<br\/>}<br\/>if(strlen($password) &lt; 6){<br\/>$passwordErrorMsg = \"Enter a password greater than 6 characters\";<br\/>}else if($password!=$confirmPassword){<br\/>$confirmPasswordErrorMsg = \"Password and Confirm Password field should be same\";<br\/>}<\/pre>\n<figure>\n<\/figure>\n<p>  F\u00f6rst och fr\u00e4mst kontrollerar du om f\u00e4lten \u00e4r tomma eller inte.  F\u00f6r e-postinmatningsf\u00e4ltet m\u00e5ste du kontrollera om anv\u00e4ndaren har angett en giltig e-post eller inte anv\u00e4nder <strong>filter_var()<\/strong> metod.  L\u00e4ngden p\u00e5 l\u00f6senordsf\u00e4ltet b\u00f6r vara st\u00f6rre \u00e4n 6. Det h\u00e4r \u00e4r de grundl\u00e4ggande valideringarna du m\u00e5ste ta hand om n\u00e4r du bygger en applikation.<\/p>\n<p>Om det inte finns n\u00e5gra fel kan du forts\u00e4tta med att utf\u00f6ra fr\u00e5gekommandon p\u00e5 <strong>register.php<\/strong> fil.<\/p>\n<pre>if($error == \"\" &amp;&amp; $emailErrorMsg == \"\" &amp;&amp; $passwordErrorMsg == \"\" &amp;&amp; $confirmPasswordErrorMsg == \"\"){<br\/>$query = \"SELECT * FROM auth WHERE email=\"$email\"\";<br\/>$findUser = mysqli_query($connection, $query);<br\/>$resultantUser = mysqli_fetch_assoc($findUser);<p>if($resultantUser){<br\/>$error = \"User already exists\";<br\/>}<br\/>$password = md5($password);<br\/>$query = \"INSERT INTO auth (username, email, password) VALUES('$username', '$email', '$password')\";<br\/>$insertUser = mysqli_query($connection, $query);<\/p><p>$_SESSION['username'] = $username;<br\/>$_SESSION['email'] = $email;<br\/>header(\"location: home.php\");<br\/>}<br\/><\/p><\/pre>\n<p>Du m\u00e5ste k\u00f6ra en fr\u00e5ga som kontrollerar om e-postmeddelandet redan finns i databasen eller inte.  De <strong>mysqli_query()<\/strong> metod anv\u00e4nds f\u00f6r att utf\u00f6ra alla fr\u00e5geoperationer.  Du m\u00e5ste skicka resultatet av fr\u00e5gan i <strong>mysqli_query_assoc()<\/strong> metod.  Denna metod konverterar resultatet till en associativ array av str\u00e4ngar.<\/p>\n<p>Om anv\u00e4ndaren redan finns m\u00e5ste du visa ett felmeddelande med meddelandet: Anv\u00e4ndaren finns redan.  Annars m\u00e5ste du infoga f\u00e4lten i databasen.  Eftersom det inte \u00e4r en bra praxis att lagra l\u00f6senordsstr\u00e4ngar i klartext, <strong>md5()<\/strong> metod konverterar l\u00f6senordet till en hash och sparar det sedan.<\/p>\n<p>N\u00e4r anv\u00e4ndaren \u00e4r lagrad i databasen m\u00e5ste du ladda anv\u00e4ndarnamnet eller e-postadressen i <strong>$_SESSION[] <\/strong>superglobal och omdirigera anv\u00e4ndaren till hemsidan.<\/p>\n<h2 id=\"a-look-at-the-home-screen\"><span class=\"ez-toc-section\" id=\"En_titt_pa_startskarmen\"><\/span>  En titt p\u00e5 startsk\u00e4rmen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Anv\u00e4ndaren kan bara komma \u00e5t startsidan om de \u00e4r inloggade. P\u00e5 startsidan m\u00e5ste du kontrollera om <strong>SESSION<\/strong> finns eller inte.  Om det finns nej <strong>SESSION<\/strong> set m\u00e5ste du omdirigera anv\u00e4ndaren till inloggningssidan.<\/p>\n<figure>\n<\/figure>\n<h2 id=\"login-using-php\"><span class=\"ez-toc-section\" id=\"Logga_in_med_PHP\"><\/span>  Logga in med PHP<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>I denna applikation kommer anv\u00e4ndaren att logga in med e-post och l\u00f6senord.  HTML-layouten f\u00f6r <strong>login.php<\/strong>:<\/p>\n<pre>&lt;form class=\"card m-3 p-6 m-5 container mx-auto\" action=\"https:\/\/ipotek.net\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/.\/login.php\" method=\"POST\"&gt;<br\/>&lt;h1 class=\"title is-1 has-text-center has-text-black\"&gt;Login Here&lt;\/h1&gt;<br\/>&lt;?php if ($error != \"\") echo \" &lt;div class=\"button is-danger is-light\"&gt;$error&lt;\/div&gt;\" ?&gt;<br\/>&lt;input class=\"input is-primary mt-4\" name=\"email\" type=\"email\" placeholder=\"Email\"&gt;<br\/>&lt;?php if ($emailErrorMsg != \"\") echo \"&lt;p class=\"is-size-6 is-danger is-light has-text-danger\"&gt;$emailErrorMsg&lt;\/p&gt;\" ?&gt;<p>&lt;input class=\"input is-primary mt-4\" name=\"password\" type=\"password\" placeholder=\"Password\"&gt;<br\/>&lt;?php if ($passwordErrorMsg != \"\") echo \"&lt;p class=\"is-size-6 is-danger is-light has-text-danger\"&gt;$passwordErrorMsg&lt;\/p&gt;\" ?&gt;<br\/>&lt;button class=\"button is-primary mt-4\" type=\"submit\" name=\"submit\"&gt;Login&lt;\/button&gt;<br\/>&lt;p&gt;Don't have an account? &lt;a href=\"https:\/\/ipotek.net\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/.\/register.php\"&gt;Register here&lt;\/a&gt;&lt;\/p&gt;<br\/>&lt;\/form&gt;<br\/><\/p><\/pre>\n<figure>\n<\/figure>\n<h2 id=\"authenticating-the-user\"><span class=\"ez-toc-section\" id=\"Autentisera_anvandaren\"><\/span>  Autentisera anv\u00e4ndaren<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Du m\u00e5ste validera inmatningarna som liknar hur det gjordes n\u00e4r du registrerade anv\u00e4ndaren.<\/p>\n<pre>$email = mysqli_real_escape_string($connection, $_POST[\"email\"]);<br\/>$password = mysqli_real_escape_string($connection, $_POST[\"password\"]);<br\/>if($email == \"\"){<br\/>$emailErrorMsg = \"Please enter the email\"; <br\/>}else if(!filter_var($email, FILTER_VALIDATE_EMAIL)){<br\/>$emailErrorMsg = \"Please enter a valid email\"; <br\/>}<br\/>if($password == \"\"){<br\/>$passwordErrorMsg = \"Enter your password\";<br\/>}<br\/><\/pre>\n<p>N\u00e4r det inte finns n\u00e5gra valideringsfel kommer v\u00e4rdena f\u00f6r inmatningsf\u00e4lten att k\u00f6ras i SQL-fr\u00e5gan.  F\u00f6r att f\u00e5 det hashade v\u00e4rdet f\u00f6r l\u00f6senordet, skicka l\u00f6senordet i <strong>md5()<\/strong> metod.<\/p>\n<pre>if($emailErrorMsg == \"\" &amp;&amp; $passwordErrorMsg == \"\"){<br\/>$password = md5($password);<br\/>$query = \"SELECT * FROM users WHERE email=\"$email\" AND password='$password'\";<br\/>$find_user = mysqli_query($connection, $query);<br\/>if(mysqli_num_rows($find_user) == 1){<br\/>$_SESSION[\"email\"] = $email;<br\/>while($row = mysqli_fetch_assoc($find_user)){<br\/>$_SESSION[\"username\"] = $row[\"username\"];<br\/>}<p>header(\"location:home.php\");<br\/>}else{<br\/>$error = \"Invalid credentials\";<br\/>}<br\/>}<br\/><\/p><\/pre>\n<figure>\n<\/figure>\n<p>  N\u00e4r du har h\u00e4mtat det hashade l\u00f6senordet skickar du e-postmeddelandet och det hashade l\u00f6senordet i SQL-fr\u00e5gan och k\u00f6r det med <strong>mysqli_query()<\/strong> metod.<\/p>\n<p>N\u00e4r du f\u00e5r resultatet m\u00e5ste du skicka det i <strong>mysqli_num_rows()<\/strong> metod.  Om <strong>mysqli_num_rows()<\/strong> metod returnerar v\u00e4rdet 1, sedan kan du autentisera anv\u00e4ndaren.<\/p>\n<p>Lagra e-post och anv\u00e4ndarnamn i <strong>$_SESSION[]<\/strong>  och omdirigera anv\u00e4ndaren till hemsidan.<\/p>\n<h2 id=\"logout-the-user\"><span class=\"ez-toc-section\" id=\"Logga_ut_anvandaren\"><\/span>  Logga ut anv\u00e4ndaren<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Anv\u00e4ndarautentisering g\u00f6rs med hj\u00e4lp av <strong>$_SESSION[]<\/strong>  superglobal.  F\u00f6r att logga ut anv\u00e4ndaren m\u00e5ste du f\u00f6rst\u00f6ra <strong>SESSION<\/strong> och omdirigera anv\u00e4ndaren till <strong>login.php<\/strong>.<\/p>\n<pre> session_start();<br\/>$_SESSION = array();<br\/>session_destroy();<br\/>header(\"Location: login.php\");<br\/>exit;<\/pre>\n<h2 id=\"a-secure-authentication-system-is-important\"><span class=\"ez-toc-section\" id=\"Ett_sakert_autentiseringssystem_ar_viktigt\"><\/span>  Ett s\u00e4kert autentiseringssystem \u00e4r viktigt<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Du har redan l\u00e4rt dig att l\u00e4gga till ett autentiseringssystem med PHP och MySQL.  Du kan ta det h\u00e4r projektet till n\u00e4sta niv\u00e5 genom att l\u00e4gga till mer avancerade funktioner till det eller integrera det h\u00e4r systemet i ett storskaligt projekt som en app f\u00f6r sociala medier, en bloggsida eller n\u00e5got st\u00f6rre projekt.  Forts\u00e4tt l\u00e4ra dig och bygga nya saker s\u00e5 mycket du kan.<\/p>\n<p>Vill du l\u00e4ra dig mer om PHP?  Det finns m\u00e5nga manipulationer du kan g\u00f6ra med r\u00e4tt PHP-kunskap.<\/p>\n<p>    <strong class=\"section-sub-title\">Om f\u00f6rfattaren<\/strong><\/p>\n<p>            <strong class=\"bio-title\">Unnati Bamania (14 artiklar publicerade)<br \/><\/strong><\/p>\n<p>Unnati \u00e4r en entusiastisk fullstack-utvecklare.  Hon \u00e4lskar att bygga projekt med hj\u00e4lp av olika programmeringsspr\u00e5k.  I henne free tid, hon \u00e4lskar att spela gitarr och \u00e4r en matlagningsentusiast. <\/p>\n<p>                            Mer fr\u00e5n Unnati Bamania<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Prenumerera_pa_vart_nyhetsbrev\"><\/span>Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>G\u00e5 med i v\u00e5rt nyhetsbrev f\u00f6r tekniska tips, recensioner, free e-b\u00f6cker och exklusiva erbjudanden!<\/p>\n<p>Klicka h\u00e4r f\u00f6r att prenumerera<\/p>\n<\/p><\/div>\n  <div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Bygga_layouten_med_HTML_och_Bulma_CSS\" >Bygga layouten med HTML och Bulma CSS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Integrering_av_MySQL-databas\" >Integrering av MySQL-databas<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Skapar_databasen\" >Skapar databasen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Ansluter_appen_till_databasen\" >Ansluter appen till databasen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Registrera_dig_med_PHP\" >Registrera dig med PHP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Inmatningsvalidering_pa_registersidan\" >Inmatningsvalidering p\u00e5 registersidan<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#En_titt_pa_startskarmen\" >En titt p\u00e5 startsk\u00e4rmen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Logga_in_med_PHP\" >Logga in med PHP<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Autentisera_anvandaren\" >Autentisera anv\u00e4ndaren<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Logga_ut_anvandaren\" >Logga ut anv\u00e4ndaren<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Ett_sakert_autentiseringssystem_ar_viktigt\" >Ett s\u00e4kert autentiseringssystem \u00e4r viktigt<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/blogging-techies.com\/sw\/lagg-till-autentisering-till-valfri-php-app-som-anvander-mysql\/#Prenumerera_pa_vart_nyhetsbrev\" >Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n ","protected":false},"excerpt":{"rendered":"<p>PHP \u00e4r ett skriptspr\u00e5k p\u00e5 serversidan med \u00f6ppen k\u00e4llkod som kan b\u00e4ddas in i HTML f\u00f6r att bygga webbapplikationer. Den anv\u00e4nds f\u00f6r att utveckla dynamiska webbapplikationer och koppla applikationen till en databas. I den h\u00e4r guiden kommer du att l\u00e4ra dig hur du bygger ett autentiseringssystem med PHP- och MySQL-databaser. Vi f\u00f6rv\u00e4ntar oss att du [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":91870,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[5],"tags":[16,33975,18023,45140,45391,475,32573],"class_list":["post-91869","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloggar","tag-anvander","tag-autentisering","tag-lagg","tag-mysql","tag-phpapp","tag-som","tag-valfri"],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/91869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/comments?post=91869"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/91869\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media\/91870"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media?parent=91869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/categories?post=91869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/tags?post=91869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}