Goedendag allen,

Ik heb een vraagje over het refreshen van de site. Mijn site bestaat uit 3 frames:

1. boven.php
2. links.php
3. hoofd.php

Als ik in het linker frame een login-script include werkt dit perfect, maar als er ingelogd is, moet hij de site vernieuwen en dat werkt niet. Heeft iemand een idee hoe dit moet?? Bijvoorbeeld als ik inlog wil ik in het bovenste frame een menu te zien krijgen die alleen te zien is voor gebruikers die zijn ingelogd. Dus in het linker frame log ik in en dan wil ik de site refreshen om vervolgens in het bovenste frame een menu te laten zien voor gebruikers die zijn ingelogd.

Ik hoop dat iemand mij kan helpen.

Alvast vriendelijk bedankt,

groeten Domi
Ja precies, maar hoe open je de hoofdpagina opnieuw nadat je op bijvoorbeeld een submit knop hebt gedrukt?

ps. Als ik de target vernader in de naam van het bovenste frame, dan opent hij alles wat ie in het linkerframe moet openen in het bovenste frame, dat is ook niet wat ik wil. In het linkerframe staat dan bijvoorbeeld dat je bent ingelogd en in het bovenste frame komt het menu te voorschijn.
Oké, maar met die target="_parent" refreshte die wel de hele pagina? Je POST toch je gebruikersnaam en wachtwoord?
Dan kan je in een "tussenpagina" (hoeft de gebruiker niets van te zien) controleerd of de gegevens goed zijn en een sessie aanmaakt en een sessievariabele ($_SESSION) gaat vullen, kan je met de header functie opnieuw de pagina laden. Het verschil zit hem in de aangemaakte sessie. Die is op te halen in alle delen van je pagina.
<?
header("Location: http://www.adresvanjesite.nl/";);
// verander dit in het adres van jouw site
?>

Als je dan in je navigatie frame en in je topframe contoleerd op die sessie, dan kan je indien de sessie goed is weergeven wat je weer wilt geven wanneer iemand is ingelogd, anders dan krijgt iemand gewoon weer het oude menu terug ;)
Ik snap wat je bedoelt en ik ben er volgens mij bijna. Maar moet ik op die tussen pagina die code plaatsen?:

<?
header("Location: http://www.adresvanjesite.nl/";);
// verander dit in het adres van jouw site
?>

En vervolgens deze pagina includen als er op de submit knop wordt gedrukt? Dat van die target op _parent dat klopt, wordt er een nieuwe pagina geopent :) Nu dus nog de index.html ergens in de header.
Deze foutmelding krijg ik in plaats dat ie een andere pagina bv. www.google.nl opent:

Warning: Cannot add header information - headers already sent by (output started at c:\apache\htdocs\domi_site\frame_site\inloggen.php:69) in c:\apache\htdocs\domi_site\frame_site\tussen_pagina.php on line 2
Ik gebruik dit stukje Javascript tussen de head-tags en het werkt bij mij perfect.
Als je inlogt en op submit drukt kun je het formulier gewoon naar hetzelfde frame sturen en checken.
Alleen moet je dit stukje javascript in de headers van het linkerframe zetten.
Alleen even de paginanaam.php veranderen in de naam van het bestand dat je wilt openen in het topframe en framenaam veranderen in de naam van dat topframe.

<head>
<SCRIPT type="text/javascript" LANGUAGE="JavaScript">
<!--
open("paginanaam.php", "framenaam");
//-->
</script>
</head>
Ik heb het probleem zowat opgelost, het bleek dat je aan het begin van je pagina (nog boven de html-tag dus) de code:

ob_start();

moest plaatsen. Alleen ik heb nu nog een klein probleem, namelijk de index.1.html wordt opnieuw geopent, dit moet ook, maar vervolgens komt er dmv een 'loop' de tekst die in het bovenste frame staat in het linker frame te staan. In een oneindige loop dus. Weet iemand dit op te lossen?

groeten Domi
Oke dan, ik ben er uit. Bedankt allemaal voor de hulp. Het was wel even puzzelen, maar dan heb je ook wat :-)

Mijn pagina bestaat dus uit 3 frames. In het linker frame moet je de code:

<?php
ob_start();
?>

bovenaan de pagina plaatsen. En vervolgens moet je controleren of er op de submit knop wordt gedrukt van je inlogscherm, zo ja dan moet er een nieuw venster geopent worden (in het form bij target de keuze _parent kiezen) door middel van een include van een tussenscherm. In dat tussenscherm staat alleen de volgende code:

<?php
header("Location: index1.php");
?>

Als je alles eens wist van tevoren :)

ThnX iedereen !!
Dominique schreef op 09.11.2005 18:58
Oke dan, ik ben er uit. Bedankt allemaal voor de hulp. Het was wel even puzzelen, maar dan heb je ook wat :-)

Mijn pagina bestaat dus uit 3 frames. In het linker frame moet je de code:

<?php
ob_start();
?>

bovenaan de pagina plaatsen. En vervolgens moet je controleren of er op de submit knop wordt gedrukt van je inlogscherm, zo ja dan moet er een nieuw venster geopent worden (in het form bij target de keuze _parent kiezen) door middel van een include van een tussenscherm. In dat tussenscherm staat alleen de volgende code:

<?php
header("Location: index1.php");
?>

Als je alles eens wist van tevoren :)

ThnX iedereen !!

Euh, maar als ik het goed begrijp, werkt dit dan ook wanneer ik een foute username en password invoert? Je zegt dat er gecontroleerd wordt of je op de submitknop drukt van je inlogscherm, maar zou je niet moeten controleren of de inloggegevens wel kloppen?
Nee, dan werkt het niet. Er wordt op elk stuk van de pagina dmv sessies gecontroleerd of je bent ingelogd of niet. Als je wel bent ingelogd, dan opent ie een nieuw scherm, met de gegevens die je alleen mag zien als je bent ingelogd. Als er geen sessie is, dan ben je dus nog niet ingelogd en blijf je gewoon het inlogscherm zien. Wel wordt de pagina opnieuw geladen, maar dat maakt niet uit, je kunt niks beginnen zolang je niet bent ingelogd.
Oké, dan is het goed.. was al bang :P dat dat nu nog geregeld zou moeten worden.. Maar het werkt nu :D

Reageren