Dynamisk PHP design OPDATERET

Relaterede dokumenter
I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

Tagwall med Php & MySQL

Loginsystem (med MySQL)

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

Ratingsystem i PHP og MySQL

Dette er en grundlæggende artikel til hvordan du laver et lille community, med forskelige

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Ordbøgerne.dk. Navne: Andreas Foldager og Rasmus Bjerring Pedersen Fag: IT B Lærer: Karl Bjarnason Afleveringsdato:

Log ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

Loginsystem med PHP4, klasser, sessions og MySQL database

Reeksamen, DSDS, forår 2008

Gæstebog med validering opbygget med MySQL

Uploade billeder eller andre filer ved hjælp af php og mysql

Web 2.0. World Wide Web (www)

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

PHP Pagination. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 01. May 2011 af dab93 I kategorien Programmering / Andre

Website sikkerhed SQL Injections og mere...

PHP kode til hjemmeside menu.

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script.

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

HTML, PHP, SQL, webserver, hvad er hvad??

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Introduktion til SQL queries

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

Design Diaries.

Interaktionsudvikling

Hack of the Month opgave 2

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Da jeg selv bruger Windows, så vil programmer osv. være til Windows, og beskrevet ud fra en Windowsbrugers

PHP guide af Daniel Pedersen

I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.

Database design for begyndere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Matematik læringsprojekt Journal

Begrynder til at lave log ind system

PHP Crash course. Databaser

Sikker kodning af Web systemer og applikationer

Upload af billeder/filer for nybegyndere Del. 2

Databaseadgang fra Java

At klippe en streng over på det mest hensigtsmæssige sted

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

Password-beskyttelse af visse filer

Dokumentering af umbraco artikeleksport:

The Design Diaries. Link til blog

Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Kontrol-strukturer i PHP

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Eksamen, DSDS, forår 2009

Eksamen, DSDS, efterår 2007

Denne rapport er skrevet af:

Simpel upload af filer

Her ses et screenshot af websitet solsystemet i menuen Merkur. Baggrundsbillede skal være static så resten af siden skal man scrolle ned for at se.

Procesbeskrivelse - Webprogrammering

Session-highjack...et halvt skridt mod en modgift

Afsending af s vha. ASP

Umbraco installationsvejledning

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON

The Design Diaries PHP projekt

Delphi og Databaser for begyndere

Koden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!

Eksamen, DSDS, efterår 2008

A11: Last Year s Exam

Eksamen, DSDS, forår 2008

SQL for MySQL-begyndere

Anvendelse af metoder - Programmering

The Design Diaries Project 3 2. Semester. Blog om designprincipper

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF.

Send fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

Sådan skriver du artikler til Eksperten!

DRFLive - dynamisk visning af resultater fra DRF Stævnesystem

if (mysqli_num_rows($res) > 0) { while ($result = $res->fetch_array(mysqli_assoc)) { "<div class=\"article\">".

Hej alle sammen, nu fjerner vi lige mystikken om alle de "ulovlige tags" her på eksperten.dk

Arkitektur for begyndere

CentOS 7. Lavet af Ali Sarac og Andreas Jensen

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Denne artikel gennemgår kort nogle mulighederne for brug af XML i ASP. Det sker ved brug af eksempler. Eksemplerne vil være i VBS.

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)

- Hvad er PHP? - Hurtigt historisk overblik - Installation - Indstillinger - Hello world - Tekststrenge - PHP og HTML - En doven programmør er en god

SESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten.

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Undtagelseshåndtering i C#

Lav en hjemme side der kan sælge fly billetter til en stor i Europa.

Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW.

Eksamens rapport Informationsteknologi B

SDB. MySQL Installation Guide

TEKNISK DOKUMENTATION FAKTURA LAYOUT ABAQUE VERSION 2.0

Hvad er Objekter - Programmering

Sådan installeres og teste WordPress på en lokal server

Google Tag Manager tracking

Flerbruger miljø, opdel database

Java web applikationer med Tomcat

Transkript:

Denne guide er oprindeligt udgivet på Eksperten.dk Dynamisk PHP design OPDATERET I har måske undret jer over "http://bla.dk/?side=kontakt", her beskriver jeg hvordan, og hvorfor Skrevet den 03. Feb 2009 af ksvendsen (nedlagt brugerprofil) I kategorien Programmering / PHP Hvorfor har jeg skrevet denne artikel? Fordi jeg ved der er mange som mangler en ide som denne. Derfor har jeg valgt at skrive om det. Blandt andet også hvorfor jeg har valgt at lave den gratis. Jeg er positiv overfor konstruktivt kretik. Som i nok alle har lagt mærke til ser i tit: http://domain.dk/index.php?side=kontakt http://domain.dk/?p=kontakt Det hele går ud på man har en "index fil" hvor designet ligger i. Hvis der er sat en side i $_GET så inkludere man den eksterne side, hvis ingen side er defineret, inkludere man forside.php i første eksempel vil herover vil man kunne inkludere siden på følgende måde: $side = $_GET["side"]; include("./". $side. ".php"); Andet eksempel $side = $_GET["q"]; include("./". $side. ".php"); Idé Design html med head og start på body.. i body'en kan har man så en plads hvor den eksterne side skal inkluderes. slutter body Man kan så i den "inkluderet" fil ligge indhold og intet andet, der skal man ikke til at lave <html><head> bla.. kun indholdet, da <html><head> er blevet defineret i "design" filen. Fx. <? function openmysql() // Connection variables $localhost = "localhost";

$user = "user"; $password = "password"; $database = "db"; // Die variables $conndie = "Coudn't connect to ". $localhost. " because: "; $dbdie = "Coundn't select database: ". $database; $connection = mysql_connect( $localhost, $user, $password) or die( $conndie. mysql_error() ); mysql_select_db( $database ) or die( $dbdie ); function query($sql) $result = mysql_query($sql) or die( "Query failed : ". mysql_error() ); function closemysql() mysql_close(); function GetMenu() $html = "" openmysql(); $sql = mysql_query("select * FROM menu ORDER BY id"); while($data = mysql_fetch_array($sql)) $navn = $data["navn"]; $url = $data["url"]; $html.= "<a href=\"?side=". $url. "\">". $navn. "</a><br>\n"; closemysql(); return $html; function IncludeValidator($url) $true = false; openmysql(); $sql = mysql_query("select id FROM menu WHERE url = '$url' LIMIT 1;"); while($data = mysql_fetch_array($sql)) $true = true; closemysql(); return $true;?> <html>

<head> <title>min Hjemmeside</title> </head> <body> <table width="770" height="500" cellpadding="0" cellspacing="0"> <tr valign="top"> <!-- Sæt height til hvor stort banner image er --> <td height="200"><img src="./images/banner.jpg"></td> </tr> <tr valign="top"> <td> <table width="100%" height="100%"> <tr valign="top"> <!-- Menu --> <td width="200"> <?=GetMenu()?> </td> <!-- Content --> <td width="570"> <?php # Tjekker om $_GET["side"] er sat if(isset($_get["side"]) && $_GET["side"]!= "") # Hvis den er sat, koder vi den til til $side $side = $_GET["side"]; # Tester om filen findes if(file_exists($side)) # Først tester vi om, det er tilladt at inkludere den fil, hvis true, så inkludere vi if(includevalidator($side)) include($side); print("filen findes ikke i databasen"); print("filen findes ikke (". $side. ")"); #Hvis ikke includes forside.php bare include("./forside.php");?> </td> </tr> </table> </td> </tr> </table> </body> </html>

Her ser mysql sådan her ud: table -> menu id = int navn = varchar(30) // Dit valg? hvor langt menu navnet må være url = varchar(45) // PHP filen (inkluderet.php) Her var et eksempel på et dynamisk design. Hvis man klikker på Kontakt inkludere man./kontakt.php links ->./links.php Tips Udfører noget først på alle sider (evt. inkludering af config fil eller session_start()) Gøres ved at putte denne kode i topen af "Design" filen. <?php session_start(); include("mysql_config.php"); include("custom_functions.php");?> Dette er ikke komplet og bør kun bruges som hjælpelinje til at starte med. Så kan du selv udvikle mere sikkerhed, hvis det er det du mangler eller andet. Ting rettet efter kommentare file_exists(); ikke muligt at inkludere "" fil Sikkerhed øget, da vi tjekker via MySQL KSvendsen Skriver du en kommentar så læs dette!! Det er helt fint i synes min artikel er mindre god. Men giv evt. en forklaring, så jeg kan forbedre artiklen istedet for at efterlade et tomt felt. Hvad skal folk bruge det til? Kommentar af whatever d. 26. Oct 2005 1 Når du skriver en artikel, er det en god idé at teste koden inden man publicerer artiklen. I linien med if(isset($_get["side"]) mangler du en slut parantes. Det ville desuden være en meget god idé, at tjekke om den fil man vil inkludere eksisterer på serveren. Dette kan gøres file_exists(). Kommentar af emureactor d. 06. Nov 2005 2

Kommentar af human d. 26. Oct 2005 3 Kommentar af doodoo d. 26. Oct 2005 4 Fint. mange spørger om dette så nu kan vi blot linke til det... dog synes jeg godt der kunne være en bedre forklaring, men den er ganske ok.. Kommentar af xyborx d. 26. Oct 2005 5 Arh, "komplet eksempel på et dynamisk design" er måske lige i overkanten. Og hvor er valideringen af brugerinput? Hvis man følger dit eksempel, så giver man folk fri mulighed for at include alle filer på serveren. Inputvalidering - altid! Kommentar af greew d. 02. Nov 2005 6 Efter rettr er den blevet en smule bedre - men jeg vil stadig ikke vælge at anbefale denne artikel til nogen. Den er alt for kort og ikke-gennemgående! Kommentar af ldrada d. 07. Nov 2005 7 Jeg vil gerne bede dig om at fjerne denne artikel. Du tager jo absolut ikke højde for sikkerhed!? Jeg kunne jo indlæse HVILKEN SOM HELST fil på din server! Det hele bliver endnu værre, hvis du hostes af en person som ikke kan finde ud af sin administration, og kører apache som root! Jeg lavede en gang noget lignende, men jeg tænkte sørme på sikkerheden før alt andet. Se for eksempel hvordan jeg gjorde det, og bemærk venligst at jeg har bedt hundredevis af script kiddies om at hacke min hjemmeside (var admin på hackthissite.org): http://ldr.nerdd.dk/csite.phps ::: Kommentar rettet ::: Sikkerheden er forbedret. Tak :) Kommentar af net-base.dk d. 30. Nov 2005 8 når du ik tjekker om den fil man indtaster findes vil det sådan set være muligt med dit script at include ingen filen... ved?page= så er $_GET["page"] sat men indeholder ikke noget. nej jeg ville gøre sådan her if( (!isset($_get["page"])) ($_GET["page"] == "") ) include"forside.php"; include $_GET["page"].".php"; men så er der stadig ikke valideret og der er heller ik tjekket om filen findes... Kommentar af wicez (nedlagt brugerprofil) d. 26. Oct 2005 9 Kommentar af el_barto (nedlagt brugerprofil) d. 26. Oct 2005 10 Kommentar af cronaldo d. 12. Feb 2006 11 brug dog: if($page == "news")

include("news.php"); include("frontpage.php"); Så kan du bestemme hvad man ser :) Kommentar af plx d. 03. Nov 2005 12 Mht sikkerhed: 1) database kontrol efter test om filen findes. Kan bruges til at finde gyldige filnavne 2) sql injection, afhængigt af php.ini. Inkludering af secret.cfg: menu.php?side=secret.cfg%00'%20or%201%23 Kommentar af visualdeveloper d. 25. Oct 2005 13 lige hvad jeg manglede Kommentar af yezbarh d. 26. Oct 2005 14 Dårlig.