Toon posts:

[php] functie werkt niet

Pagina: 1
Acties:
  • 38 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb zojuist een leuk filetje met functions geschreven voor de opmaak van mijn forum.
alleen nou is er 1 probleem: hij werkt niet :)
ik include de file in een andere file maar hij werkt gewoon
NIET :/
dit is mijn functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
function maakop($bericht){
 if(!$html)
 $bericht = htmlspecialchars($bericht);
 $bericht = eregi_replace("\n","<br>",$bericht);
 $bericht = Kleur($bericht);
 $bericht = UBB($bericht);
 $bericht = Smile($bericht);
 return $bericht;
}
?>

die andere functies staan ook in de file maar dat boeit nou ff niet.
want zelfs de eregi_replace werkt niet :S
ik include op deze manier: include("functions.php");
require ook al geprobeerd, helpt nix ;/

  • Marcj
  • Registratie: November 2000
  • Laatst online: 17:21
krijg je een error, of gebeurt er gewoon niets?

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
ipv eregi_replace kun je str_replace gebruiken (je gebruikt hier helemaal geen regex), of nl2br. verder is $html niet gedefinieerd (hint: global)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

ja uh, kijk eens goed? je test op een waarde die er helemaal nooit is?

Klaar voor een nieuwe uitdaging.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op zaterdag 16 februari 2002 13:29 schreef marcusk het volgende:
(hint: global)
Ook bekend als:
Vraag: Ik wil een toets indrukken op mijn keyboard
Antwoord: Probeer het eens met een hamer.

Jij bleef vroeger zeker ook doorgaan om het vierkant door het cirkeltje te krijgen?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

code:
1
function maakop ( $bericht, $html = true )

op deze manier wordt voor $html een default-waarde true meegegeven aan de functie:
code:
1
2
3
maakop ( $var );      // <-- aangeroepen met $html true
maakop ( $var, true );  // <-- idem
maakop ( $var, false ); // <-- aangeroepen met $html false

da's imo de correcte oplossing

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
dusty,

je bedoeld waarschijnlijk dat global volgens jou 'not done' is? ben ik met je eens in de meeste gevallen (voor $bericht bv. zou het behoorlijk gestoord zijn ;)). ik kan het mis hebben, maar hier lijkt het een sort van globale configuratie. dat vind ik niet iets wat je als parameter moet doorgeven (zelf zou ik dat echter een constante gebruiken)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

marcusk:
(zelf zou ik dat echter een constante gebruiken)
Dan zou ik het zo doen:
code:
1
function maakop ( $bericht, $html = _DEFAULT_HTML )

ofzo. Namen van constanten verzinnen is nooit mijn sterkste kant geweest :+

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
Op zaterdag 16 februari 2002 16:07 schreef drm het volgende:
Dan zou ik het zo doen:
[...]
Oh, ik bedoelde eigenlijk zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
// in constants.inc ofzo:
define('HTML', true);
(...)

// in de functie:
function maakop($bericht)
{
    if (HTML)
      (...)
    (...)
}

En namen verzinnen is idd lastig :)

  • Tain
  • Registratie: Januari 2002
  • Laatst online: 20-07 20:32
en je zou nog een print in je functie kunnen zetten om te controleren of je functie echt wordt uitgevoerd

  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Nu staat er if (true) ... dus dat bedoelt ie vast niet :)
(edit) of wel maar dan vind ik dat met een default waarde mooier (edit)

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

marcusk:
Oh, ik bedoelde eigenlijk zoiets:
code:
1
2
3
4
5
6
7
8
9
10
11
// in constants.inc ofzo:
define('HTML', true);
(...)

// in de functie:
function maakop($bericht)
{
    if (HTML)
      (...)
    (...)
}

En namen verzinnen is idd lastig :)
Dat begreep ik al :)

Nadeel is alleen dat je dan runtime niet om die default-waarde heen kan.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
.
Op zaterdag 16 februari 2002 16:17 schreef grhmpf het volgende:
Nu staat er if (true) ... dus dat bedoelt ie vast niet :)
Als het gaat om een configuratie-instelling kan het heel goed op deze manier, maar er kan natuurlijk ook een iets meer uitgebreide expressie staan, van een waarde uit de db bijvoorbeeld.
Op zaterdag 16 februari 2002 16:22 schreef drm het volgende:
Nadeel is alleen dat je dan runtime niet om die default-waarde heen kan.
Ja, klopt :) Ligt natuurlijk maar net aan de situatie wat handiger/beter is

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

marcusk:
Ja, klopt :) Ligt natuurlijk maar net aan de situatie wat handiger/beter is
Zoals zo vaak :)
Als het puur om "configuratie" gaat zou ik het idd doen zoals jij het doet, maar ik betwijfel of dat het geval is (inhoud van de functie ziend).

Ik gok dat het hier gaat om een forum, oid, waarin in deze functie een bericht opmaakt, en als $html true is, gaat het om een user met html-rechten, of niet soms? ;)


btw, ik weet niet of je dit in een OOP context hebt staan, maar dan moet je in PHP altijd naar properties en methods van het "self-object" verwijzen met $this:
code:
1
2
3
4
5
function maakop ( ... )
{
   if ( $this->html )
   ....
}

edit: iets vergeten :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Nou, meneer blasty himself ligt blijkbaar nog in bed ofzo :)

Wat doetie nou niet precies? Retourneertie iets leegs?

Dan moet je na elke functieaanroep ff de string printen ofzo. Als nu een van de functies Kleur, UBB of Smile een lege string retourneert, doet deze functie dat dus ook.

Verwijderd

Topicstarter
ik ben dom :S
hoe ik aan die if (!$html) kom weet ik nie meer :)
maar als ik die eruit haal werkt het nog niet :S

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Tuurlijk werkt het niet :) Het enige verschil is dat nu misschien de htmlspecialchars wel wordt uitgevoerd...

Maar print is ff $bericht na elke functie :)

  • mr_taipan
  • Registratie: Februari 2002
  • Laatst online: 03-12-2024
zit er niet een fout in 1 van je andere fucties?

Verwijderd

a:: print die zooi idd es tussendoor uit, dan zien we mischien een erro
b:: indien je een error msg ziet, give us plz :)
c:: Gebruik alsjeblieft nl2br() inplaats van eregi.
maken ze bij zend es een HELEMOOIE functie, gebruik je hem niet... tss
http://www.php.net/nl2br

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Als je hier dergelijke debugging vragen post is het wel zo prettig als je jezelf ook iets meer inspand en de goede adviezen van al dze buitengewoon behulpzame mensen even opvolgt :) . Af en toe maar posten dat het nog steeds niet werkt schiet zo op :+ . Ga eerst even zelf goed aan de slag met debuggen (zoek eens op het web hoe je dat goed moet aanpakken) en ga op zoek naar foutmeldingen of indicaties waar het mis kan gaan. Als je er dan nog steeds niet uitkomt kan je een nieuw topic openen waarin je wat beter uitlegt waarom het niet lukt.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1

Dit topic is gesloten.