Avatar billede julemandenb Nybegynder
21. oktober 2009 - 21:33 Der er 11 kommentarer og
1 løsning

Login ok men mangler design :s

Heeej Alle Eksperter (:

Jeg er gået i gang med at bygge en lille WebShop
op, jeg er dog stødt på et lille problem...

Jeg har lavet det sådan at jeg har en index fil
som er includeret design. alle de andre filer
er dog ikke includeret da den kun skifter
teksten.......

Jeg er dog løbet ind i det problem at
jeg ikke ved hvordan det skal gøreres med
dette link:

echo "<META HTTP-EQUIV='REFRESH' CONTENT='0; URL=velkommen.php'>";

Evt test på www.coolboom.dk
gå nederst på siden og klik på "Admin Login"
derefter prøv at logge ind med loginoplysningerne:

Brugernavn: eksperten
Password eksperten

så vil du blive ført ind på en side uden design :s

De andre link har jeg lavet således:

<li><a href="?side=ditlinkher">dit link, klik her!</a></li>

Nogle som har et forslag til hvordan jeg gør så den viser mit design på velkommen.php ?


Ps. hvis nogle har tid så kunne jeg godt bruge lidt hjælp
en gang imellem så det kunne værer rat med en msn hvis nogle
var friske (:

Hilsen
Mikkel Bering

NB.
alle link på velkommen.php (Administrator siden) er uskadlige
og kan IKKe benyttes!
Avatar billede Slettet bruger
21. oktober 2009 - 23:10 #1
Gider du vise din include på admin siden?
Måske er den relativ i forhold til index.php siden, men da admin siden ligger i en undermappe virker det ikke.
Avatar billede Slettet bruger
21. oktober 2009 - 23:11 #2
Eller lav admin siden til et ?admin link.
Avatar billede julemandenb Nybegynder
22. oktober 2009 - 08:16 #3
kimsey0
Undskyld, det vist nok mig der ikke har forklaret nok....

når man logger ind og kommer ind på velkommen.php
så åbner det en en ny side...

Jeg bruger denne her kode

<?php //her starter vi vores side hvor alt skal vises
          $side = addslashes($_GET['side']); // Lidt sikkerhed
          if ($side) { //                      Hvis strengen $side er sat
          if (file_exists("".$side.".php")) {
          include("".$side.".php"); //  Inkluder filen strengen peger på
          } else {
          include("fejl404.php");
          }
          } else { //Hvis strengen $side ikke var sat
          include("forside.php"); //Inkluder forsiden
          }
          ?>

Så skal jeg sætte:

?side=

Ind i mine link, men jeg ved ikke hvordan jeg gør det med denne her kode:

echo "<META HTTP-EQUIV='REFRESH' CONTENT='0; URL=velkommen.php'>";

alle de andre link har jeg jo lavet således:

<a href="?side=ditlinkher">dit link, klik her!</a>


//Mikkel
Avatar billede Slettet bruger
22. oktober 2009 - 15:40 #4
Hvis muligt, så udskift echo "<META HTTP-EQUIV='REFRESH' CONTENT='0; URL=velkommen.php'>"; med header("Location: ?side=admin");
Dette kræver at det gøres før noget data bliver sendt til brugeren, ikke engang et mellemrum må der være før.

Ellers kan du bruge denne løsning:
$host  = $_SERVER['HTTP_HOST'];
$ext  = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
echo "<META HTTP-EQUIV='REFRESH' CONTENT='0; URL=".$host.$ext."/velkommen.php'>";
Avatar billede Slettet bruger
22. oktober 2009 - 15:41 #5
echo "<META HTTP-EQUIV='REFRESH' CONTENT='0; URL=".$host.$ext."/?side=admin'>";
Selvfølgelig
Avatar billede julemandenb Nybegynder
22. oktober 2009 - 18:06 #6
kimsey0 Tuisende tak for hjælpen det virker (:
Avatar billede julemandenb Nybegynder
22. oktober 2009 - 18:13 #7
Kimsey0
Smid lige et svar

Nu har jeg så et lille problem med:


Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /web/web/web10/www/coolboom.dk/index.php:7) in /web/web/web10/www/coolboom.dk/admin/velkommen.php on line 2

Test på http://coolboom.dk/?side=admin/velkommen

Linje 1-5 ser således ud:

<?
session_start(); // Starter sessionen og dermed får alle oplysninger
if (session_is_registered("brugernavn") AND ("kodeord")) {  // Tjekker om man er logget ind
include "config.php"; // Includere config.php
?>
Avatar billede Slettet bruger
23. oktober 2009 - 20:23 #8
Det betyder, at sessionen ikke er det første det startes:

(mellemrum her -->) <?php session_start() //Fejl

<?php
include('side.html');
session_start() //Fejl
Avatar billede julemandenb Nybegynder
23. oktober 2009 - 20:39 #9
kimsey0...

Kan du udybbe noget bedre?
- forstå ikke? ;s
Avatar billede Slettet bruger
24. oktober 2009 - 15:21 #10
Ja, jeg kan da prøve at uddybe, men så bliver jeg altså også nød til at forklare lidt (meget) om http protokollen:

Lad os antage at klienten (som vi kalder brugeren) allerede har fundet serveren, ellers bliver det lidt for besværligt.
Først sender klienten en forespørgsel til serveren, og hvilken side den gerne vil have, "Hej. Jeg vil gerne have http://eksempel.dk"
Derefter forhandler de indbyrdes om, hvilken kryptering, hvilket sprog og tegnsæt der skal bruges. Det springer vi også let og elegant over.
Så fortæller serveren klienten hvilken side den vil sende, hvilke cookies der følger med og hvilken slags fil siden er. "Her kommer http://eksempel.dk med cookien 'PHPSESID' som er lig 'abc123'. Siden er HTML."
Klienten sender svar tilbage, at den har modtaget sidehovedet (headers), og at sideoverførslen kan begynde.
Siden bliver overført, klienten viser siden, de siger "Tak og farvel" og afbryder så forbindelse.

Når serveren skal sende en side afsted, starter den med at finde ud af, om siden bare skal sendes, eller om den skal "preprocesses". PHP, akronym for PHP Hypertext Preprocessor, er en såden preprocessor. Oftest er webserveren indstillet til kun at sende sider videre til PHP hvis de slutter på en bestemt endelse, f.eks. ".php", eller ".phtml".
Når PHP tager over starter den med at læse siden fra toppen. Hvis der i filen kaldes en funktion som vil tilføje noget til sidehovedet (en header), fortæller PHP det til webserveren.

Hvis PHP til gengæld finder noget der vil sende indhold, (tilføje noget til body'en fortæller PHP webserveren, at nu begynder indholdet. De fleste webservere er så konfigureret til straks at sende sidehovedet afsted, for hurtigt at kunne få svar fra klienten. PHP sender også indhold afsted selvom det ikke kommer fra en funktion, altså bliver abc<?php echo "123";?> til abc123 og ikke bare 123.

Hvis der ved en fejl er kommet et mellemrum ind før starten på php koden vil dette blive sendt til webserveren, og det vil altså ikke være muligt for PHP at tilføje mere til sidehovedet, da dette allerede er sendt afsted.

PHP sessioner bruger cookies til at holde styr på de forskellige brugere, og da cookies sendes med sidehovedet er det altså ikke muligt at oprette en session efter at der er afsendt indhold. Derfor den fejl du oplever.


Jeg håber ikke det blev for kludret, så det ikke var til at forstå.
Avatar billede julemandenb Nybegynder
25. oktober 2009 - 08:06 #11
kimsey0 stor tak for din hjælp (:
Jeg vil gerne have du lige sender et svar :b
Avatar billede Slettet bruger
25. oktober 2009 - 13:03 #12
Selv tak :)
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
Kurser inden for grundlæggende programmering

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