login  Naam:   Wachtwoord: 
Registreer je!
 Forum

cannot redeclare (Opgelost)

Offline Stefan14 - 23/06/2007 22:14 (laatste wijziging 23/06/2007 22:29)
Avatar van Stefan14PHP gevorderde Ik heb een stomme foutmelding, namelijk
  1. Fatal error: Cannot redeclare inloggen() (previously declared in F:\Scripts\taakbeheer\functies.php:2) in F:\Scripts\taakbeheer\functies.php on line 39


Maar voor zover ik weet wordt deze maar 1 keer aangeroepen, en dat is 1 maal op de index pagina.

  1. <?php
  2. /////functies.php/////
  3. function inloggen($gebruikersnaam,$wachtwoord)
  4. {
  5. if (!isset($gebruikersnaam) || !isset($wachtwoord)) //wanneer gebruikersnaam of wachtwoord niet ingevuld is
  6. {
  7. header("Location: ?page=index");
  8. }
  9. else
  10. {
  11. $query = "SELECT
  12. id,
  13. gebruikersnaam,
  14. naam,
  15. rank
  16. FROM
  17. users
  18. WHERE
  19. gebruikersnaam = '".$gebruikersnaam."'
  20. AND
  21. wachtwoord = '".sha1($wachtwoord)."'";
  22. $result = mysql_query($query) or die (mysql_error());
  23.  
  24. if (mysql_num_rows($result) == 0) //wanneer er geen overeenkomstige gebruiker is gevonden
  25. {
  26. header("Location: ?page=index");
  27. }
  28. else //wanneer dit wel het geval is, dan inloggen
  29. {
  30. $row = mysql_fetch_array($result);
  31. $_SESSION['userID'] = $row['id'];
  32. $_SESSION['username'] = $row['gebruikersnaam'];
  33. $_SESSION['naam'] = $row['naam'];
  34.  
  35. header("Location: index.php");
  36. }
  37. }
  38. }
  39. ?.


  1. <?php
  2. /////index.php/////
  3. include('config.php');
  4. include('functies.php');
  5. //.........en meer, maar dat is niet van belang
  6. ?>


Snapt iemand het?

14 antwoorden

Gesponsorde links
Offline Sam - 23/06/2007 22:29 (laatste wijziging 23/06/2007 22:29)
Avatar van Sam PHP expert weet niet zeker of dit is wat je zoekt:

http://be2.php.net/manual/nl/function.ob-start.php
EDIT: Moet dus bovenaan je script komen
Offline Stefan14 - 23/06/2007 22:30 (laatste wijziging 23/06/2007 22:31)
Avatar van Stefan14 PHP gevorderde nee, dat is om output te bufferen, dat heeft met headers te maken, ik zal het even proberen, maar denk niet dat het zal helpen.

EDIT: zoals ik al vermoedde, bovenaan index.php gezet, maar foutmelding blijft hetzelfde.
Offline Chupskie - 23/06/2007 22:36
Avatar van Chupskie MySQL beginner Wat je zou kunnen proberen is het volgende:

  1. <?php
  2. include_once('functies.php');
  3. ?>


Zo weet je zeker, dat het bestand maar 1x geinclude mag/kan worden.

Succes.
Offline Stefan14 - 23/06/2007 22:37
Avatar van Stefan14 PHP gevorderde @Chupskie, dat had ik zelf ook al geprobeerd, maar vreemde is dan dat hij maar blijft laden en op een gegeven moment zegt (in FF) "De verbindingwerd geherinitialiseerd". Met require_once hetzelfde.

Zodra ik dat once weer weghaal krijg ik weer die foutmelding, vrij vreemd dus.
Offline marten - 23/06/2007 23:04
Avatar van marten Beheerder noem die functie eens anders en roep hem via die andere functie naam aan.
Offline Stefan14 - 23/06/2007 23:12 (laatste wijziging 23/06/2007 23:15)
Avatar van Stefan14 PHP gevorderde heb de functie even blabla genoemd, maar foutmelding blijft hetzelfde.

nog vreemder is dat wanneer ik include('functies.php'); als comment zet dat hij ook weer zo lang laad en dat hij "De verbinding werd geherinitialiseerd" zegt.
Dus nu blijkt die functies.php nog perse nodig te zijn ook.

Ik snap er helemaal niets meer van.

EDIT: overigens roep ik die functie niet aan hoor, ik include alleen het bestand met de functies maar.
Offline marten - 23/06/2007 23:15
Avatar van marten Beheerder Zet session_start(); sowieso helemaal bovenaan dus ook geen commentaar er tussen. Je komt waarschijnlijk in een oneindige loop

index --> functions --> header --> index --> functions --> header --> index --> functions enz enz

Beter is je functie zo te schrijven dat je iets returned. En vervolgens kan je een if / else structuur doen met de waarde die hij returned.
Offline Stefan14 - 23/06/2007 23:23
Avatar van Stefan14 PHP gevorderde Ik heb nu het inloggen uit functions.php gehaald en in inloggen.php gezet.

zie:
index.php http://plaatscode.be/5718/
inloggen.php http://plaatscode.be/5719/

Naast deze twee pagina's heb ik nog functies.php (deze is nu leeg), en config.php, hier staat alleen de databaseconnectie in.

Nu is het zo dat hij alleen nog maar lang blijft laden.

Offline marten - 23/06/2007 23:26
Avatar van marten Beheerder Dus je krijgt geen meldingen meer?
Offline Stefan14 - 23/06/2007 23:34 (laatste wijziging 23/06/2007 23:34)
Avatar van Stefan14 PHP gevorderde nee, want de pagina laadt heel erg traag, en dan komt die "verbinding werd geherinitialiseerd" melding weer.

Dus dan zal hij wel weer met zo'n oneindige loop bezig zijn zeker?
Offline marten - 23/06/2007 23:41
Avatar van marten Beheerder Waarschijnlijk wel. Kijk eens naar de andere if / else structuren enzo. Misschien beter nu gaan slapen en morgen nog eens kijken. Als je te lang kijkt lees je er snel over heen.
Offline Stefan14 - 23/06/2007 23:43 (laatste wijziging 23/06/2007 23:49)
Avatar van Stefan14 PHP gevorderde nu al slapen? Nee, dat zit er nog even niet in, heb nog zat andere dingen te doen ook. wordt misschien wel 02:00.

Maargoed, zal morgen wel verder zien.

EDIT: kon het toch niet laten nog heel even verder te gaan, en heb nu gevonden wat er dwars zat, ik had als default bij de switch index.php ingesteld, en ik zat al op de index pagina, zo blijft hij dus inderdaad rondjes gaan.
Offline marten - 23/06/2007 23:54
Avatar van marten Beheerder :) Dus het is opgelost nu?
Offline Stefan14 - 24/06/2007 00:09
Avatar van Stefan14 PHP gevorderde jep is opgelost, maar jij hebt hem al voor me uit de lijst verwijderd zie ik 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.488s