Avatar billede kimmys Nybegynder
05. januar 2005 - 23:28 Der er 68 kommentarer og
1 løsning

Lav PHP hjememside

Nu har jeg så længe lavet HTML hjemmesider, men nu kunne jeg godt tænke mig at lære at lave en PHP hjemmeside!

jeg har læst alt på http://www.webcafe.dk/artikler/php/

Men synes ikke rigtig der er noget med hvordan man faktisk laver selve hjemmesiden!

hvordan laver man og sætter hjemmesiden op i PHP..
Avatar billede neocron Nybegynder
05. januar 2005 - 23:33 #1
Hej! Her et kort eksempel på at lægge PHP ind i HTML, jeg går ud fra det er sådan, du mener med dit spørgsmål :)

<html>
<head>
<title>Min første PHP</title>
</head>
<body>
Dette er min første side hvor PHP bruges
<?php
    echo "Hello world<br>"; // man kan bruge html characters
    // her en masse variabler og sjov
    $a = 2;
    $b = 5;
    $c = "Hej";
    $d = $a + $b;
    echo $c;
    echo "<br>";
    echo $d;
?>
</body>
</html>
Avatar billede neocron Nybegynder
05. januar 2005 - 23:38 #2
Og et mere... just for the fun of it.

<html>
<head>
<title>Min anden PHP</title>
</head>
<body>
<p>Man kan også hoppe ind og ud af PHP!</p>

<?php
    for($i=0; $i<10; $i++) {
        echo "$i<br>";
    }
?>

<p>Kan også gøres lidt anderledes:</p>

<?php
    for($i=0; $i<10; $i++) {
?>
    hej<br>
<?php
    }
?>

</body>
</html>
Avatar billede kimmys Nybegynder
05. januar 2005 - 23:41 #3
tjaa.. ikke helt.. det er heller ikke nemt at forklare hvad jeg mener =) men kan lige prøve at komme med et ex!

hvis man ser på denne side:
http://www.breakny.com/homepage.html eller bare eksperten.dk

Så er alle sider ens - ligemeget hviket links man trykker på så er selve siden ens (menu, copyright osv)

hvordan er det lavet, hvis vi tager http://www.breakny.com/homepage.html, der er vel ikke lavet 18 ens sider og så er der bare belevet rettet lidt i teksterne og sat lidt forskellige billeder ind?
Avatar billede neocron Nybegynder
05. januar 2005 - 23:43 #4
En notits til at lave PHP'en - du kan jo lave en skitse / grundformen af dit website i Dreamweaver, GoLive, FrontPage, Notepad eller hvad ved jeg. Så kan du starte på at "smide" PHP'en ind de steder, hvor det skal bruges. Det kan også være, du har noget kode "på lager" til at smide ind hurtigt.

Du kan evt. prøve Zend Studio, en god editor som fåes i Demo / Free Evaluation. Det kan du se nærmere på her:
http://www.zend.com/store/products/zend-studio.php

Det er en "suite" specielt beregnet til PHP. Med farveformatering, debugger og hele fejemøget.
Avatar billede neocron Nybegynder
05. januar 2005 - 23:44 #5
Jeg tror måske, jeg ved hvad du mener. Jeg kan lige prøve at lave et hurtigt eksempel, og så må vi se om jeg har forstået det.
Avatar billede kimmys Nybegynder
05. januar 2005 - 23:46 #6
jeg går ud fra det er noget med  include() -  men har bare ikke helt fundet ud af hvordan..
Avatar billede neocron Nybegynder
05. januar 2005 - 23:53 #7
http://www.webdruid.dk/test.php

Prøv at tjekke denne - hvis vi nu antog at der var et ORDENTLIGT design, så ville du kunne se det bedre ;) Du kan se sourcen på siden. Jeg kan også paste den ind her.

Og ja, du kan da også sagtens bruge include.
Jeg strikker da bare lige et eksempel med include sammen til dig også - det kræver ikke megen ændring!
Avatar billede kimmys Nybegynder
05. januar 2005 - 23:54 #8
Gider du paste den her..
Avatar billede kimmys Nybegynder
05. januar 2005 - 23:56 #9
åhhh sorry.. havde ikke set din Vis PHP.. sad og kiggede i kildekoder og tænkte, hvad snakker han om :)
Avatar billede neocron Nybegynder
05. januar 2005 - 23:57 #10
http://www.webdruid.dk/test1.php

Og her har du samme eksempel - med includes istedet :)
Her er "bonus" materialet til include-eksemplet:

http://www.webdruid.dk/side1.html
http://www.webdruid.dk/side2.html
http://www.webdruid.dk/side3.html
Avatar billede kimmys Nybegynder
05. januar 2005 - 23:59 #11
Den første metode du viste der.. den er da ikke ret nem at programere i, når man skal have alt muligt med billeder osv på siden er den?
Avatar billede neocron Nybegynder
05. januar 2005 - 23:59 #12
Her er sourcen til test1.php for en god ordens skyld. Ændringerne er så minimale at det er spild at poste begge sourcerne her.

<?php
    if($viskilde == 1) highlight_file(__FILE__);
?>
<html>
<head>
<title>Min anden PHP</title>
</head>
<body>
<h1>Her er min side</h1>
<p><a href="test1.php">index</a> <a href="test1.php?side=1">link 1</a> <a href="test1.php?side=2">link 2</a> <a href="test1.php?side=3">link 3</a>
<p>Her er noget statisk tekst</p>
<?php
    switch($side) {
        case 1: include("side1.html"); break;
        case 2: include("side2.html"); break;
        case 3: include("side3.html"); break;
        default: echo "Du befinder dig på forsiden.";
    }
?>
<p>Copyright &copy; En eller anden<br>
<a href="test1.php?viskilde=1">Vis PHP</a></p>
</body>
</html>
Avatar billede neocron Nybegynder
06. januar 2005 - 00:01 #13
Nej det er den givetvis ikke. Jeg ville så nok vælge at opbygge "indholdet" i en separat fil, og så include() den. For ellers ender du med en meget stor index fil som er vanskelig at overskue.

Ved at splitte det lidt op bevarer du en overskuelighed over dit projekt og samler det hele med includes.
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:03 #14
jeg prøver lige at lave en test, og se om jeg har forstået det mester! =)
Avatar billede neocron Nybegynder
06. januar 2005 - 00:04 #15
Det er bare helt i orden! Jeg venter spændt på at se om du kan få det til at funke :)
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:24 #16
tjooo... det virker da hvis fint.. :)

og kan kun sige det samme "hvis vi nu antog at der var et ORDENTLIGT design, så ville du kunne se det bedre ;)"

http://www.subir.frac.dk/index.php

hvad synes du?
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:26 #17
men jeg prøvede at lave link 3 med en gul baggrund, og troede sådan set kun det var cellen der ville blive med gul baggrund, hvordan kan det være at det var hele siden?
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:26 #18
Hov.. mente link 2!
Avatar billede neocron Nybegynder
06. januar 2005 - 00:34 #19
Det er fordi at siderne bliver "smeltet" sammen. Du kan opfatte det som én hel side når PHP har bearbejdet det.
Avatar billede neocron Nybegynder
06. januar 2005 - 00:36 #20
(Og når du bruger <body background...> vil hele baggrunden blive gjort gul). Det må du forsøge at snyde dig ud af. Det kan sikkert gøres med layers, tabeller, iframes osv.
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:37 #21
Må jeg lige komme med et bonus spørgsmål? =)

Når man fx her på eksperten kan se hvilken siden man er på oppe i explorer - hvordan er det så lavet?
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:39 #22
nååå... jamen den gule baggrund er ikke noget jeg skal bruge til noget, det var bare lige for at se - og så synes jeg det var underligt/sjovt at det galte for hele siden..
Avatar billede neocron Nybegynder
06. januar 2005 - 00:43 #23
På hver side kan du f.eks. sætte en variabel ind.
$sidens_sitel = "Kontakt information";

Og længere nede kommer så en simpel echo:
echo "Du befinder dig på: $sidens_titel.";

Det er så den simple måde. Dog er det lidt smartere, hvis du måske har en SQL-table med lidt information om hver side - f.eks. sidens titel, sidens navn, osv. Så er det lidt mere "automatiseret" :)
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:46 #24
Snakker vi om det samme.. jeg snakker ikke om selve ekspert siden, men oppe i explorer.. hvor man også kan se hvilken side man er på.. kan ikke se hvordan din kode der gør det - eller så er det bare mig!
Avatar billede neocron Nybegynder
06. januar 2005 - 00:49 #25
Jeg tror det er i stil med dette, du mener:

$sidenavn = "Kontakt"; //
echo "<title>Kimmys side | $sidenavn</title>"
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:50 #26
hvor skal jeg sætte det ind henne?
Avatar billede neocron Nybegynder
06. januar 2005 - 00:51 #27
Vi kan også udbygge den lidt!

$sider = array("", "Index", "Kontakt", "Links", "Kontakt");
echo "<title>Kimmys side | " . $sider[$side] . "</title>";

Her går vi så ud fra at du har $side fra før (?side=1, ?side=2... osv)
Så ligger siderne i et array, og hvis du her siger:
$sider[2] - så får du "Kontakt".
Avatar billede neocron Nybegynder
06. januar 2005 - 00:52 #28
Her kan du se hvor det skal smides ind:

<html>
<head>
<?php
$sidenavn = "Sidenavn";
echo "<title>Kimmys side | $sidenavn</title>";
Avatar billede kimmys Nybegynder
06. januar 2005 - 00:59 #29
hvorfor vil den ikke sige index ved index siden:
http://www.subir.frac.dk/index.php


<?php
    if($viskilde == 1) highlight_file(__FILE__);
?>
<html>
<head>
<?php
$sider = array("Index", "Kontakt", "Links", "Kontakt");
echo "<title>Kimmys side | " . $sider[$side] . "</title>";
?>
</head>
<body bgcolor="#FFFFFF">
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:01 #30
Er det fordi den skal include() for at kunne vise det på den måde?
Avatar billede neocron Nybegynder
06. januar 2005 - 01:06 #31
Det er simpelthen fordi $side ikke er sat :)

Det kan løses således:

$sider = array("Kontakt", "Links", "Kontakt");
$titel = (($side) ? $sider[$side] : "Index" );
echo "<title>Kimmys side | $titel";
Avatar billede neocron Nybegynder
06. januar 2005 - 01:07 #32
Det burde måske forklares, hvis du ikke kender Ternary operatoren (?:)

$titel = (($side) ? $sider[$side] : "Index" );

Betyder, at hvis variablen $side er sat, skal den vise $sider[$side]'s plads i arrayet. Hvis variablen IKKE er sat, må vi være på index siden, så derfor "Index".
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:09 #33
ved ikke hvad der er galt.. men den vil ikke vise siden nu..

<?php
    if($viskilde == 1) highlight_file(__FILE__);
?>
<html>
<head>
<?php
$sider = array("Kontakt", "Links", "Kontakt");
$titel = (($side) ? $sider[$side] : "Index" );
echo "<title>Kimmys side | $titel";
?>
</head>
<body bgcolor="#FFFFFF">
Avatar billede neocron Nybegynder
06. januar 2005 - 01:10 #34
Det er da fordi at jeg er et fjols. <title> bliver aldrig afsluttet!

<?php
    if($viskilde == 1) highlight_file(__FILE__);
?>
<html>
<head>
<?php
$sider = array("Kontakt", "Links", "Kontakt");
$titel = (($side) ? $sider[$side] : "Index" );
echo "<title>Kimmys side | $titel</title>";
?>
</head>
<body bgcolor="#FFFFFF">

Så burde det virke :)
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:11 #35
okay.. det var fint lige at få det forklaret! :)
Avatar billede neocron Nybegynder
06. januar 2005 - 01:13 #36
Det er bare fint :) Så er du måske kørende?
Smider lige et svar med det samme.
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:16 #37
næææ.. det virker stadig ikke helt rigtig det der med side navnet..

Den springer den første "kontakt" over og gå så videre i rækken.. ikke at det er nogen stor fejl.. kan jo bare skrive "emty" i den første og så lade den forsætte!

Men ellers er jeg kørende.. nu skal der leges lidt med det i nat, men er vel velkommen til at spørge hvis der er noget?
Avatar billede neocron Nybegynder
06. januar 2005 - 01:19 #38
Ja selvfølgelig må du spørge. Ellers er det bare at tweake med det :)
Når du tilgår et array, så husk endelig dette:

Arrays starter med 0!
Dvs. at $arr = array(1, 2, 3);
=
echo $arr[0]; // 1
echo $arr[1]; // 2
echo $arr[2]; // 3
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:19 #39
Hov... har fundet et problem mere!!

På index siden skal der stå noget info.. og når der trykkes på en af de links så skal det selvfølelig ikke blive stående, det gør det jo nu!
Avatar billede neocron Nybegynder
06. januar 2005 - 01:23 #40
Det kan du fjerne med et simpelt if-tjek.

if(!$side) {
  echo "Dette står på index :)";
}
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:26 #41
Det er ikke muligt at lave en

<?php
if(!$side) {
include("tilindex.htm")
}
?>
Avatar billede neocron Nybegynder
06. januar 2005 - 01:29 #42
Jo. Det kan du godt. Så har du alle sidernes indhold i separate filer.
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:34 #43
Smiler stolt!! så er jeg da allerede ved at ha' lidt fat i det =)

Bort set fra at jeg havde glemt at afslutte den med ;

<?php
if(!$side) {
include("tilindex.htm");
}
?>
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:38 #44
Men Neocron, tusinde mange tak for hjælpen! Du har forklaret det flot og tydligt og lavet gode eksempler!

Så der er selvfølelig point til dig! Og så skal jeg til at lege med det hele nu!
Avatar billede neocron Nybegynder
06. januar 2005 - 01:39 #45
Jamen det er da kun godt :) Efterhånden, som du får mere styr på det, så kan du jo splitte hele skidtet af og optimere!
Avatar billede neocron Nybegynder
06. januar 2005 - 01:41 #46
Jamen er da glad for at kunne hjælpe. Jeg ønsker dig held og lykke med din PHP-indlæring. Og du laver selvfølgelig bare et spørgsmål mere, hvis du har brug for hjælp :)
Avatar billede kimmys Nybegynder
06. januar 2005 - 01:43 #47
Mange tak skal du ha'! Der skal selvfølelig nok komme noget engang.. Har givet dig lidt Karma..

Igen, tak for hjælpen!
Avatar billede neocron Nybegynder
06. januar 2005 - 02:18 #48
Mange tak skal du have. Er glad for at du har fået det til at funke. Selvfølgelig kommer der mere - jeg har heller ikke styr på det hele endnu ;)
Avatar billede kimmys Nybegynder
06. januar 2005 - 13:09 #49
Er faktsik kommet på mere.. øv.. he he..

Prøv át se denne side:
http://www.subir.frac.dk/index.php?side=4

Jeg vil gerne linke til en anden side jeg har, på den side der..

Altså når man trykker på test så skal siden komme frem ligesom hvis man havde trykket på et link oppe i menuen, men kan ikke helt hitte ud af det!
Avatar billede neocron Nybegynder
06. januar 2005 - 15:49 #50
Så tilføjer du bare, under din switch:

case 5: include("side5.html"); break;
case 6: include("side6.html"); break;
case 7: include("side7.html"); break;
Avatar billede kimmys Nybegynder
06. januar 2005 - 15:55 #51
jamen det har jeg sådan set også fundet ud af..  hvis du ser test og den første test2 så har jeg kunne includere dem =)

Ville bare høre om der var en nemmere måde?
Avatar billede kimmys Nybegynder
06. januar 2005 - 15:56 #52
eller retter sagt, en mere overskuelig måde?
Avatar billede neocron Nybegynder
06. januar 2005 - 17:11 #53
Det skal jeg lige kigge på i aften - står og er på vej ud af døren. Du kan evt. lege med det og se om du kan finde på noget - ellers tager jeg en kigger i aften engang ;)
Avatar billede kimmys Nybegynder
06. januar 2005 - 17:14 #54
det er bare i orden..
Avatar billede kimmys Nybegynder
06. januar 2005 - 19:50 #55
har altså ikke fundet en nemmere måde..
Avatar billede neocron Nybegynder
06. januar 2005 - 22:00 #56
Jeg vil sige at det bliver ikke meget lettere end switch. Et andet eksempel kan være if-sætninger.

Her et eksempel på din side fra $side 1 til 7.

if($side == 1) include("side1.html");
elseif($side == 2) include("side2.html");
elseif($side == 3) include("side3.html");
elseif($side == 4) include("side4.html");
elseif($side == 5) include("side5.html");
elseif($side == 6) include("side6.html");
elseif($side == 7) include("side7.html");
else echo "Ingen side valgt - dette er forsiden";

Læg mærke til at der ingen { og }. Det er fordi at hvis du kun har ét udsagn efter din ifsætning, så kan du undlade {}.

if($a == $b) echo "a == b"; // ingen {}

if($a == $b) {
  $a += $b;
  $a + ($c / $d);
} // her udføres to ting, så her skal {} være med.
Avatar billede kimmys Nybegynder
06. januar 2005 - 22:17 #57
tjaa... arhhh.. så er det gamle hvis nemmere!
altså jeg skal jo ha' sådan at jeg kan linke inde på selve siden.. som på http://www.subir.frac.dk/index.php?side=4 Men det ville jo bare være nemmere hvis jeg kunne skrive linket på selve siden, istedet for at skulle referere til index siden, men det er jo nok eikke til at lave på denne måde!?
Avatar billede neocron Nybegynder
06. januar 2005 - 22:22 #58
Jeg tror ikke, jeg er helt med på hvad du mener. Hvis du har nogle statiske links, der skal være på hver side, så kan du jo bare skrive dem i HTML'en.
Ellers bliver du nødt til at skulle ind i de enkelte inkluderede filer og skrive dem der.
Avatar billede kimmys Nybegynder
06. januar 2005 - 22:44 #59
Det er heller ikke nemt at forklare!! vil gerne kunne forklare det så godt som muligt!

jeg har nogle problemer:

1. hvad gør jeg hvis nu jeg vil ha' eksperten.dk ind på siden, jeg kan jo include den.
2. når man trykker på et link oppe i menu'en og der kommer en ny side frem og der er et link på denne side, og jeg også gerne vil ha' det åbnet ligesom andre sider, er der så ikke andre muligheder end at tilføje siden under min switch:

case 5: include("side5.html"); break;
case 6: include("side6.html"); break;
case 7: include("side7.html"); break;

Håber det gav lidt mere mening?
Avatar billede neocron Nybegynder
06. januar 2005 - 22:55 #60
Hvis du vil have eksperten ind på din side?
Hmm, du kan jo sætte den til at åbne i et nyt vindue? (sådan forstår jeg det)
<a href="http://www.eksperten.dk" target="_blank">Eksperten</a>

target="_blank" åbner siden i et nyt vindue.

Det sidste forstår jeg heller ikke helt endnu... jeg er vist lidt tungnem idag :)
Avatar billede kimmys Nybegynder
06. januar 2005 - 23:11 #61
jamen.. jeg vil ikke åbne den i et nyt vindue.. jeg vil ha' den ind på siden ligesom hvis jeg trykkede på et link oppe i menuen, og såden så blev vist ligesom alle de andre sider!

Okay.. anden del.. kan godt prøve at skære det lidt mere up i pap!

vi kigger på http://www.subir.frac.dk/index.php?side=4

Det er den fil der hedder side4.php

der har jeg 3 links ned af siden.

hvis vi tager det første link som hedder "test" så referere det til
switch($side) {
        case 1: include("side1.htm"); break;
        case 2: include("side2.htm"); break;
        case 3: include("side3.htm"); break;
        case 4: include("side4.php"); break;
        case 5: include("side5.htm"); break;
        case 6: include("side6.htm"); break;
Case 6 på index siden.

Men jeg vil bare høre om man kan lave noget så man kan referere fra side4.php istedet for index.php, det vil gøre det lidt mere overskuleligt..

Du kan godt se at hvis jeg nu skal til at rette et link på en af undersiderne, så bliver det lidt svært at holde styr på hviket link det er på index siden.

Håber det hjalp lidt mere???
Avatar billede kimmys Nybegynder
06. januar 2005 - 23:35 #62
Nå.. har hvis fundet ud af at man ikke kan include en anden hjemmeside..
Avatar billede neocron Nybegynder
06. januar 2005 - 23:48 #63
Du må undskylde, jeg er lidt fjern i aften, men mit internet bliver brugt på at hente Debian :)

Du kan ikke include en anden hjemmeside.

Jeg tror ikke det er helt så let bare at rette det. Jeg forstår det vist heller ikke helt endnu :P Men er det noget, der er strengt nødvendigt? Jeg tror at når du har terpet lidt mere PHP, så kan du ret hurtigt selv lave ændringen, for du har jo selv 100% styr på, hvad det er, funktionen skal gøre i teorien. Problemet er bare, at få det oversat til praksis :D
Avatar billede kimmys Nybegynder
06. januar 2005 - 23:50 #64
he he nej det er ikke strengt nødvendigt, jeg spørger bare! Nå.. jeg leger bare videre så.. men ved du nogle steder hvor man mere kan lære php end på http://www.webcafe.dk/artikler/php/?
Avatar billede neocron Nybegynder
07. januar 2005 - 00:41 #65
Ja jeg kan da give et par eksempler :)
www.phpbuilder.com
www.php.net (manualen er rigtig god, og en dansk er på vej!)
www.zend.com

Google er også god - http://www.google.com/search?sourceid=navclient&ie=UTF-8&rls=GGLD,GGLD:2004-41,GGLD:en&q=php+tutorials

Og der er også meget at lære ved at snuse rundt i de tidligere indlæg her på Exp.
Avatar billede kimmys Nybegynder
07. januar 2005 - 00:45 #66
okay.. vil kigge lidt på dem så..

Har du ikke lavet nogen hjemmesider?
Avatar billede neocron Nybegynder
07. januar 2005 - 01:01 #67
Jo, jeg kørte webdruid.dk men jeg gad ikke vedligeholde den, så jeg er ved at lave en helt ny side. Du kan da nok se et par screenshots, hvis det er.
Avatar billede kimmys Nybegynder
07. januar 2005 - 01:03 #68
jo vil jeg da gerne..sæt nu jeg kunne finde noget jeg kunne bruge =)
Avatar billede neocron Nybegynder
07. januar 2005 - 03:10 #69
Min ftp har haft lidt bøvl men nu virker den lige pludselig.
http://www.webdruid.dk/screenshot.jpg

Det hele er xhtml 1.1 strict og alt layout gjort i CSS. Og så med PHP som backend. Dog er det ikke implementeret i skrivende stund. Regner med at lave et lille mini-CMS som jeg kan bruge :)

Jeg har bare lige med løs hånd fordrevet et cut, så det ser en smule anderledes ud mht. marginer og sådan.

Sikke en smørre :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester