QED
Artikelen: 0
Berichten: 43
Lid geworden op: zo 17 aug 2008, 14:25

Probleempje met php op server

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 ( :D ) 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?
"Ha ha ha... hun zijn wel dom :)"

"Wiskunde is leuker als je denkt"
Benm
Artikelen: 0
Berichten: 12.262
Lid geworden op: za 21 okt 2006, 01:23

Re: Probleempje met php op server

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.
Victory through technology
QED
Artikelen: 0
Berichten: 43
Lid geworden op: zo 17 aug 2008, 14:25

Re: Probleempje met php op server

Dan kan hij het bestand opeens niet meer vinden :D :D
"Ha ha ha... hun zijn wel dom :)"

"Wiskunde is leuker als je denkt"
Gebruikersavatar
Bart
Artikelen: 0
Berichten: 7.224
Lid geworden op: wo 06 okt 2004, 22:42

Re: Probleempje met php op server

Heb je de inlogpagina zelf geschreven? laat de code dan hier eens zien.
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton
Gebruikersavatar
Rogier
Artikelen: 0
Berichten: 5.679
Lid geworden op: di 27 apr 2004, 13:40

Re: Probleempje met php op server

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?)
In theory, there's no difference between theory and practice. In practice, there is.
Gebruikersavatar
Spooky K
Artikelen: 0
Berichten: 54
Lid geworden op: di 24 mei 2005, 21:39

Re: Probleempje met php op server

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
"I believe in God, only I spell it Nature." - Frank Lloyd Wright

"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke

"There are only two ways to live your life. One is as though nothing is a miracle. The other is as though everything is a miracle." - A. Einstein
QED
Artikelen: 0
Berichten: 43
Lid geworden op: zo 17 aug 2008, 14:25

Re: Probleempje met php op server

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]

}

?>
"Ha ha ha... hun zijn wel dom :)"

"Wiskunde is leuker als je denkt"
Gebruikersavatar
Rogier
Artikelen: 0
Berichten: 5.679
Lid geworden op: di 27 apr 2004, 13:40

Re: Probleempje met php op server

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 :D

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.
In theory, there's no difference between theory and practice. In practice, there is.
QED
Artikelen: 0
Berichten: 43
Lid geworden op: zo 17 aug 2008, 14:25

Re: Probleempje met php op server

die URL=[... enz... is toegevoegd door het forum script (niets tegen onze geweldige programmeurs hoor :P ). 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 :D .

Verder: zou je een uitleg kunnen geven van een hash? :P = eerste keer met een database :D
"Ha ha ha... hun zijn wel dom :)"

"Wiskunde is leuker als je denkt"
Gebruikersavatar
Cycloon
Artikelen: 0
Berichten: 4.810
Lid geworden op: ma 24 jan 2005, 20:56

Re: Probleempje met php op server

Verder: zou je een uitleg kunnen geven van een hash? :P = eerste keer met een database :D
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 :D
QED
Artikelen: 0
Berichten: 43
Lid geworden op: zo 17 aug 2008, 14:25

Re: Probleempje met php op server

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) :D
"Ha ha ha... hun zijn wel dom :)"

"Wiskunde is leuker als je denkt"
Gebruikersavatar
Rogier
Artikelen: 0
Berichten: 5.679
Lid geworden op: di 27 apr 2004, 13:40

Re: Probleempje met php op server

Je inlog pagina doet het nu wel zo te zien?
In theory, there's no difference between theory and practice. In practice, there is.
QED
Artikelen: 0
Berichten: 43
Lid geworden op: zo 17 aug 2008, 14:25

Re: Probleempje met php op server

Hoe krijg je die pagina alleen al te zien? :D 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
"Ha ha ha... hun zijn wel dom :)"

"Wiskunde is leuker als je denkt"
Gebruikersavatar
Spooky K
Artikelen: 0
Berichten: 54
Lid geworden op: di 24 mei 2005, 21:39

Re: Probleempje met php op server

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)?
"I believe in God, only I spell it Nature." - Frank Lloyd Wright

"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke

"There are only two ways to live your life. One is as though nothing is a miracle. The other is as though everything is a miracle." - A. Einstein
Gebruikersavatar
Rogier
Artikelen: 0
Berichten: 5.679
Lid geworden op: di 27 apr 2004, 13:40

Re: Probleempje met php op server

Hoe krijg je die pagina alleen al te zien? :D het enige wat ik krijg is:
Heel vaag, nu krijg ik dat ook, maar als ik een paar keer refresh komt hij er toch:

Afbeelding

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).
In theory, there's no difference between theory and practice. In practice, there is.

Terug naar “Informatica en programmeren”