[PHP] Sessie wordt niet meegenomen met include()

Pagina: 1
Acties:

Onderwerpen


  • GiantLeap
  • Registratie: Oktober 2005
  • Laatst online: 19-09 11:59

GiantLeap

One GiantLeap for mankind

Topicstarter
ik heb een login/registratie script wat nu met succes werkt, maar nu is het probleem dat als ik naar een ' members-only' pagina ga dat de sessie niet goed meegenomen wordt als ik hem include:

PHP:
1
2
3
<?php
include(" http://MIJNURL/members/wijzig.php");
?>


Met de header functie gaat het wel goed:

PHP:
1
2
3
<?php
header('Location: http://MIJNURL/members/wijzig.php');
?> 


Bij de header functie krijg ik dus netjes de melding dat ik ben ingelogd en krijg ik dus ook de betreffende pagina, maar met include wordt er juist gezegd dat ik niet ben ingelogd. Ik gebruik liever include aangezien dan natuurlijk niet de hele pagina veranderd alleen het frame waar het in zit ;).

De PHPCode is dus in oorde denk ik, alleen de include functie lijkt niet goed te werken
iemand enig dee waarom de include niet werkt?

Mocht het nodig zijn:

OS: Windows 2003R2
webserver: Abyss Webserver
PHP: versie 5.2.2
MYSQL: 5.0.67

[ Voor 6% gewijzigd door GiantLeap op 18-09-2008 11:15 ]

Mario Kart Tour: 211982902522
Rockstar Games Social Club (PC): GiantLeap

RC spul:
Traxxas Nitro Rustler
Hubsan X4 H107D
DJI Phantom 2 Vision+


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Wat je in je eerste code voorbeeld aan het doen bent is includen via de webserver! Het komt er dus op neer dat je server via de voorkant een nieuw request doet en vervolgens het resultaat (dus niet de php code zelf, maar de gegenereerde html!) in de originele pagina propt.

Wil je includen, gebruik dan gewoon het absolute pad, niet de url.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • GiantLeap
  • Registratie: Oktober 2005
  • Laatst online: 19-09 11:59

GiantLeap

One GiantLeap for mankind

Topicstarter
Bedankt voor je snelle reactie, dat ga ik proberen :)

Mario Kart Tour: 211982902522
Rockstar Games Social Club (PC): GiantLeap

RC spul:
Traxxas Nitro Rustler
Hubsan X4 H107D
DJI Phantom 2 Vision+


  • samo
  • Registratie: Juni 2003
  • Laatst online: 19:52

samo

yo/wassup

Klopt want met deze include wordt vanuit de server een nieuwe http sessie geopend, ipv de client. Dus als je
PHP:
1
include('relatief/pad/bestand.php');
doet zou het wel goed moeten komen denk ik.
edit: </laat>

[ Voor 3% gewijzigd door samo op 18-09-2008 11:18 ]

Bekend van cmns.nl | ArneCoomans.nl | Het kindertehuis van mijn pa in Ghana


  • GiantLeap
  • Registratie: Oktober 2005
  • Laatst online: 19-09 11:59

GiantLeap

One GiantLeap for mankind

Topicstarter
Ben net thuis, en natuurlijk heb ik het meteen geprobeerd. Maar helaas, the problem is still there.

Als ik het zo doe:

PHP:
1
2
3
<?php
include('members/wijzig.php');
?>


krijg ik een lege pagina met alleen mn opmaak :(. Is er nog een andere manier voor?

Mario Kart Tour: 211982902522
Rockstar Games Social Club (PC): GiantLeap

RC spul:
Traxxas Nitro Rustler
Hubsan X4 H107D
DJI Phantom 2 Vision+


  • vmsw
  • Registratie: Juli 2006
  • Laatst online: 24-02 19:47
Als je geen error krijgt, is het pad goed, en opent hij dus de pagina wijzig.php.
Zet voor de grap eens een stukje code neer: in principe moet hij dat uitvoeren. Doet hij dat? (bijv. echo 'test';)
Ga je code eens systematisch af, want in principe zou het zo moeten werken.

Zie het als een code-verwijzing. De server voert de code uit, en bij de include gaat hij gewoon verder met de code in wijzig.php. Zodra hij klaar is met wijzig.php gaat hij weer terug naar de plek waar de include stond, en gaat hij verder ná de include.

  • GiantLeap
  • Registratie: Oktober 2005
  • Laatst online: 19-09 11:59

GiantLeap

One GiantLeap for mankind

Topicstarter
De echo doet het wel. Maar waarom het eigenlijke script dan niet? Het is dan toch vreemd dat het via header.location wel werkt?

Mario Kart Tour: 211982902522
Rockstar Games Social Club (PC): GiantLeap

RC spul:
Traxxas Nitro Rustler
Hubsan X4 H107D
DJI Phantom 2 Vision+


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Euh, een header("location:....") is iets heel anders dan een include... :X

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • GiantLeap
  • Registratie: Oktober 2005
  • Laatst online: 19-09 11:59

GiantLeap

One GiantLeap for mankind

Topicstarter
Bedankt voor alle reacties, na het verwijderen van een while loop werkte het weer :)

Mario Kart Tour: 211982902522
Rockstar Games Social Club (PC): GiantLeap

RC spul:
Traxxas Nitro Rustler
Hubsan X4 H107D
DJI Phantom 2 Vision+


  • vmsw
  • Registratie: Juli 2006
  • Laatst online: 24-02 19:47
Goed onthouden:

header() is om iets op de client (de bekijker) te laten gebeuren/openen
include() is om iets door de server te laten doen

Verder is het handig om jezelf aan te leren "logisch" door code heen te kijken, zoals ook apache (of in jouw geval Abyss zou doen. Gewoon code langsgaan en kijken 'wat zou die doen'. Als je wil weten of hij iets wel of niet uitvoert gewoon een echo neerzetten, of desnoods die('ik ben in ieder geval tot hier gekomen').

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 21:30

Sebazzz

3dp

En vergeet niet: error_reporting(E_ALL) zolang je aan het ontwikkelen bent.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]

Pagina: 1