login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHP Login script

Offline britdiensten - 11/11/2013 19:11 (laatste wijziging 11/11/2013 19:18)
Avatar van britdienstenLid Hallo allemaal,
IK zal mezelf even voorstellen. Ik ben Branco Rensen van Br-ITDiensten. Br-itdiensten is een beginnend bedrijf dat cursussen gaat geven over windows en meer. Nu zijn wij bezig met ons cursus systeem. We hebben het template met de layout etc al af. Nu moet het systeem erachter nog klaar gemaakt worden. Nu hebben we een loginsysteem maar deze geeft een error en dat is de volgende error: Fatal error: Cannot redeclare class login. Weet iemand hier hoe ik dit kan oplossen?
Het script
ALs er iemand is die mijn kan helpen zou ik erg dankbaar zijn.

Met vriendelijke groet,
Branco Rensen
Br-ITDiensten
www.britdiensten.nl

3 antwoorden

Gesponsorde links
Offline vinTage - 11/11/2013 21:53 (laatste wijziging 11/11/2013 22:00)
Avatar van vinTage Nieuw lid Je roept dat script 2 keer aan (en op de tweede aanroep krijg je dus die melding)
Waarschijnlijk zal het script naar behoren werken. (doe wel iets aan de meldingen, niemand hoeft te weten wat er niet goed gaat!)
Offline Wijnand - 12/11/2013 08:46
Avatar van Wijnand Moderator Inderdaad wat vinTage zei, wordt deze class twee keer 'geïnitialiseerd'.

Meestal komt dit door 1 van de volgende 2 redenen:
- je hebt bv in config.php ook een class "login".
- je include dit bestand twee keer, bijvoorbeeld op de 'hoofd-index' en in een andere pagina nog een keer.

Je kunt het oplossen door dit om je code heen te zetten:

  1. if (class_exists('login')) {
  2. // hier dan 'class Login {'
  3. // overige code in je class
  4. // }
  5. }
Offline Thomas - 12/11/2013 13:17
Avatar van Thomas Moderator daarnaast, @script

Het hele script wordt nog steeds doorlopen als je header.php aanroept... header() wordt namelijk pas uitgevoerd als het script helemaal klaar is... Dit zie ik wel vaker gebeuren als header() wordt gebruikt.

dus ofwel je doet dit:

  1. <?php
  2. // Een beveiliging om te voorkomen dat men in je header.php probeert te openen.
  3. if(basename($_SERVER['PHP_SELF']) == "header.php") {
  4. header("Location: index.php");
  5. exit; // STOP de verdere verwerking van dit script
  6. }
  7. ?>


Of, wellicht beter, introduceer een CONSTANTE en kijk of deze is gedefinieerd in je include, if not, dan weet je dus dat een include rechtstreeks wordt aangeroepen:

  1. <?php
  2. if (!defined('INCLUDES_ALLOWED')) {
  3. die('toegang geweigerd');
  4. }
  5. ?>


daarnaast #2
gebruik require_once() ipv include(_once)().
Bedankt door: Wijnand
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s