header locatie opgeven na session

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Net-marker

net-marker

05/01/2007 16:49:00
Quote Anchor link
Hallo als er geen ?msg_int_id=1 in mijn url is wil ik deze er alsnog achter zetten door deze code boven in mijn script te zetten

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
ob_start();
if (!isset($_GET['msg_int_id']) && !is_numeric($_GET['msg_int_id']))
    {

    header("location: index.php?msg_int_id=24?id=0");
    echo 'url doorgestuurd';
    }

else
{
echo 'url niet door gestuur';
}

ob_end_flush();
    ?>


maar ik krijg dan de melding

url niet door gestuur
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /usr/home/n1087/domains/ubee-ht.nl/public_html/fysio/index.php:12) in /usr/domains/ubee.nl/public_html/fysio/includes/functions.php on line 1

dit komt geloof ik door dat ik in mijn header al een session heb staan. Hoe kan ik het probleem nou wel oplossen?

iemand een idee?
 
PHP hulp

PHP hulp

16/11/2024 15:20:29
 
Martijn Wieringa

Martijn Wieringa

05/01/2007 16:55:00
Quote Anchor link
Bij session_start() wordt een header verzonden, en dat mag alleen als er voor dat punt nog geen normale data is verzonden.

Kennelijk is er al data naar je scherm verzonden (al is het een spatie/enter o.i.d.). Dat kun je voorkomen door de session_start() verder naar boven te schuiven in je code, of je code te controleren dat er niets meer wordt geoutput.

Merk op dat enters/spaties voor en na de php-code-blokken ook als output worden gezien..
 
Frank -

Frank -

05/01/2007 16:56:00
Quote Anchor link
ob_start e.d. gooi je weg, dat heb je echt niet nodig. Zorg voor een goede structuur in je script en klaar ben je. Nu heb je op regel 1 al output staan en vervolgens ga je nog wat met header lopen klooien. Overigens heeft de echo naar header() ook weinig zin, de bezoeker is al op de volgende pagina...

Ik snap eigenlijk niet wat de bedoeling is van dit stukje script.
 
Net-marker

net-marker

05/01/2007 17:15:00
Quote Anchor link
Oke het probleem is dat als er geen msg_int_id aanwezig is in de url ik foutmeldingen in mijn scrip krijg omdat om meerder plekken hier wel om gevraacht wordt. Dus ik wil er voor zorgen dat de msg_int_id altijd aanwezig is. Is hier mischien andere oplossing voor?
 
Frank -

Frank -

05/01/2007 17:24:00
Quote Anchor link
Controleer dan eerst of deze GET wel bestaat, zo niet, geef hem een default waarde.

Volgende functie net via tips van phpfreakz samengesteld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
function setBrowserVar($type, $key, $default = ''){
    
    $type     = strtoupper($type);
    $key    = strtolower($key);
    
    switch ($type) {
        case
'GET':
            return (isset($_GET[$key]) && !empty($_GET[$key]))? $_GET[$key] : $default;
            break;
        case
'POST':
            return (isset($_POST[$key]) && !empty($_POST[$key]))? $_POST[$key] : $default;
            break;
        default:

            return $default;
            break;
    }
}


$sSub = setBrowserVar('get', 'sub', 'default waarde'); // check of $_GET['sub'] bestaat en maak $sSub aan
echo $sSub;
?>
 
Net-marker

net-marker

05/01/2007 18:57:00
Quote Anchor link
ziet er leuk uit, maar zou je hem ook kunnen toe lichten. Ik zie nog niet helemaal hoe ik hem kan gebruiken.
 
Klaasjan Boven

Klaasjan Boven

05/01/2007 20:08:00
Quote Anchor link
Wat Frank zijn scriptje doet:

Als er gepost is pak je die anders de standaard
Als er op een link is geklikt is pak je die anders de standaard
anders pak je de standaard.

Uit zijn scriptje heb jij iig de functie isset() nodig
 
Net-marker

net-marker

05/01/2007 21:07:00
Quote Anchor link
Maar ik heb het probleem als er vanuit een ander script deze pagina wordt geladen of als iemand voor het eerst mijn url in tikt.
Gewijzigd op 01/01/1970 01:00:00 door net-marker
 
Frank -

Frank -

05/01/2007 21:14:00
Quote Anchor link
Ja, en? Je zult altijd moeten checken of een variabele wel bestaat. De eerste keer dat je een pagina opent, maar ook de honderdste keer. Wat is dan het probleem met isset() ?

In mijn voorbeeldje wordt de variabele $sSub aangemaakt. Deze krijgt de waarde van $_GET['sub'] als deze variabele bestaat, anders de default 'default waarde'. Nu weet je dus zeker dat $sSub bestaat en een waarde heeft gekregen waar jij in de rest van je script wat mee kunt doen.
 
Net-marker

net-marker

05/01/2007 21:30:00
Quote Anchor link
A oke ik snap het. bedankt
 
Net-marker

net-marker

05/01/2007 21:51:00
Quote Anchor link
maar dan kan ik het toch veel beter zo noteren

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if (isset($_GET['id']) &&  is_numeric($_GET['id']) && ($_GET['id'] >0))
{

$msg_int_id = $_GET['msg_int_id'];
}
    
else
{
$msg_int_id ="1";
}

?>

dat is toch veel korter. Of is hier iets niet goed aan?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.