Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[php/back]back knop werkt niet correct

Pagina: 1
Acties:

  • Elephtera
  • Registratie: Juni 2001
  • Laatst online: 22:36
Ik heb het volgende probleem. op een website met frames wil ik zorgen dat men met f5 op dezelfde pagina blijft ipv naar de begin pagina gaat.
ik had dit gedacht met een php scriptje daar het merendeel van de site al in php is. ik geef dan adressen op als index.php?menu=main&pagina=/pagina.php
netjes intern escaped om misbruik tegen te gaan.
het probleem is nu dat als ik op een link klik ik naar die pagina ga. klik ik dan op een volgende gaat het ook goed, alleen als ik nu op vorige/back klik dan zie je in de adresbalk de oude link heel eventjes komen, en soms een flits van de vorige pagina, maar daarna direct weer de pagina waar je op zat. Dit is natuurlijk heel vervelend.
als je de link direct intoetst werkt de back knop wel. en zonder deze manier van aansturen werkt de back knop ook overal.
hieronder de code van de php file die word aangeroepen. iemand enig idee waar het aan kan liggen? ik heb half google al afgezocht, en het is behoorlijk frustrerend.

het probleem doet zich voort in IE8,7, FF3, chrome

edit:
dit is een tussenstap om tzt alle frames eruit te kunnen gooien, en om nu het f5-en prettiger te maken

edit:
Vanwege de bruikbaarheid is deze code er momenteel weer uitgehaald, het is dus niet live te testen


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
$midden = "index3.php";

if (isset($_REQUEST['jcs_menu'])) {
    switch($_REQUEST['jcs_menu']) {
    case "home":
        $menu = '/menu/index.php';
        break;
    case "crypto":
        $menu = '/menu/cryptogram.php';
        break;
    case "hints":
        $menu = '/menu/hints.php';
        break;
    case "huis":
        $menu = '/menu/huispuzzels.php';
        break;
    case "overig":
        $menu = '/menu/handigg.html';
        break;
    case "help":
        $menu = '/menu/ehlr.html';
        break;
    default:
        $menu = '/menu/index.php';
        break;
    }
} else {
    $menu = '/menu/index.php';
}

if (isset($_REQUEST['pagina'])){
    $midden = htmlspecialchars($_REQUEST['pagina']);
} 



?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title>Jaspers Cryptogrammen Site</title>
<meta http-equiv="content-Type" content="text/html; charset=iso-8859-1">

<meta name="DESCRIPTION" content="niet-commerciële website waar puzzelaars elkaar helpen bij het oplossen van cryptogrammen uit dag- en weekbladen.">
<meta name="KEYWORDS" content="cryptogram, cryptogrammen, puzzel, puzzelen, scrypto, scryptogram, meulendijks, rebus, piet burger, steenhuis, King Williams Testpaper, Trouw, KWT, KWTT, King, Williams, Test">
<meta http-equiv="content-LANGUAGE" content="NL">
<meta name="RATING" content="General">
<meta name="robots" content="ALL"> 
<meta name="ROBOTS" content="index,follow">
<meta name="REVISIT-AFTER" content="2 days">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

<link rel="shortcut icon" href="http://www.2jcs.nl/favicon.ico"  type="image/x-icon">



<script type="text/javascript">
<!-- Hide script from older browsers 
if (top.frames.length != 0) {
top.location = self.document.location;
}  
//-->
</script>

</head>
    <frameset rows="90,*" frameborder="0" framespacing="0">
        <frame name="frame4" src="topmenu.htm" scrolling="no" marginwidth="0" marginheight="0" target="_self"> 
        <frameset cols="200,*" frameborder="0" framespacing="0">
            <frame name="frame1" target="frame2" src="<?php echo $menu; ?>" scrolling="no" marginwidth="0" marginheight="0">
            <frame name="frame2" src="<?php echo $midden; ?>" scrolling="auto" marginwidth="0" marginheight="0" target="_self">
         </frameset>
        <noframes>
            <body>
            <center>

            <p style="margin-right: 20">&nbsp;&nbsp;&nbsp;</p>

            <p><b><font color="#414B61" size="2">Uw browser ondersteunt geen frames.</b></p>

            <p><b> De meeste pagina's van Jaspers Cryptogrammen Site<br />
            zijn echter ook te bekijken via de <a href="/sitemap/">sitemap</a>. </b></p>
            <p><b>Veel puzzelplezier gewenst </font></b></p>
            </body>
        </noframes>
    </frameset>
</html>

“An elephant is a mouse with an operating system”


  • Johnny
  • Registratie: December 2001
  • Laatst online: 15-11 13:22

Johnny

ondergewaardeerde internetguru

Je kan ook gewoon even een testpagina met een naam ergens zetten zodat we het probleem kunnen zien, het kan namelijk ook in de headers zitten die worden meegestuurd of andere frames waarvan je de code niet hebt gegeven.

Ik vermoed echter dat het stukje JavaScript hier voor problemen zorgt. Je kan het sowieso al weghalen aangezien er geen oude browsers zijn die geen frames maar wel JavaScript ondersteunen.

[ Voor 32% gewijzigd door Johnny op 23-09-2008 01:47 ]

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Elephtera
  • Registratie: Juni 2001
  • Laatst online: 22:36
Ok, toch even een test ding gemaakt

http://www.jasperscryptogrammensite.com/tmp/index2.php
klik links op "over jcs" en daarna op "alg. gastenboek"
nu werkt de back knop niet meer. terwijl invoeren van de 2 paginas:
http://www.jasperscryptog...&pagina=/info/overjcs.htm
http://www.jasperscryptog...s_menu=home&pagina=/gb/ag
dan werkt de back wel.

Verder is het noframes deel erin vanwege de zoekmachines.
en het javascript stukje zorgt ervoor dat deze file altijd als top index staat, dus niet geframed in een andere site mag komen. het teruggaan van pagina's werkt prima als ik de links gewoon naar een frame richt (zie live site op http://www.jasperscryptogrammensite.com/index2.php)
dus dat doet mij denken dat het echt aan het kleine stukje php ligt en ook alleen als deze waarden gezet worden.

Dit is trouwens ook te zien als je op de test site doet over jcs, alg gastenboek back (werkt niet) faq back (werkt wel)

dan zijn de 1e twee links met die php, en die laatste niet.

“An elephant is a mouse with an operating system”


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Elephtera schreef op dinsdag 23 september 2008 @ 01:28:
edit:
dit is een tussenstap om tzt alle frames eruit te kunnen gooien, en om nu het f5-en prettiger te maken
Waarom een tussenstap van brak naar brak maken als je het ook direct goed kunt doen en al dit gezeik wat je per definitie met frames hebt kunt overslaan?

Professionele website nodig?


Verwijderd

Als ik een van de pagina's open die in jouw midden-frame moeten komen, bevat deze pagina zelf ook weer de frameset.. Zet javascript maar eens uit, dan zie je het :)

Je hebt dus je eigen pagina geframed in je eigen pagina, en nu zorgt dat stukje javascript dan precies ervoor dat je wordt doorgestuurd. Vandaar, als je op back drukt kom je weer op dezelfde pagina waarbij je door javascript weer terug wordt gestuurd etc.

  • Elephtera
  • Registratie: Juni 2001
  • Laatst online: 22:36
Verwijderd schreef op dinsdag 23 september 2008 @ 02:56:
Als ik een van de pagina's open die in jouw midden-frame moeten komen, bevat deze pagina zelf ook weer de frameset.. Zet javascript maar eens uit, dan zie je het :)

Je hebt dus je eigen pagina geframed in je eigen pagina, en nu zorgt dat stukje javascript dan precies ervoor dat je wordt doorgestuurd. Vandaar, als je op back drukt kom je weer op dezelfde pagina waarbij je door javascript weer terug wordt gestuurd etc.
Dankje! dat is inderdaad de oplossing :) En dat terwijl mijn moeder en ik het zelfs over de target hebben gehad dat die naar top moest ipv naar het middenframe.

De rede dat dit een tussenstap is is omdat mijn moeder nog php aan het leren is. en dat gaat in kleine stapjes.

“An elephant is a mouse with an operating system”


  • ari
  • Registratie: November 2007
  • Laatst online: 05-11 00:06

ari

Je kunt ook in plaats van die tussenstap, direct in een testomgeving voor het doel gaan. Want het werk dat je nu doet voor je tussenstap, is zonde van de tijd. Bespaar je die moeite.

Voor mijn site ben ik daar ook mee bezig. Die is nu vrij brak (menu is een verzameling linkjes met een br, en een submenu springt in dmv een breder onzichtbaar plaatje :*)), maar ik ga niet de moeite doen om dat nog te corrigeren. Dat blijft lekker staan tot ik versie 2.0 online gooi, waarin alles gewoon direct goed is.
Pagina: 1