login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Functions

Offline Voldemort - 18/06/2005 16:16 (laatste wijziging 18/06/2005 16:17)
Avatar van VoldemortPHP ver gevorderde Ik heb een beheer voor nieuws te posten enzo aan m'n site gemaakt. Daar komt elke hetzelfde stukje voor. Dus ik dacht, functions. Alleen heb ik een klein probleem, een parse error.

beheer.php:

  1. <?php
  2. function beheer_head()
  3. {
  4. //Alles wat nodig is om connectie met de database te maken
  5. include("../includes/config.php");
  6.  
  7. //Alles uit de database halen
  8. $fetch = mysql_query("SELECT * FROM `helpers` WHERE `id`='$_COOKIE[id]'");
  9. $fetch = mysql_fetch_array($fetch);
  10.  
  11. //De pagina waar men een taak kan toevoegen:
  12.  
  13. //Als het id niet kan worden gevonden
  14. if($_COOKIE[id] == "")
  15. {
  16. echo "<html>
  17. <head>
  18. <title>Harry Potter - Dreuzels: Site van de Maand toevoegen: Fout</title>
  19. </head>
  20. <body>
  21. Je bent niet ingelogd!<br><br>
  22. </body>
  23. </html>";
  24. }
  25. }
  26.  
  27. function beheer_foot()
  28. {
  29. //Anders heb je een onbekende status
  30. else
  31. {
  32. echo "<html>
  33. <head>
  34. <title>De titel</title>
  35. <body>
  36. Je hebt een onbekende status. Neem contact op met de webmaster,
  37. deze zal je probleem proberen te verhelpen.
  38. </body>
  39. </html>";
  40. }
  41. }
  42. ?>


En dan wil ik ze gebruiken:
poll_beheer.php

  1. <?php
  2. //Het beheer includen
  3. include_once('../includes/beheer.php');
  4.  
  5. echo beheer_head();
  6. //Anders, als je admin bent zie je
  7. elseif($fetch[status] == "Webmaster")
  8. {
  9. //Script
  10. }
  11. echo beheer_foot();
  12. ?>


Mijn functies willen hier niet werken, ik krijg dit terug cv:

Citaat:
Parse error: parse error, unexpected T_ELSEIF in /home/harrypot/domains/harrypotter-dreuzels.com/public_html/beheer/poll_beheer.php on line 7

46 antwoorden

Gesponsorde links
Offline Legolas - 18/06/2005 16:28
Avatar van Legolas Onbekend Je doet nergens if, dus zal hij bij elseif een parse error geven...
doe dus if ipv elseif
Offline Voldemort - 18/06/2005 16:32
Avatar van Voldemort PHP ver gevorderde Die if zit in de functie beheer_header.
Offline simontjeuh - 18/06/2005 16:32 (laatste wijziging 18/06/2005 16:33)
Avatar van simontjeuh HTML interesse fout, legolas...
met dat includen doet hij eigenlijk het volgende
  1. <?
  2. include_once('../includes/beheer.php');
  3.  
  4. echo beheer_head();
  5. // dit is dus het volgende:
  6. include("../includes/config.php");
  7.  
  8. //Alles uit de database halen
  9. $fetch = mysql_query("SELECT * FROM `helpers` WHERE `id`='$_COOKIE[id]'");
  10. $fetch = mysql_fetch_array($fetch);
  11.  
  12. //De pagina waar men een taak kan toevoegen:
  13.  
  14. //Als het id niet kan worden gevonden
  15. if($_COOKIE[id] == "")
  16. {
  17. echo "<html>
  18. <head>
  19. <title>Harry Potter - Dreuzels: Site van de Maand toevoegen: Fout</title>
  20. </head>
  21. <body>
  22. Je bent niet ingelogd!<br><br>
  23. </body>
  24. </html>";
  25. }
  26. }
  27. elseif($fetch[status] == "Webmaster")
  28. {
  29. //Script
  30. }
  31. echo beheer_foot();
  32. ?>

dus heeft hij eigenlijk wel een if, en dat is wat hij wil bereiken

EDIT: voldemort was me voor
Offline Voldemort - 18/06/2005 16:35
Avatar van Voldemort PHP ver gevorderde Hoe komt het dan dat ik die fout toch krijg?
Offline Legolas - 18/06/2005 16:38
Avatar van Legolas Onbekend @simondinges:
Jij doet het net zo goed fout!
je moet een accolade minder doen achter dat $cookie[id]
voorderest klopt het
Offline Voldemort - 18/06/2005 16:39
Avatar van Voldemort PHP ver gevorderde Als het klopt, waarom krijg ik dan een parse error?
Offline Legolas - 18/06/2005 16:42
Avatar van Legolas Onbekend Bekijk je script nou zelf eens, en haal die domme fouten eruit, hoe kan je nou een echo echoën

:o:o
Offline Voldemort - 18/06/2005 16:47
Avatar van Voldemort PHP ver gevorderde poll_beheer.php

  1. <?php
  2. //Het beheer includen
  3. include_once('../includes/beheer.php');
  4.  
  5. beheer_head();
  6. //Anders, als je admin bent zie je
  7. elseif($fetch[status] == "Webmaster")
  8. {
  9. echo "Ingelogd";
  10. }
  11. beheer_foot();
  12. ?>


Werkt nog niet...
Offline b4nkr0bz0r - 18/06/2005 16:50
Avatar van b4nkr0bz0r PHP gevorderde kijk ook is naar die fout in je query, die variable hoort blauw te worden in de highlight functie, nu is hij gewoon rood.
Offline nemesiskoen - 18/06/2005 16:51
Avatar van nemesiskoen Gouden medaille

PHP expert
else moet altijd NA een } staan.
Ook al laad je het in via een functie.
Offline Voldemort - 18/06/2005 16:53 (laatste wijziging 18/06/2005 16:56)
Avatar van Voldemort PHP ver gevorderde beheer.php

  1. <?php
  2. function beheer_head()
  3. {
  4. //Alles wat nodig is om connectie met de database te maken
  5. include("../includes/config.php");
  6.  
  7. //Alles uit de database halen
  8. $fetch = mysql_query("SELECT * FROM `helpers` WHERE `id`='".$_COOKIE[id]."'");
  9. $fetch = mysql_fetch_array($fetch);
  10.  
  11. //De pagina waar men een taak kan toevoegen:
  12.  
  13. //Als het id niet kan worden gevonden
  14. if($_COOKIE[id] == "")
  15. {
  16. echo "<html>
  17. <head>
  18. <title>Harry Potter - Dreuzels: Site van de Maand toevoegen: Fout</title>
  19. </head>
  20. <body>
  21. Je bent niet ingelogd!<br><br>
  22. </body>
  23. </html>";
  24. }
  25. }
  26.  
  27. function beheer_foot()
  28. {
  29. //Anders heb je een onbekende status
  30. else
  31. {
  32. echo "<html>
  33. <head>
  34. <title>De titel</title>
  35. <body>
  36. Je hebt een onbekende status. Neem contact op met de webmaster,
  37. deze zal je probleem proberen te verhelpen.
  38. </body>
  39. </html>";
  40. }
  41. }
  42. ?>


Werkt nog steeds niet.


Die else staat na een },

if(niet ingelogd)
{
//Fout
}
elseif(statussen)
{
}
//commentaar
else

{
//Geen status
}
Offline nemesiskoen - 18/06/2005 16:56 (laatste wijziging 18/06/2005 16:57)
Avatar van nemesiskoen Gouden medaille

PHP expert
omdat die else daar niet mag staan
je kan het beter zo oplosen:

  1. <?php
  2. function beheer_head($janee = "nee")
  3. {
  4. //Alles wat nodig is om connectie met de database te maken
  5. include("../includes/config.php");
  6.  
  7. //Alles uit de database halen
  8. $fetch = mysql_query("SELECT * FROM `helpers` WHERE `id`='".$_COOKIE[id]."'");
  9. $fetch = mysql_fetch_array($fetch);
  10.  
  11. if(janee=="ja") {
  12. echo "<html>
  13. <head>
  14. <title>Harry Potter - Dreuzels: Site van de Maand toevoegen: Fout</title>
  15. </head>
  16. <body>
  17. Je bent niet ingelogd!<br><br>
  18. </body>
  19. </html>";
  20. }
  21. }
  22.  
  23. function beheer_foot()
  24. {
  25. echo "<html>
  26. <head>
  27. <title>De titel</title>
  28. <body>
  29. Je hebt een onbekende status. Neem contact op met de webmaster,
  30. deze zal je probleem proberen te verhelpen.
  31. </body>
  32. </html>";
  33. }
  34.  
  35.  
  36. if( $_COOKIE['id'] == "" ) {
  37. beheer_head("ja");
  38. }
  39. else {
  40. beheer_head();
  41. }
  42. beheer_foot();
  43. ?>

ook zat je fout bij die cookie.
id is geen constante of integer dus moeten er quotes rond.
Offline Legolas - 18/06/2005 17:00
Avatar van Legolas Onbekend En ID is ook sowieso verschrikkelijk onveilig, doe dan bijvoorbeeld md5("wachtwoord"):)
Offline Voldemort - 19/06/2005 14:52
Avatar van Voldemort PHP ver gevorderde Dat van dat id weet ik, daar ga ik binnenkort iets aan doen.

Dat script van nemesiskoen werkt nog steeds niet:

  1. <?php
  2. function beheer_head($janee = "nee")
  3. {
  4. //Alles wat nodig is om connectie met de database te maken
  5. include("../includes/config.php");
  6.  
  7. //Alles uit de database halen
  8. $fetch = mysql_query("SELECT * FROM `helpers` WHERE `id`='".$_COOKIE[id]."'");
  9. $fetch = mysql_fetch_array($fetch);
  10.  
  11. if($janee=="ja") {
  12. echo "<html>
  13. <head>
  14. <title>Harry Potter - Dreuzels: Site van de Maand toevoegen: Fout</title>
  15. </head>
  16. <body>
  17. Je bent niet ingelogd!<br><br>
  18. </body>
  19. </html>";
  20. }
  21. }
  22.  
  23. function beheer_foot()
  24. {
  25. echo "<html>
  26. <head>
  27. <title>De titel</title>
  28. <body>
  29. Je hebt een onbekende status. Neem contact op met de webmaster,
  30. deze zal je probleem proberen te verhelpen.
  31. </body>
  32. </html>";
  33. }
  34.  
  35.  
  36. if( $_COOKIE['id'] == "" ) {
  37. beheer_head("ja");
  38. }
  39. else {
  40. beheer_head();
  41. }
  42. beheer_foot();
  43. ?>
Offline nemesiskoen - 19/06/2005 14:54
Avatar van nemesiskoen Gouden medaille

PHP expert
en euh... wat werkt er neit?
als je geen duidelijke omschrijving geeft kan ik toch niet weten wat het niet doet.
Geeft het errors? Doet het iets raar? zoja, wat dan? Geeft het een gedeelte wel, een ander gedeelte niet? Heb je al geprobeerd te debuggen?
Bij sommige stukjes een tekstje te zetten (echo "halo";) en dan kijken of dat wordt geoutput of niet?
Offline Voldemort - 19/06/2005 15:05
Avatar van Voldemort PHP ver gevorderde Dezelfde error nog steeds.

Citaat:
Parse error: parse error, unexpected T_ELSEIF in /home/harrypot/domains/harrypotter-dreuzels.com/public_html/
beheer/poll_beheer.php on line 7
Offline nemesiskoen - 19/06/2005 15:13 (laatste wijziging 19/06/2005 15:14)
Avatar van nemesiskoen Gouden medaille

PHP expert
dat is omdat je DIT hebt laten staan:
  1. elseif($fetch[status] == "Webmaster")
  2. {
  3. //Script
  4. }


dat moet weg:)

een oplossing ==>

beheer.php
  1. <?php
  2. <?php
  3. function beheer_head($janee = "nee")
  4. {
  5. //Alles wat nodig is om connectie met de database te maken
  6. include("../includes/config.php");
  7.  
  8. //Alles uit de database halen
  9. $fetch = mysql_query("SELECT * FROM `helpers` WHERE `id`='".$_COOKIE[id]."'");
  10. $fetch = mysql_fetch_array($fetch);
  11.  
  12. if(janee=="ja") {
  13. echo "<html>
  14. <head>
  15. <title>Harry Potter - Dreuzels: Site van de Maand toevoegen: Fout</title>
  16. </head>
  17. <body>
  18. Je bent niet ingelogd!<br><br>
  19. </body>
  20. </html>";
  21. }
  22. }
  23.  
  24. function beheer_foot()
  25. {
  26. echo "<html>
  27. <head>
  28. <title>De titel</title>
  29. <body>
  30. Je hebt een onbekende status. Neem contact op met de webmaster,
  31. deze zal je probleem proberen te verhelpen.
  32. </body>
  33. </html>";
  34. }
  35. ?>



  1. <?php
  2. require 'beheer.php';
  3. if( $_COOKIE['id'] == "" ) {
  4. beheer_head("ja");
  5. }
  6. else {
  7. beheer_head();
  8. }
  9. elseif($fetch[status] == "Webmaster")
  10. {
  11. //Script
  12. }
  13. beheer_foot();
  14. ?>


maar het is echt een rare manier zoals jij het doet.
Ik zou eens kijken naar deze tutorial. Een OO manier om het handig/logisch aan te pakken.
Offline Voldemort - 19/06/2005 15:28 (laatste wijziging 19/06/2005 15:30)
Avatar van Voldemort PHP ver gevorderde Ik heb nog ff wat gedaan aan dat script:

poll_beheer.php

  1. <?php
  2. require '../includes/beheer.php';
  3. if( $_COOKIE['id'] == "" ) {
  4. beheer_head("ja");
  5. }
  6. else {
  7. beheer_head();
  8. }
  9. if($fetch[status] == "Webmaster")
  10. {
  11. Echo "Ingelogd";
  12. }
  13. else
  14. {
  15. beheer_foot();
  16. }
  17. ?>


beheer.php

  1. <?php
  2. function beheer_head($janee = "nee")
  3. {
  4. //Alles wat nodig is om connectie met de database te maken
  5. include("../includes/config.php");
  6.  
  7. //Alles uit de database halen
  8. $fetch = mysql_query("SELECT * FROM `helpers` WHERE `id`='".$_COOKIE[id]."'");
  9. $fetch = mysql_fetch_array($fetch);
  10.  
  11. if($janee=="ja") {
  12. echo "<html>
  13. <head>
  14. <title>Harry Potter - Dreuzels: Site van de Maand toevoegen: Fout</title>
  15. </head>
  16. <body>
  17. Je bent niet ingelogd!<br><br>
  18. </body>
  19. </html>";
  20. }
  21. }
  22.  
  23. function beheer_foot()
  24. {
  25. echo "<html>
  26. <head>
  27. <title>De titel</title>
  28. <body>
  29. Je hebt een onbekende status. Neem contact op met de webmaster,
  30. deze zal je probleem proberen te verhelpen.
  31. </body>
  32. </html>";
  33. }
  34. ?>


Nu geeft ie dit weer:

Citaat:
Je bent niet ingelogd!

Je hebt een onbekende status. Neem contact op met de webmaster, deze zal je probleem proberen te verhelpen.


Terwijl enkel "Je bent niet ingelogd!" er zou moeten staan.


En als ik wel ben ingelogd, daan staat er enkel dit op:

Citaat:
Je hebt een onbekende status. Neem contact op met de webmaster, deze zal je probleem proberen te verhelpen.


In plaats van "Ingelogd".
Offline nemesiskoen - 19/06/2005 15:42
Avatar van nemesiskoen Gouden medaille

PHP expert
jij weet ook precies niet wat je doet he?

  1. <?php
  2. require '../includes/beheer.php';
  3. if( $_COOKIE['id'] == "" ) {
  4. beheer_head("ja");
  5. if($fetch[status] == "Webmaster")
  6. {
  7. Echo "Ingelogd";
  8. }
  9. else
  10. {
  11. beheer_foot();
  12. }
  13. }
  14. else {
  15. beheer_head();
  16. }
  17. ?>
Offline Voldemort - 19/06/2005 15:50 (laatste wijziging 19/06/2005 15:51)
Avatar van Voldemort PHP ver gevorderde Nu geeft hij als ik niet ben ingelogd dit weer:

Citaat:
Je bent niet ingelogd!

Je hebt een onbekende status. Neem contact op met de webmaster, deze zal je probleem proberen te verhelpen.


En als ik wel ben ingelogd een witte pagina.

Ik bedoeling is:

  1. //Database dinges
  2. if($_COOKIE['id'] == "")
  3. {
  4. //Niet ingelogd
  5. }
  6. elseif(status = Webmaster)
  7. {
  8. //Wel ingelogd, checken of je de juiste status hebt
  9. }
  10. else
  11. {
  12. //Alle andere fouten
  13. }


En ik wou dat

  1. //Database dinges
  2. if($_COOKIE['id'] == "")
  3. {
  4. //Niet ingelogd
  5. }

in een functie zetten en dat ook:

  1. else
  2. {
  3. //Alle andere fouten
  4. }


Waarom werkt het niet?
Offline nemesiskoen - 19/06/2005 15:53 (laatste wijziging 19/06/2005 16:29)
Avatar van nemesiskoen Gouden medaille

PHP expert
wooops my mistake

  1. <?php
  2. require '../includes/beheer.php';
  3. if( $_COOKIE['id'] != "" ) {
  4. if($fetch[status] == "Webmaster")
  5. {
  6. Echo "Ingelogd";
  7. }
  8. else
  9. {
  10. beheer_foot();
  11. }
  12. }
  13. else {
  14. beheer_head("ja");
  15. }
  16. ?>


[edit]
@hierbeneden: de code is geëdit, probeer nog eens.

Nu zou het moeten werken
die "ja" mag weg, en het eerste argument van beheer_head moet dan mee verdwijnen, ook de controle op janee.
[/edit]
Offline Voldemort - 19/06/2005 15:58 (laatste wijziging 19/06/2005 18:06)
Avatar van Voldemort PHP ver gevorderde Nu krijg ik (gelijk of ik wel of niet ben ingelogd) die fout:

Citaat:
Je bent niet ingelogd!

Je hebt een onbekende status. Neem contact op met de webmaster, deze zal je probleem proberen te verhelpen.
Offline Maarten - 19/06/2005 18:38
Avatar van Maarten Erelid Is het ook niet beter om return te gebruiken in functies ipv echo, anders echo'ed ie dat toch op de plaats waar ie gedeclareerd wordt?
Offline Voldemort - 19/06/2005 20:59 (laatste wijziging 20/06/2005 17:33)
Avatar van Voldemort PHP ver gevorderde @Murfy: Wat maakt dat uit. Als ik de functie aanroep, dan geeft ie toch letterlijk wat erin staat? Dus of ik dan echo of return, maakt dat toch geen verschil?
Offline Frederic - 20/06/2005 17:34
Avatar van Frederic PHP ver gevorderde jawel, als je returned, kan je de hele functie echo'en, maar return geeft niets weer op het scherm!
Offline Gerard - 20/06/2005 17:55 (laatste wijziging 20/06/2005 17:56)
Avatar van Gerard Ouwe rakker en dus kan je je functies aanroepen bovenaan de pagina om later pas de output eruit te gooien....

ieder zijn eigen idee erover he

edit: wacht maar tot nemesiskoen reageert, die weet hoe het zit met het OOP model etc.
Offline Voldemort - 20/06/2005 20:33
Avatar van Voldemort PHP ver gevorderde Moet ik dan onderaan elke functie return; zetten? Moeten er geen haakjes met iets (wat???) in?
Offline Shifty - 21/06/2005 08:40
Avatar van Shifty Onbekend Je kunt het beste gewoon return "hier je tekst"; gebruiken, want hiermee kan je veel meer. Wanneer je echo gebruikt ipv. return, dan wordt de tekst meteen afgedrukt op het scherm en kan je er niks mee.

Wanneer je deze returned, dan kan je het later nog in een variabele stoppen, want handig is als je het nog eens wilt gebruiken.
Offline Gerard - 21/06/2005 09:31
Avatar van Gerard Ouwe rakker
Citaat:
Wanneer je deze returned, dan kan je het later nog in een variabele stoppen, want handig is als je het nog eens wilt gebruiken.


Daarnaast heb je geen mogelijkheid om dat output nog te controleren als je echo gebruikt. met het returnen kan je deze output nog aanpassen. dus ben het helemaal eens met Shifty
Offline Voldemort - 21/06/2005 09:42 (laatste wijziging 27/06/2005 15:56)
Avatar van Voldemort PHP ver gevorderde Kan je het even de code aanpassen? Ik snap het niet echt hoe ik het moet toepassen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.354s