terug naar index.php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marc Huyghebaert

Marc Huyghebaert

17/09/2013 19:54:54
Quote Anchor link
Hallo,

Hoe kan ik op een simpele manier iemand terug verwijzen naar de index pagina, als een andere pagina rechtstreeks zou aangeroepen worden?

bvb als iemand dus contact.inc.php rechtstreeks aanroept moet deze terug gestuurd worden naar index.php

Alvast bedankt voor alle info
 
PHP hulp

PHP hulp

19/04/2024 07:37:31
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/09/2013 20:07:44
Quote Anchor link
aan je filenaam te zien zijn het libraries (sub php bestanden). Ik zou die altijd in een subdirectory opslaan. In die directory zou ik dan een .htaccess bestand aanmaken met daar in de tekst 'Deny from all' . Dan zijn de bestanden 'onzichtbaar' voor de buitenwereld. Maar wat ook kan is dat je in die directory een index.php maakt met daarin de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
header('Location: www.mijndomijn.nl/index.php');
?>


Het nadeel is dan wel dat de bestanden nog steeds rechtstreeks benaderd kunnen worden.
Wellicht kan het .htaccess bestand zodanig beschreven worden dat enkel de index.php geopend kan worden.
Gewijzigd op 17/09/2013 20:33:27 door Frank Nietbelangrijk
 
Andre Sep

Andre Sep

18/09/2013 08:49:09
Quote Anchor link
Wat ook mogelijk is (en wat je bijvoorbeeld bij CodeIgniter ziet) is in de index.php van je website een constante definieren. Daar hangt echter een grote voorwaarde aan vast, alle bestanden die je 'include' zullen door deze index.php moeten worden geincluded, of door bestanden die al zijn geincluded door index.php:

index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
define('DSA', 'blabla');
?>


Vervolgens plaats je in alle mappen een .htaccess

.htaccess (in alle mappen):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Deny from All


En kijk je in elk bestand dat aangeroepen wordt door de 'main' index.php of de constante gedefinieerd is.

Overige (.php) bestanden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if (!defined('DSA'))
    exit('No direct script access allowed');
?>


Of:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
if (!defined('DSA'))
    header('Location: www.mijndomein.nl/index.php');
?>


Wat hierbij wel erg belangrijk is, is dat er geen enkele output naar de browser gestuurd kan worden voordat alle bestanden zijn 'geincluded'. Anders krijg je de bekende foutmelding: Headers already sent...

Een extra toevoeging in de mappen zou een 403-Forbidden pagina zijn die je opslaat als index.html
Gewijzigd op 18/09/2013 08:51:06 door Andre Sep
 
Peter de Beer

Peter de Beer

18/09/2013 09:56:29
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(){
     echo "<meta http-equiv=\"refresh\" content=\"1; url=index.php\">";
}

?>
 
Erwin H

Erwin H

18/09/2013 10:00:25
Quote Anchor link
Gewoon alles behalve je index.php buiten je webroot plaatsen. Dan kan niemand het direct aanroepen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/09/2013 10:02:31
Quote Anchor link
Peter, ik noem dat een -niet php oplossing-. Het maakt de redirect browser afhankelijk en is tevens (veel) trager dan een PHP redirect. Ik gebruik dat ding echt nooit.
Gewijzigd op 18/09/2013 10:03:08 door Frank Nietbelangrijk
 
Peter de Beer

Peter de Beer

18/09/2013 10:18:32
Quote Anchor link
OKe maar als ik zelf die header gebruik werkt hij niet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php


echo'    <form  method="POST">
            <input type="hidden" name="number" value="'
.$_GET['number'].'">
            <input type="submit" name="submit" id="submit "class="button" value="verzenden">
        </form>'
;

if(isset($_POST['submit'])){
       $sql =  "Heir de update query";
       if(mysql_query($sql)){
                    header('Location: index.php');
                }
}


?>


Maak ik hier een fout of gebruik ik de functie op een verkeerde manier ?

zelf gebeuk ik dan

echo "<meta http-equiv=\"refresh\" content=\"1; url=index.php\">";

omdat dat wel werkt
Gewijzigd op 18/09/2013 10:18:57 door Peter de Beer
 
Kris Peeters

Kris Peeters

18/09/2013 10:22:14
Quote Anchor link
HTML genereren, moet je altijd onderaan de code zetten.

Draai je code dus gewoon om.

Je mag niet eerst een halve pagina HTML naar het scherm sturen en dan nog headers sturen.
 
Eddy E

Eddy E

18/09/2013 10:28:43
Quote Anchor link
Andre Sep op 18/09/2013 08:49:09:
Anders krijg je de bekende foutmelding: Headers already sent...


Dit dus...

Gewoon alle HTML pas op het laatst echoën.
 
Peter de Beer

Peter de Beer

18/09/2013 10:33:30
Quote Anchor link
Helemaal top het werkt inderdaad

Is dit belangrijk om altijd te doen ? 1e je php dan je html ?
 
Andre Sep

Andre Sep

18/09/2013 10:38:43
Quote Anchor link
Is wel het makkelijkst om overzicht te houden en ook het meest logische...

Ik weet niet of het daadwerkelijk uitmaakt, maar voor mijn gevoel moet ik eerst alles op de webserver uitvoeren (dus PHP code) en vervolgens pas gegevens naar de clien sturen (dus HTML).

Stel je wilt ook gegevens controleren op de client (JavaScript of jQuery) dan komt dit voor de PHP. Op die manier beperk je naar mijn idee het 'onnodige verkeer' tussen server en client. Of dit ook daadwerkelijk zo is, weet ik echt niet. Het is een manier van werken geworden omdat het 'logisch' is.
 
Kris Peeters

Kris Peeters

18/09/2013 10:41:56
Quote Anchor link
Peter de Beer op 18/09/2013 10:33:30:
Is dit belangrijk om altijd te doen ? 1e je php dan je html ?


Ja.
Altijd blijven doen.
 
Marc Huyghebaert

Marc Huyghebaert

18/09/2013 11:42:10
Quote Anchor link
Zo kan het uiteraard, maar deze methode is met Javascript, dit zou toch moeten kunnen in php zonder .htacces te gebruiken

<script language="JavaScript">
if (parent.location.href == self.location.href){
window.location.href = 'index.php'
}
</script>
 
Eddy E

Eddy E

18/09/2013 11:43:14
Quote Anchor link
Is dat niet alleen voor frames? Iets uit 1999?

Toevoeging op 18/09/2013 11:43:26:

Is dat niet alleen voor frames? Iets uit 1999?
 
Kris Peeters

Kris Peeters

18/09/2013 12:11:19
Quote Anchor link
of popups ?

of was dat opener.window. ... ?
Gewijzigd op 18/09/2013 12:11:59 door Kris Peeters
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/09/2013 12:17:11
Quote Anchor link
Marc Huyghebaert op 18/09/2013 11:42:10:
Zo kan het uiteraard, maar deze methode is met Javascript, dit zou toch moeten kunnen in php zonder .htacces te gebruiken

<script language="JavaScript">
if (parent.location.href == self.location.href){
window.location.href = 'index.php'
}
</script>

Marc, de PHP methode is met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
header('Location: index.php');
?>


zoals eerder vermeld is de voorwaarde dat je nog NIETS ge-output hebt, dus géén echo en ook géén tekens, karakters of HTML buiten de php tags
 
Marc Huyghebaert

Marc Huyghebaert

18/09/2013 18:44:54
Quote Anchor link
@ Frank Nietbelangrijk,

wat jij vermeld is gewoon doorverwijzen naar de index pagina, geen controle op, of de pagina rechtstreeks of via index.php werd aangeroepen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.