PHP | ||
---|---|---|
Utvikler(e) | ||
PHP Group https://www.php.net | ||
Generell informasjon | ||
Vanlige utvidelser | .php, .phtml, .php3, .php4, .php5, .php7, .phps, .php-s, .pht_.phar | |
Paradigme | Multi -paradigme : imperativ , funksjonell , objektorientert , prosedyremessig , refleksiv | |
Dukket opp i | nitten nitti fem | |
Designet av | Rasmus Lerdorf | |
Siste stabile versjon | 8.1.7 [ 1 ] ( 9. juni 2022 (4 måneder og 6 dager)) | |
type system | dynamisk , svak | |
implementeringer | Zend Engine , HHVM , Phalanger , Quercus, Project Zero, Parrot | |
påvirket av | Perl , C , C++ , Java , Tcl | |
har påvirket | Falcon , Hack | |
Operativsystem | Unix-lignende , Windows | |
Tillatelse | PHP-lisens | |
PHP er et generell programmeringsspråk som er spesielt egnet for webutvikling . [ 2 ] Den ble opprinnelig opprettet av den dansk - kanadiske programmereren Rasmus Lerdorf i 1994. [ 3 ] For tiden er referanseimplementeringen av PHP produsert av The PHP Group. [ 4 ] PHP sto opprinnelig for Personal Home Page , men står nå for den rekursive initialismen [ n 1 ] PHP: Hypertext Preprocessor . [ 6 ]
PHP-kode behandles vanligvis på en webserver av en PHP- tolk implementert som en modul , en daemon eller som en kjørbar Common Gateway Interface (CGI) . På en webserver vil resultatet av den tolkede og utførte PHP-koden – som kan være alle typer data, for eksempel genererte HTML- eller binære bildedata – utgjøre hele eller deler av et HTTP -svar . Det finnes ulike malsystemer , innholdsstyringssystemer og rammeverk som kan brukes til å organisere eller lette genereringen av den responsen. På den annen side kan PHP brukes til mange programmeringsoppgaver utenfor nettkonteksten, for eksempel frittstående grafiske applikasjoner [ 7 ] og dronekontroll . [ 8 ] Du kan også tolke og kjøre hvilken som helst PHP-kode gjennom et kommandolinjegrensesnitt (CLI).
Standard PHP-tolken, drevet av Zend Engine , er gratis programvare utgitt under PHP-lisensen . PHP har blitt mye portert og kan distribueres på de fleste webservere på nesten alle operativsystemer og plattformer , gratis.
PHP-språket utviklet seg uten en formell skriftlig spesifikasjon eller standard frem til 2014, med den opprinnelige implementeringen som fungerte som de facto -standarden som andre implementeringer prøvde å følge. Siden 2014 har det pågått arbeid med å lage en formell PHP-spesifikasjon. [ 9 ]
Fra april 2020 var mer enn halvparten av nettstedene på nettet som bruker PHP, fortsatt på den utgåtte [ 10 ] versjonen 5.6 eller tidligere. [ 11 ] og med versjon 7.0 og 7.1 over 68 %, som ikke offisielt støttes av PHP Development Team, [ 12 ] mens sikkerhetsstøtte tilbys av tredjeparter, som Debian (til juni 2020 for PHP5). [ 13 ] I tillegg sluttet versjon 7.2, den mest populære støttede versjonen, å motta sikkerhetsoppdateringer 30. november 2020. [ 10 ]
PHP kan distribueres på de fleste webservere og på alle operativsystemer og plattformer uten kostnad. PHP-språket er installert på mer enn 20 millioner nettsteder og en million servere. Migrering av PHP-baserte tjenester til de nye teknologiene som dukker opp innebærer en kostnad som må begrunnes økonomisk (spesielt når det gjelder maskinvare og ytelse), for å diskutere om antallet PHP-baserte nettsteder har blitt gradvis redusert de siste årene. de siste årene, med fremkomsten av nye teknologier som Node.js , Golang, ASP.NET , etc., eller ikke, betyr det å åpne en debatt som ikke er blottet for feilslutninger og demagogiske argumenter. Det er et bevist faktum at i næringslivet blir ting bare endret når det vil føre til en strategisk fordel i markedet. Bedrifter mangler en følelse som polariserer "følelsene" deres, og dukker opp et mønster av merkantilistisk posisjonering til fordel for eller mot noe bare på grunn av en nedsettende følelse mot visse teknologier, slik som skjer med verden av Linux, Windows og/eller Mac i brukernes rike .
Å kunne lage en oversikt over hvordan PHP utvikler seg i dag er å snakke om de nye tilgjengelige bibliotekene, bruken av arrays, [ 14 ] håndtering av heltall, behandling av kryptografi ved bruk av en Base64, [ 15 ] [ 16 ] [ 17 ] Nettskraping , webindeksering , dataforkoking , Big Data, datasett , dataovervåking , dimensjonsforslagssett . Som vi kan se, er en generell visjon av dette språket mye mer kompleks enn å si at det er et språk for webutvikling. Denne virkeligheten ligger til grunn for utseendet til xyz-domener, hvis formål og spesialitet er bufring av PHP-tjenester for å betjene innhold med en ytelsesorientering knyttet til tjenester for forbruk av andre tjenester som trenger data, for eksempel AI-er der PHP ser en velkommen med en følelse av tillit til resultatene som skal oppnås (uten å ha til hensikt å tjene som et AI-orientert språk, siden det ikke var dets opprinnelige konseptualisering). Selv om markedsføringen som denne typen domener mottar er relatert til de nye generasjonene av mennesker som er utdannet i nye teknologier [ 18 ] Som en del av den generelle visjonen bør et siste aspekt inkluderes, og det er evnen til å generere lag med selv- avhengig sikkerhet, i et paradigme som bare dukker opp takket være bibliotekene som PHP har (i utviklingsprosessen).
Wikipedia- nettstedet er utviklet i PHP. [ 19 ] Det er også den mest populære Apache - modulen blant datamaskiner som bruker Apache som webserver.
PHPs nære likhet med mer vanlige strukturerte programmeringsspråk , som C og Perl , gjør at de fleste programmerere kan lage komplekse applikasjoner med en veldig kort læringskurve . Det lar dem også bli involvert i dynamiske innholdsapplikasjoner uten å måtte lære et helt nytt sett med funksjoner.
Selv om alt i designet er rettet mot å lette opprettelsen av nettsteder, er det mulig å lage applikasjoner med et grafisk brukergrensesnitt , ved å bruke en utvidelse som PHP-Qt , PHP-GTK , [ 20 ] WxPHP, WinBinder, Roadsend PHP, Phalanger , Phc eller HiP Hop VM. Den kan også brukes fra kommandolinjen , på samme måte som Perl eller Python kan gjøre det; Denne versjonen av PHP kalles PHP-CLI ( Command Line Interface ). [ 21 ]
Når klienten sender en forespørsel til serveren om å sende den en nettside , kjører serveren PHP - tolken . Dette behandler det forespurte skriptet som vil generere innholdet dynamisk (for eksempel hente informasjon fra en database). Resultatet sendes av tolken til serveren, som igjen sender det til klienten.
Gjennom utvidelser er det også mulig å generere PDF -filer , [ 22 ] Flash , samt bilder i forskjellige formater.
Den tillater tilkobling til forskjellige typer SQL- og NoSQL-databasetjenere som MySQL , PostgreSQL , Oracle , ODBC , DB2 , Microsoft SQL Server , Firebird , SQLite eller MongoDB . [ 23 ]
PHP har også muligheten til å kjøre på de fleste operativsystemer , som Unix (og som Linux eller Mac OS X ) og Microsoft Windows , og kan kommunisere med de mest populære webserverne slik de finnes på Internett. CGI , modul for Apache og ISAPI .
PHP er et alternativ til Microsofts ASP- og ASP.NET -teknologier (som bruker C# og Visual Basic .NET som språk) , Adobes ColdFusion , JSP / Java , CGI / Perl og Node.js / Javascript . Selv om opprettelsen og utviklingen skjer innen frie systemer, er det under GNU -lisensen også et kommersielt integrert utviklingsmiljø kalt Zend Studio . CodeGear ( Borlands programmeringsspråkavdeling ) har gitt ut et integrert utviklingsmiljø for PHP, kalt 'Delphi for PHP. Det finnes også minst et par moduler for Eclipse , et av de mest populære miljøene. [ 24 ]
Den ble opprinnelig designet i Perl , basert på et sett med binære CGI -skript skrevet på C-språket av den dansk-kanadiske programmereren Rasmus Lerdorf i 1994 for å vise hans CV og registrere visse data, for eksempel mengden trafikk nettstedet ditt mottok. Den 8. juni 1995 ble "Personal Home Page Tools" utgitt etter at Lerdorf kombinerte det med sin egen skjematolk for å lage PHP/FI.
To israelske Technion- programmerere, Zeev Suraski og Andi Gutmans , omskrev parseren i 1997 og skapte grunnlaget for PHP3, og ga nytt navn til språket PHP : Hypertext Preprocessor . [ 25 ] Offentlig testing av PHP3 begynte umiddelbart, og den ble offisielt utgitt i juni 1998. I 1999 omskrev Suraski og Gutmans PHP-koden, og produserte det som nå er kjent som Zend-motoren . De grunnla også Zend Technologies i Ramat Gan , Israel . [ 25 ]
I mai 2000 ble PHP 4 utgitt under kraften til Zend 1.0-motoren. Den 13. juli 2007 ble suspensjonen av støtte og utvikling av versjon 4 av PHP kunngjort, [ 26 ] og til tross for det som ble annonsert, har en ny versjon med sikkerhetsforbedringer, 4.4.8, blitt utgitt 13. januar 2008 , og senere versjon 4.4.9, utgitt 7. august 2008. [ 27 ] Ifølge denne nyheten ble [ 28 ] kritiske feil støttet frem til 9. august 2008.
13. juli 2004 ble PHP 5 utgitt ved bruk av Zend Engine 2.0 (eller Zend Engine 2). [ 25 ] Inkluderer alle fordelene som den nye Zend Engine 2 gir, for eksempel:
Betydning | |
---|---|
rød | Gammel versjon, ingen støtte |
Gul | Med støtte for sikkerhetsfeil |
Grønn | Med støtte for generelle feil og sikkerhetsfeil |
Blå | fremtidig utgivelse |
Rosa | avbrutt utgivelse |
Versjon | Utgivelsesdato | slutt på støtte | Karakterer |
---|---|---|---|
1.0 | 06-08-1995 | Offisielt kalt "Personlige hjemmesideverktøy (PHP-verktøy)". Det er den første versjonen som bruker navnet "PHP". [ 29 ] | |
2.0 | 01-11-1997 | Ansett av skaperne som det "raskeste og enkleste verktøyet" for å lage dynamiske nettsider. [ 29 ] | |
3.0 | 06-06-1998 | 20-10-2000 | Zeev Suraski og Andi Gutmans omskrev basen for denne versjonen. [ 29 ] |
4.0 | 22-05-2000 | 23-01-2001 | Lagt til et to-trinns parsesystem kalt Zend-motoren. [ 30 ] |
4.1 | 10-12-2001 | 03-12-2002 | 'Superglobals' ( $_GET, $_POST, $_SESSION, etc.) introduseres [ 30 ] |
4.2 | 22-04-2002 | 06-09-2002 | De er deaktivert register_globalssom standard. Data som mottas over nettverket settes ikke inn i det globale navneområdet, noe som lukker potensielle sikkerhetshull i applikasjoner. [ 30 ] |
4.3 | 27-12-2002 | 31-03-2005 | CLI er introdusert , og CGI . [ 30 ] [ 31 ] |
4.4 | 07-11-2005 | 07-08-2008 | Lagt til man-sider for phpizeog php-config. [ 30 ] |
5.0 | 13-07-2004 | 05-09-2005 | Zend II-motor med ny objektmodell. [ 32 ] |
5.1 | 24-11-2005 | 24-08-2006 | Ytelsesforbedringer med introduksjonen av kompilatorvariabler for den nye PHP-motoren. [ 32 ] |
5.2 | 02-11-2006 | 06-01-2011 | Standard filterutvidelsesaktivitet. Innebygd JSON- støtte . [ 32 ] |
5.3 | 30-06-2009 | 14-08-2014 [ 33 ] | Støtte for navnerom, statisk binding ved kjøretid, jump-tag ( begrenset GOTO ), Native stenginger , Native-støtte for PHP-filer (phar), søppelinnsamling for sirkulære referanser, forbedret støtte for Windows , sqlite3, mysqlnd som erstatning for libmysql som et bibliotek for utvidelser som fungerer med MySQL , filinfo som erstatning for mime_magic for bedre MIME -støtte , internasjonaliseringsutvidelse og utdatert ereg-tag. |
5.4 | 03-01-2012 | 15-09-2015 | Støtte for syntaks for trekk og stenografi array. Slettede elementer: register_globals, safe_mode, allow_call_time_pass_reference, session_register(), session_unregister()og session_is_registered(). Innebygd webserver. [ 34 ] Ulike forbedringer av eksisterende funksjoner og ytelse, og lavere minnekrav. |
5.5 | 20-06-2013 | 20-06-2016 | Nye generatorer for looper, empty()støtter uttrykk. Støtte for Windows XP og Windows Server 2003 er tapt. [ 35 ] |
5.6 | 20-08-2014 | 31-12-2018 | Konstanter med skalaruttrykk, argumentlister med variabel lengde og eksponentialer ved å bruke **-operatoren. [ 36 ] |
6 | Utviklingen av PHP 6 har blitt forsinket fordi utviklerne bestemte at den nåværende tilnærmingen til å håndtere Unicode-strenger ikke er korrekt, og vurderer alternative måter for neste versjon. [ 37 ] Forbedringene som var planlagt for PHP 6 ble lagt til i stedet i PHP 5.3.0 (Støtte for navnerom, statisk binding ved kjøretid, lambda-funksjoner, lukkinger, goto) og 5.4.0 (trekk, rebinding av lukking).
PHP versjon 6 ble forlatt med neste versjon 7. [ 38 ] | ||
7.0 | 03-11-2015 [ 39 ] | 03-12-2018 | Ytelsesforbedringer, [ 40 ] erklæring om returtyper i funksjoner [ 41 ] |
7.1 | 01-12-2016 [ 42 ] [ 43 ] | 01-12-2019 //det er ikke forståelig | Tom returtype, [ 44 ] Modifikatorer for konstant synlighet av klasse, [ 45 ] Nullbare typer, [ 46 ] Pseudo-type iterable, [ 47 ] Fang flere typer unntak. [ 48 ] |
7.2 | 30-11-2017 | 30-11-2020 | Ny "objekt" returtype, [ 49 ] integrasjon av Libsodium som en kjerneutvidelse [ 50 ] |
7.3 | 6-12-2018 | 6-12-2021 | Fleksibel syntaks for Nowdoc og Heredoc, støtte for referanser og array-dekonstruksjon med list(), PCRE2-støtte, hrtime()-funksjon |
7.4 | 28-11-2019 | 28-11-2022 | |
8.0 | 26.11.2020 | 26-11-2023 | |
8.1 | 25-11-2021 | 25-11-2024 |
PHP-syntaks er basert på C-programmeringsprinsipper.
PHP-tolken kjører bare koden som er mellom skilletegnene. De vanligste skilletegnene er <?phpå åpne en PHP-seksjon og ?>lukke den. Hensikten med disse skilletegnene er å skille PHP-koden fra annen kode, for eksempel HTML. [ 51 ] I filer som bare inneholder PHP-kode, kan skilletegnet ?>utelates. Faktisk anbefaler PHP-FIG gjennom sine standardanbefalinger for PHP å utelate skilletegnet ?>, siden du på denne måten ikke sender HTML-innhold ved et uhell. For eksempel, hvis et "ikke-PHP"-tegn sendes (som ikke behandles av PHP-tolken), vil visse handlinger som å sende HTTP-hoder gjennom funksjonen ikke være mulig header(), siden svarprosessen allerede har startet.
Variabler er prefikset med dollartegnet ( $) og trenger ikke å angi typen. Variabler, i motsetning til funksjoner, skiller mellom store og små bokstaver. Tegnstrenger kan være innkapslet i både doble og enkle anførselstegn, men i tilfellet med førstnevnte kan variabler settes inn i strengen direkte, uten behov for sammenkobling.
Kommentarer kan skrives enten med to skråstreker (//) på begynnelsen av linjen, eller med et hash-tegn (#). Den tillater også kommentarer med flere linjer innkapslet i /* */.
Når det gjelder søkeordene, deler PHP med de fleste andre språk med C-syntaks betingelsene med if, løkkene med forog whileog avkastningen av funksjoner. Som vanlig i denne typen språk, må utsagnene avsluttes med semikolon ( ;).
Hello world - program med PHP innebygd i HTML -kode :
<!DOCTYPE html> < html lang = "en" dir = "ltr" > < head > < meta charset = "UTF-8" /> < meta name = "viewport" content = "width=device-width, initial-scale=1.0" /> < title > Grunnleggende PHP-eksempel </ title > </ hodet > < body > <?php echo 'Hello world'; ?> </ body > </ html >Hello world - program med PHP i form av en monolitisk app:
<?php // Header, konstanter og inkluderer område (applikasjonsinitialisering) // Header kun for demo, ingen nødvendig header ( 'Content-Type: text/html; charset=UTF-8' ); $respons = '' ; // Applikasjonslogikk, som å få øktbruker, innhold osv. // Denne koden kan komme fra en ekstern mal for enkel gjenbruk $response .= '<!DOCTYPE html>' ; $answer .= '<html lang="no">' ; $answer .= '' ; $answer .= '<hode>' ; $answer .= ' <meta charset="UTF-8" />' ; $response .= ' <meta name="viewport" content="width=device-width, initial-scale=1.0" />' ; $response .= ' <title>Grunnleggende PHP-eksempel</title>' ; $answer .= '</head>' ; $answer .= '' ; $answer .= '<body>' ; $answer .= ' <h1>Hei verden!</h1>' ; $answer .= '</body>' ; $answer .= '' ; $answer .= '</html>' ; // Send svar echo $response ; // Legg merke til at <?php "taggen" ikke er lukket. PHP-FIG anbefaler denne praksisen i //-filer som kun inneholder PHP-kode for ikke å sende HTML-innhold ved et uhell.Hello world - program med PHP som svarer i JSON-format:
<?php // Response_json.php-fil // Forteller nettleseren at svaret vil være JSON - header ( 'Content-Type: application/json; charset=UTF-8' ); $response = [ 'message' => 'Hei verden!' ]; echo json_encode ( $respons ); // Ikke lukk <?php "taggen" siden filen bare inneholder PHP-kodeKlientsiden som vil sende en forespørsel til PHP-filen:
<!DOCTYPE html> < html lang = "no" > < head > < meta charset = "UTF-8" /> < meta name = "viewport" content = "width=device-width, initial-scale=1.0" /> < title > Eksempelsvar i JSON-format fra PHP < / tittel > </ head > < body > < div > < h2 > Ren tekstsvar </ h2 > < pre >< code id = "flat-response" ></ code ></ pre > </ div > < div > < h2 > Behandlet svar ( JSON-svar "melding"-felt) </ h2 > < pre >< code id = "behandlet-svar" ></ kode ></ pre > </ div > < script > dokument . addEventListener ( 'DOMContentLoaded' , () => { const FlatResponseContainer = document . querySelector ( '#flat-response' ); const ProcessedResponseContainer = document . querySelector ( '#processed-response' ); // Gjør en asynkron forespørsel til php-hentefilen ( ' response_json.php' ) . then ( respons => respons . json ()) // Transformer responsen til et JSON-objekt . deretter ( responseJson => { // responseJson er et objekt av formen { melding: "Hello world!" } flatResponsecontainer . innerHTML = JSON . stringify ( jsonresponse ); containerProcessedResponse . innerHTML = responsJson . melding ; }); // håndtere feil med .catch() }); </ script > </ body > </ html >PHP kan kombineres med MySQL for å jobbe med databaser, selv om andre databasemotorer som Microsoft SQL Server , PostgreSQL , MongoDB , blant andre, også kan brukes.
Følgende eksempel viser en enkel brukernavn og passordpålogging ved å bruke MySQL og PHP med den objektorienterte stilen:
<?php // Tilkobling til den lokale databasen 'site'. Normalt vil dette komme fra en // ekstern tjeneste som gjenbrukes på hele nettstedet. $connection = ny PUD ( 'mysql:host=127.0.0.1;dbname=site' , 'root' , '' , [ // Kast et unntak hvis det oppstår en feil, så feilbehandleren vil ta nødvendige handlinger // som vist en 500-feil eller avslutt systemkjøring. Merk at // try-catch ikke brukes her for å delegere ansvar til feilbehandleren. PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION , // Deaktiverer emulering av forberedte setninger (bare innfødte er safe) PUD :: ATTR_EMULATE_PREPARES => falsk , ]); // Dataene som sendes av skjemaet innhentes // For enkelhets skyld i demonstrasjonen, brukes koalesceringsoperatoren (??) $user_name = trim ( $_POST [ 'user_name' ] ?? '' ); // Fjern innledende og etterfølgende mellomrom $password = $_POST [ 'passord' ] ?? '' ; // Passordet blir stående som det er, uten trim() // Handler kun hvis skjemaet er sendt inn med data if ( isset ( $_POST [ 'send' ]) && ! empty ( $ brukernavn ) && ! empty ( $ passord )) { // Spørring for å finne brukeren i databasen data // Prepare-setninger brukes for å forhindre SQL-injeksjoner $ user_query = $connection -> prepare ( 'SELECT * FROM users WHERE username = ? LIMIT 1' ); $ user_query -> execute ([ $user_name ]); // Sjekk om en bruker er funnet if ( $ user_query -> rowCount () > 0 ) { // Hent brukerdataene $user_found = $ user_query -> hente ( PDO :: FETCH_ASSOC ); // Sjekk om passordet som sendes er riktig // Bruk sikre algoritmer som BCrypt eller Argon2i if ( password_verify ( $password , $user_found [ 'password' ])) { // Riktig legitimasjon, login } else { // Feil legitimasjon, vis feilmelding } } else { // Brukernavn eksisterer ikke, vis feilmelding // Merk at for sikkerhets skyld bør en generisk //-feil som "Bad Credentials" vises her og ovenfor , slik at en potensiell angriper // ikke vil vite om de har skrevet inn riktig brukernavn } } // Ikke lukk <?php "taggen" siden filen bare inneholder PHP-kodeFølgende eksempel gjør det samme som det forrige, men med forsikring om at uansett gjennomsnittstilstand for tjenesten, hvis det ikke er mulig å koble til, blir klassen ødelagt og trådene lukket.
viske ut
<?php //DB_access.class.php-fil klasse SessionInterface { public $connection ; offentlig $BD_ACCESS ; offentlig $HOST_ACCESS ; offentlig $USER_ACCESS ; offentlig $PWD_ACCESS ; offentlig $error ; offentlig funksjon __construct ( array $args ) { $out = '' ; prøv { if (( null !== $args [ 'BD_ACCESS' ]) && ( null !== $args [ 'HOST_ACCESS' ]) && ( null !== $args [ 'USER_ACCESS' ]) && ( null != = $args [ 'PWD_ACCESS' ])){ //Bygg klassen $this -> BD_ACCESS = $args [ 'BD_ACCESS' ]; $this -> HOST_ACCESS = $args [ 'BD_ACCESS' ]; $this -> USER_ACCESS = $args [ 'BD_ACCESS' ]; $this -> PWD_ACCESS = $args [ 'BD_ACCESS' ]; } else { throw new Exception ( 'Konstruksjonsfeil for datatilkoblingsgrensesnitt: Ikke alle argumenter oppgitt' , 400 ); } } catch ( Unntak $e ){ die ( '"{error":"' . $e -> getMessage . '}"' ); } til slutt { // Koble til MySQL-serveren og velg databasen med navnet 'login' $this -> connection = @ new mysqli ( $this -> HOST_ACCESS , $this -> USER_ACCESS , $this -> PWD_ACCESS , $ this -> BD_ACCESS ); } prøv { if ( ! $this -> connection ){ throw new Exception ( 'Databasetilkoblingsfeil: argumentene som er angitt er ikke tilstrekkelige til å opprette en tilkobling' , 410 ); } } catch ( Unntak $e ){ die ( '"{error":"' . $e -> getMessage . '}"' ); } finally { $output = '{"Ok":"Forbindelsen er opprettet"}' ; } $this -> error = $utgang ; } offentlig funksjon SQLQuery ( streng $queSQLquery ) : streng { $out = '' ; // Spørring for å søke etter brukere i databasen $ query_user = $this -> tilkobling -> spørring ( $queSQLquery ); // Bekreft at en bruker er funnet hvis ( $ user_query -> num_rows > 0 ) { // Få brukerdataene som en assosiativ matrise $user_found = $ query_user -> fetch_assoc (); // Sjekk om passordet som brukes er det samme som det i databasen if ( $password === $user_found [ 'password' ]) { // Success text $out = '{"Ok":"Du har logget på"}' ; } annet { // Error text $output = '{"error":"Passordet som ble brukt er ikke riktig"}' ; } } annet { // Error text $output = '{"error":"Den angitte brukeren eksisterer ikke"}' ; } // Lukk tilkoblingen $this -> tilkobling -> lukk (); returnere $output ; } } ?> <?php //Header file.h.php //Vis bare fatale, parse- og advarselsfeil for eksempelet error_reporting ( E_ERROR | E_PARSE | E_WARNING ); //Inkludering av klasser for administrasjonsinstanser $seHaInstitución = include_once ( BD_access . class .php ) ; if ( $seHasIncluded ){ // Sjekk at skjemaet ble sendt ved hjelp av send-knappen if ( isset ( $_POST [ 'send' ])) { //Initialisering av variabler $user = '' ; $password = '' ; // Få data sendt med POST-metoden og fjern innledende og etterfølgende mellomrom $user = trim ( $_POST [ 'bruker' ]); $password = sha1 ( trim ( $_POST [ 'passord' ])); //Sjekk at variablene ikke er tomme hvis ( ! tomme ( $brukernavn ) && ! tomme ( $password )){ $args = array ( 'BD_ACCESS' => 'brukere' , 'HOST_ACCESS' => 'localhost' , 'USER_ACCESS ' => 'root' , 'PWD_ACCESS' => 'sin_password' ){ //Objektene assosiert med de tilsvarende klassene er instansiert $misAccesos = new sessionInterface ( $args ); $ConnStatus = JSON . dekode ( $myAccesses -> feil ); if ( isset ( $ConnStatus [ 'Ok' ])){ $QueryStatus = $myAccesses -> SQLQuery ( "SELECT * FROM users WHERE user = ' $user ' LIMIT 1" ); echo '{"output":"' . $queryStatus . '"}' ; } else if ( isset ( $ConnStatus [ 'error' ])){ echo '{"error":"' . $QueryStatus . '"}' ; } } else { echo '{"error":"skjemafelt med ukjente data"}' ; } } annet { echo '{"error":"tilgangsforsøk ikke tillatt"}' ; } } ?>REST-tjenester er basert på tre grunnleggende konsepter:
ressurskonsept roaming-konsept API-konseptXAMPP er en plattformuavhengig, gratis programvareserver, som hovedsakelig består av MySQL-databasen, Apache -webserveren og tolker for skriptspråk: PHP og Perl. Navnet kommer fra akronymet for X (for alle de forskjellige operativsystemene), Apache, MySQL, PHP, Perl. Programmet er utgitt under GNU-lisensen og fungerer som en gratis webserver, enkel å bruke og i stand til å tolke dynamiske sider. XAMPP er for øyeblikket tilgjengelig for Microsoft Windows, GNU/Linux, Solaris og MacOS X.
Det er en "lett" programvare som kan brukes på hvilken som helst PC. Du trenger ikke mye ressurser.
LAMP har funksjonalitet som ligner på XAMPP, men med fokus på Linux gjør WAMP det med fokus på Windows, og MAMP for MacOS X. UwAmp er veldig identisk med WAMP og skiller seg ut ved at den kan kjøres fra en USB-pinne.
PHP brukes på millioner av nettsteder; blant de mest fremtredende er: