12 berichten aan het bekijken - 1 tot 12 (van in totaal 12)
  • Q:
    Bijdrager
    iMike

    php vraagje

    hey mensen heb een probleempje, heb een scriptje gevonden op internet die me instaat stelt om nieuwsartikelen te posten.

    Hij werkt perfect alleen wanneer ik hem include krijg ik

    Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /home/mhuberts/domains/mhuberts.nl/public_html/job/index.php:11) in /home/mhuberts/domains/mhuberts.nl/public_html/job/news/include/common.php on line 30

    Dit staat er op line 30 van common.php: session_start();

    Kan ik dit bestand gewoon niet includen of is er een workaround?

    Bijdrager
    jimeh

    session_start();
    kan alleen helemaal boven aan de pagina staan

    Bijdrager
    iMike

    dat is vreemd want ik krijg de melding niet als ik het bestand niet include in een div

    Bijdrager
    Sanne

    Dat is inderdaad vreemd.

    Maar session_start(); moet altijd bovenaan!!

    Bijdrager
    iMike

    http://mhuberts.nl/job/news/

    Dat is de link naar de index, deze werkt gewoon perfect en alle functies doen het.
    Maar als ik hem include in een div in mn main index.php flipt hij hem en doet ie niks meer.
    Lijkt me dus weinig met die session start te maken te hebben maar dat ik hem include….

    http://mhuberts.nl/job/index.php?pagina=news

    dat is de pagina met de include

    Bijdrager
    The JM

    Je moet de functie die je gebruikt ook definieren.

    Bijdrager
    iMike
    ”The

    Je moet de functie die je gebruikt ook definieren.

    En dat doe ik door? ben niet zo heel goed in php daarom heb ik dit scriptje ook gebruikt.
    Maar kan ik zoiets wel includen? want daar lijtk het mis te gaan…

    Bijdrager
    The JM

    Je moet de functie die je gebruikt ook definieren.

    Bijdrager
    hydro

    Je kunt die functie alleen aanroepen als er nog geen headers zijn verzonden. Eigenlijk geef je het antwoord zelf al, het werkt wel als je het niet doen includen. Wat er namelijk gebeurd is dat er voordat de php uitgevoerd wordt er al een stuk HTML verzonden is naar apache waardoor de headers al vastgesteld zijn (op regel 11 van index.php), hierdoor kunnen er geen sessies meer aangemaakt worden.

    Wat je dus moet doen is je sessie helemaal vooraan je code aanroepen, voordat je ook maar iets doet echo-en. Of in het geval dat je het bestand doet includen tussen HTML dat helemaal bovenaan doen.

    Bijdrager
    iMike
    ”hydro”

    Je kunt die functie alleen aanroepen als er nog geen headers zijn verzonden. Eigenlijk geef je het antwoord zelf al, het werkt wel als je het niet doen includen. Wat er namelijk gebeurd is dat er voordat de php uitgevoerd wordt er al een stuk HTML verzonden is naar apache waardoor de headers al vastgesteld zijn (op regel 11 van index.php), hierdoor kunnen er geen sessies meer aangemaakt worden.

    Wat je dus moet doen is je sessie helemaal vooraan je code aanroepen, voordat je ook maar iets doet echo-en. Of in het geval dat je het bestand doet includen tussen HTML dat helemaal bovenaan doen.

    dat werkt inderdaad beter, heb hem nu bovenaan gezet en krijg geen melding meer, alleen heb ik er nu een andere vor terug gekregen:

    Warning: call_user_func(lang_nl) [function.call-user-func]: First argument is expected to be a valid callback in /home/mhuberts/domains/mhuberts.nl/public_html/job/news/include/libary.php on line 40

    Warning: call_user_func(theme_ninja_root) [function.call-user-func]: First argument is expected to be a valid callback in /home/mhuberts/domains/mhuberts.nl/public_html/job/news/include/libary.php on line 40

    dit is wat er staat op lijn 40 van library.php:
    call_user_func($data[$name]);

    Bijdrager
    hydro

    Zoals je in de PHP manual voor call_user_func() kunt lezen moet het eerste argument een callback functie zijn(de functie die je aanroept) en het tweede argument pas de variabele die je doorgeeft aan die functie.

    Wil je de variabele gewoon tonen in de browser dan doe je uiteraard gewoon: [code:1:538083c34f]echo $data[$name];[/code:1:538083c34f]

    Bijdrager
    iMike
    ”hydro”

    Zoals je in de PHP manual voor call_user_func() kunt lezen moet het eerste argument een callback functie zijn(de functie die je aanroept) en het tweede argument pas de variabele die je doorgeeft aan die functie.

    Wil je de variabele gewoon tonen in de browser dan doe je uiteraard gewoon: [code:1:6f38ae8f92]echo $data[$name];[/code:1:6f38ae8f92]

    function load($name,$param = null)
    {
    global $data;

    if (array_key_exists($name,$data))
    {
    if(isset($param))
    {
    if(is_array($param))
    {
    call_user_func_array($data[$name],$param);
    }
    else if(is_scalar($param))
    {
    call_user_func($data[$name],$param);
    }
    }
    else
    {
    call_user_func($data[$name]);
    }

    return true;
    }
    else
    {
    return false;
    }
    }

    Ja dat gebeurt ook gewoon netjes, maar het script werkt gewoon dus daar is niks mis mee. Het is dat ik hem in een include gebruik. Dat wil hij op een of andere manier niet.

12 berichten aan het bekijken - 1 tot 12 (van in totaal 12)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.