1 van 1
Probleempje met php op server
Geplaatst: di 19 aug 2008, 14:04
door QED
Geen idee of dit het goede subforum is, maar ik kon geen andere goede vinden.
Ik ben druk bezig om mijn PHP kennis uit te breiden en ben nu bezig met een database-based (
) CMS. Ik heb een inlogpagina gemaakt met het adres ../admin/index.php. Ik zet 'm op de server, probeer het bestand te openen en krijg:
foutmelding 403: You don't have permission to access /admin/index.php on this server.. Bij andere pagina's krijg ik foutmeldingen over mijn session gebruik, terwijl ik toch bovenin de pagina goed session_start() heb neer gezet. Weet iemand waar dit aan kan liggen? Ligt het aan het gebruik van een database?
Re: Probleempje met php op server
Geplaatst: di 19 aug 2008, 14:27
door Benm
Met die database heeft het echt niets te maken...
Zou het evt kunnen dat je in een shared/virtual hosting omgeving zit waarbij /admin is gereserveerd voor het een of ander, en daardoor die error geeft? Even verplaatsen naar /onzin zou dan moeten helpen.
Re: Probleempje met php op server
Geplaatst: di 19 aug 2008, 15:00
door QED
Dan kan hij het bestand opeens niet meer vinden
Re: Probleempje met php op server
Geplaatst: di 19 aug 2008, 19:49
door Bart
Heb je de inlogpagina zelf geschreven? laat de code dan hier eens zien.
Re: Probleempje met php op server
Geplaatst: wo 20 aug 2008, 08:39
door Rogier
Ik heb een inlogpagina gemaakt met het adres ../admin/index.php.
Ten opzichte van wat, de web root? Want dan kun je sowieso niet naar die dir browsen.
(of waren die twee puntjes een typo?)
Re: Probleempje met php op server
Geplaatst: wo 20 aug 2008, 18:24
door Spooky K
Het klinkt als een fout die ik zelf kort geleden ook ben tegen gekomen. Bij mij lag het probleem in de instellingen van Apache: ik had niet de juiste permissies gegeven aan mappen in mijn root map.
Mocht het aan je code liggen: een website waar ik zelf vrijwel alles van geleerd heb en nog steeds als naslagwerk gebruik (voor php):
http://hudzilla.org/phpwiki/index.php?title=Main_Page
Re: Probleempje met php op server
Geplaatst: do 21 aug 2008, 18:58
door QED
Ik zal hieronder de PHPcode geven:
Code: Selecteer alles
<?php
session_start();
if (isset($_POST["inloggen"])) {
// Include Open-server-file
include("PHP/server.php");
// Inloggegevens
$gebruikersnaam=$_POST["gebruikersnaam"];
$wachtwoord=$_POST["wachtwoord"];
// Query
$queen="SELECT Naam, Wachtwoord, Permissies FROM Accounts WHERE Username =".$gebruikersnaam;
// Foutcontrole voor invoer
if (!mysql_query($queen, $db)) {
header("Location: [url="http://www.bobby.gethost.nl/admin/index.php");"]http://www.bobby.gethost.nl/admin/index.php");[/url]
}
else {
$resultaat=mysql_query($queen, $db);
}
mysql_close($db);
// Wachtwoord controle
// +
// Listing variables
list($name, $pass, $perm) = $resultaat;
if ($wachtwoord==$pass) {
$_SESSION["naam"] = $name;
$_SESSION["perm"] = $perm;
header("logedin.php");
}
else {
header("Location: [url="http://www.bobby.gethost.nl/admin/index.php");"]http://www.bobby.gethost.nl/admin/index.php");[/url]
}
}
else{
header("Location: [url="http://www.bobby.gethost.nl/admin/index.php");"]http://www.bobby.gethost.nl/admin/index.php");[/url]
}
?>
Re: Probleempje met php op server
Geplaatst: do 21 aug 2008, 22:24
door Rogier
Is dat met die url= tussen vierkante haken in je header regels nou een tiepfout? Want dat moet natuurlijk weg, het is gewoon:
Code: Selecteer alles
header("Location: http://www.bobby.gethost.nl/admin/index.php");
Verder staat er bij die logedin.php geen location voor, dat zal wel dit moeten zijn:
Code: Selecteer alles
header("Location: http://www.bobby.gethost.nl/admin/loggedin.php");
Nog belangrijker: deze code is extreem onveilig. Wat denk je dat er gebeurt als een of andere grapjas dit invult als gebruikersnaam:
x; DELETE * FROM Username;
of dit:
x; UPDATE Accounts SET Wachtwoord=x;
en vervolgens inloggen als admin
Gouden Regel: troep die door users wordt ingevuld (zoals namen, wachtwoorden, enz) die je in SQL queries gebruikt,
ALTIJD escapen met
mysql_real_escape_string() en quotes omheen zetten.
Verder zou ik geen passwords in je database opslaan, maar hashes van passwords. Net zo veilig, en voorkomt dat iemand ooit de daadwerkelijke passwords kan lezen.
Re: Probleempje met php op server
Geplaatst: do 21 aug 2008, 22:32
door QED
die URL=[... enz... is toegevoegd door het forum script (niets tegen onze geweldige programmeurs hoor
). Die fout met Location is idd een fout, maar volgens mij kan dat de fout niet veroorzaken. De pagina wordt helemaal niet getoond! De foutcontrole ben ik mee bezig, maar die doe ik altijd op het laatst, want anders zie ik door de bomen het bos niet meer
.
Verder: zou je een uitleg kunnen geven van een hash?
= eerste keer met een database
Re: Probleempje met php op server
Geplaatst: do 21 aug 2008, 22:47
door Cycloon
Verder: zou je een uitleg kunnen geven van een hash?
= eerste keer met een database
Een hash is een gecodeerde vorm van een string. Zo kan je van een string een md5 hash maken (gecodeerd volgens het md5 logaritme) wat momenteel zowat het meest gebruikte is. Er zijn er ook nog andere zoals SHA en dergelijke. Een hash heeft de eigenschap dat je een string kan coderen, maar de gecodeerde vorm niet meer kan omzetten naar de originele string. Mocht iemand dus ooit de inhoud van je database zien dan zien ze enkel de hash waarden en niet de echte wachtwoorden.
Wanneer je nu met php een wachtwoord in je database stopt dan zet je deze dus best eerst om naar een md5 hash dmv de functie md5($string). Wanneer iemand nu inlogt kan je testen of de hash waarden van de login gelijk is aan die van de database. Bv: if (md5($login) == $database_hash) login();
Hashes zijn ook niet 100% veilig omdat je ze wel kan bruteforcen in zekere zin. Er zijn hele databases te vinden met miljoenen hash waarden in om zo een passende string te vinden met die hash waarde maarja, niks is 100% veilig. Maar dit zijn zorgen voor later
Re: Probleempje met php op server
Geplaatst: za 23 aug 2008, 12:26
door QED
Alles gedaan wat jullie zeiden (fouten eruit, veiliger gemaakt, mapnamen aangepast, rechten veranderd), maar heeft helemaal niets geholpen. Ff voor de duidelijkheid: die ../admin/index.php staat voor
www.bobby.gethost.nl/admin/index.php . Mss ligt het daaraan? (hoop hoop)
Re: Probleempje met php op server
Geplaatst: za 23 aug 2008, 12:58
door Rogier
Je inlog pagina doet het nu wel zo te zien?
Re: Probleempje met php op server
Geplaatst: za 23 aug 2008, 17:07
door QED
Hoe krijg je die pagina alleen al te zien?
het enige wat ik krijg is:
Forbidden
You don't have permission to access /admin/index.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
--------------------------------------------------------------------------------
Apache/2 Server at
www.bobby.gethost.nl Port 80
Re: Probleempje met php op server
Geplaatst: za 23 aug 2008, 18:01
door Spooky K
Het meest waarschijnlijke lijkt me toch dat je Apache verkeerd ingesteld hebt. Kun je de config-file eens posten (of in ieder geval het deel waar je de rootdir en de permissies hebt ingesteld)?
Re: Probleempje met php op server
Geplaatst: zo 24 aug 2008, 11:06
door Rogier
Hoe krijg je die pagina alleen al te zien?
het enige wat ik krijg is:
Heel vaag, nu krijg ik dat ook, maar als ik een paar keer refresh komt hij er toch:
Als ik blijf refreshen doet hij het 9 van de 10 keer goed.
Maar nog vager: als ik hetzelfde in Firefox probeer blijft die error komen, hoe vaak ik ook refresh!
Het ligt dus in ieder geval niet aan je php code, d'r is echt iets mis met je server instellingen. Let trouwens op de
titel, het is dus een 403 error, geen 404! (die 404 in te de tekst komt omdat hij de pagina voor een 403 error niet kan vinden).