terug naar index.php
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
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
index.php
Vervolgens plaats je in alle mappen een .htaccess
.htaccess (in alle mappen):
En kijk je in elk bestand dat aangeroepen wordt door de 'main' index.php of de constante gedefinieerd is.
Overige (.php) bestanden:
Of:
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
Gewoon alles behalve je index.php buiten je webroot plaatsen. Dan kan niemand het direct aanroepen.
Gewijzigd op 18/09/2013 10:03:08 door Frank Nietbelangrijk
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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');
}
}
?>
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
Draai je code dus gewoon om.
Je mag niet eerst een halve pagina HTML naar het scherm sturen en dan nog headers sturen.
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.
Is dit belangrijk om altijd te doen ? 1e je php dan je html ?
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.
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.
<script language="JavaScript">
if (parent.location.href == self.location.href){
window.location.href = 'index.php'
}
</script>
Toevoeging op 18/09/2013 11:43:26:
Is dat niet alleen voor frames? Iets uit 1999?
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>
<script language="JavaScript">
if (parent.location.href == self.location.href){
window.location.href = 'index.php'
}
</script>
Marc, de PHP methode is met
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
wat jij vermeld is gewoon doorverwijzen naar de index pagina, geen controle op, of de pagina rechtstreeks of via index.php werd aangeroepen