[PHP] Pagina blijft blank

Pagina: 1
Acties:
  • 162 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Deze php pagina blijft helemaal blank:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<html>

<head>
<titel>INDEX PAGINA</titel>
</head>

<body>

<?php

error_reporting (E_ALL);

session_start(); 
//begin  met sessie

$gebr_ip= getenv ("REMOTE_ADDR"); 
$artikel_prijz;
$artikel_naam;
$artikel_bestelno;
$gebr_ip;

echo ="<p>Dit is de index site</p>";
echo ="<p><a href='afdeling.php'>klik hier om de artiekelen te bekijken</a></p>";

session_register ("artikel_prijz"); 
session_register ("artikel_naam"); 
session_register ("artikel_bestelno"); 
session_register ("gebr_ip"); 
// (sessie variable zijn:) artikel_* is artikel gegevens, gebr_ip (meegeven) 

?>

</body>

</html>
Waarom doet deze pagina niets...
Ik heb echt geen idee. Ik het al 10x doorgelopen, gekeken op fouten.
Deze functie (zie hieronder) heb ik eringezet, maar het probleem is dat hij helemaal geen foutmelding geeft, de pagina blijft blank ;(
PHP:
1
error_reporting (E_ALL);


Die lege pagina heeft de volgende bron:

code:
1
2
3
4
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>
welke errors krijg je? In welke regels?
Hij geeft geen errors :/
Waar vermoed je dat het probleem zit?
Misschien dat ik de indelen van de php script verkeerd heb gezet ? Al weet ik niet wat er fout aan zou moeten zijn. Het is moeilijk te zeggen waar ik vermoed waar het probleem zit want hij geeft geen errors, helemaal niks, alleen een blanke pagina. Ook de titel geeft ie niet weer, het lijkt wel alsof ik een lege pagina heb geupload. Ik snap er echt niks meer van, wat heb ik fout gedaan waardoor er alleen een lege pagina wordt weergegeven.

Dat probleem even ter zijden, ik had nog een vraagje: Kan dat wat ik van plan ben? Ik wil dus het "winkel wagentje" aansturen doormiddel van variable doortegeven met sessie's. Dus niet de gegevens uit een Database halen maar uit de pagina zelf en dan doorgeven aan het 'winkelmandje' ? Of zitten daar veiligheidsrisico's aan?

[ Voor 10% gewijzigd door Verwijderd op 12-06-2003 04:10 ]


Acties:
  • 0 Henk 'm!

Verwijderd

je moet ff bij de echo's de = weghalen.. dan werkt hij denk wel ;)

Acties:
  • 0 Henk 'm!

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 01-04-2023
session_start() moet gebruikt worden voordat je ook maar iets echo't of output, dus boven je html... Standaard debugwerk, maar vooruit.

Ook Knor is aangestoken met het ligfietsvirus!


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

sommige servers zijn zo ingesteld dat php foutmeldingen alleen in de logfiles komen (zo bijvoorbeeld de standaard apache/php @ slackware 8.1)
; Print out errors (as a part of the output). For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
display_errors = On

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 12:54

Bosmonster

*zucht*

om de tips nog even aan te vullen.. gebruik geen getenv(), maar de daarvoor bedoelde superglobals.

http://nl.php.net/manual/....variables.predefined.php

Acties:
  • 0 Henk 'm!

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

Effe wat meer niet aan dit probleem gerelateerde opmerkingen... <titel> moet <title> zijn, Artiekelen moet Artikelen zijn en effecvtief zal je pagina sneller werken als je alle html tags gewoon in je php opneemt met een echo.
Dus eerst session_start(), dan error_reporting, dan <html> enzo in een echo statement en dan de rest. Het lefst heb je in dit soort gevallen echt <?php en ?> als absoluut begin en einde van je pagina...

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Kippenijzer schreef op 12 June 2003 @ 09:12:
Effe wat meer niet aan dit probleem gerelateerde opmerkingen... <titel> moet <title> zijn, Artiekelen moet Artikelen zijn en effecvtief zal je pagina sneller werken als je alle html tags gewoon in je php opneemt met een echo.
Dus eerst session_start(), dan error_reporting, dan <html> enzo in een echo statement en dan de rest. Het lefst heb je in dit soort gevallen echt <?php en ?> als absoluut begin en einde van je pagina...
is het echt zo dat het met echo's sneller is?
mij lijkt het juist niet aangezien je dan onnodig parsed?

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
Lijkt mij onzin: je stopt een pagina in de PHP-parser, en die doorloopt de stukken die tussen <?php en ?> staan. Tekst die daar niet tussenstaat wordt direct 1:1 weer eruitgegooid. Een echo moet echter geparsed worden (en ZEKER met dubbele quotes), en zal dus meer tijd in beslag nemen. Alles natuurlijk binnen de perken: als jij steeds voor 1 <b>-tag de PHP verlaat (?>) en later weer inkomt (<?php), zal het idd overkill zijn, maar zoals jij dat nu doet niet... Wie gaat er benchen om dit te testen???

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Kippenijzer schreef op 12 juni 2003 @ 09:12:effecvtief zal je pagina sneller werken als je alle html tags gewoon in je php opneemt met een echo.
Het scheelt vrijwel niks in tijd, met een licht voordeel voor tekst _buiten_ de php-tags.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oke dank je wel voor de reacties,
ik heb wat dingen verandert

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>
<head><title>Index Pagina</title></head>
<body>

<?php

error_reporting (E_ALL);

$artikel_prijs = 0;
$artikel_naam = 0;
$artikel_bestelno = 0;
$gebr_ip = getenv ("REMOTE_ADDR");
// sessie variable:
session_register ("artikel_prijs");
session_register ("artikel_naam");
session_register ("artikel_bestelno");
session_register ("gebr_ip");
 echo "<p>Dit is de index site</p>";
 echo "<p><a href='winkel-afdeling.php'>klik hier om de artiekelen te bekijken</a></p>";

?>

</body>
</html>


session_start(); heb ik weggelaten omdat session_register hetzelfde doet.
Maar over dat 'getenv', in plaats van dat moet ik (andere?) PHP Superglobals gebruiken ? Maar wat is er verkeerd aan? Want volgensmij werk dat wel.

Maar de variable doorgeven aan de volgende pagina lukt nog niet helemaal. Maar het kan wel toch ?
Want als je session_register ("variable"); gebruikt dan moet je heb toch op de volgende pagina weer kunnen aanroepen ? En als die op een volgende pagina die zelfde variable een andere waarde heeft dan wordt dat ook onthouden ?

Ps. die error_reporting (E_ALL); functie is best handig :)

[ Voor 26% gewijzigd door Verwijderd op 12-06-2003 18:04 ]


Acties:
  • 0 Henk 'm!

  • Rotjeknor
  • Registratie: April 2001
  • Laatst online: 01-04-2023
Verwijderd schreef op 12 juni 2003 @ 18:02:
session_start(); heb ik weggelaten omdat session_register hetzelfde doet.
Huuu? Wat? Lees dat maar eens goed na... Voordat je ook maar iets met sessies kan doen moet je session_start() gebruiken...

Ook Knor is aangestoken met het ligfietsvirus!


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17-09 21:27

Creepy

Tactical Espionage Splatterer

Rotjeknor schreef op 12 June 2003 @ 18:47:
[...]

Huuu? Wat? Lees dat maar eens goed na... Voordat je ook maar iets met sessies kan doen moet je session_start() gebruiken...
Eehh.. je zou zelf misschien de boel eens na kunnen lezen?
http://nl3.php.net/manual/nl/function.session-register.php geeft aan: if session_start() was not called before this function is called, an implicit call to session_start() with no parameters will be made. $_SESSION does not mimic this behavior and requires session_start() before use.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • _Sunnyboy_
  • Registratie: Januari 2003
  • Laatst online: 16-09 20:20

_Sunnyboy_

Mooooooooooooooooo!

Ook in dat geval moet je die session_register echter nog steeds aanroepen voor je html output, of je je session nou expliciet met session_start of dit impliciet met session_register doet.
Er wordt trouwens ook aangeraden om i.p.v. session register rechtstreeks in de superglobal voor session te schrijven ($_SESSION ?)

Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life


Acties:
  • 0 Henk 'm!

  • grolle
  • Registratie: Oktober 2001
  • Laatst online: 15-09 10:26
Zoals de title al zegt: Grolle moet ff wachten tot zijn eten klaar is ;)


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php 
error_reporting  (E_ERROR | E_WARNING | E_PARSE);

$artikel_prijs = 1; 
$artikel_naam = 2; 
$artikel_bestelno = 3; 


// sessie variable: 
$_SESSION[artikel_prijs] = $artikel_prijs; 
$_SESSION[artikel_naam] = $artikel_naam;
$_SESSION[artikel_bestelno] = $artikel_bestelno; 
$_SESSION[gebr_ip] = $_SERVER['REMOTE_ADDR']; 

?> 
<html> 
<head><title>Grolle moet ff wachten tot z'n eten klaar is ;)</title></head> 
<body> 
<p>Dit is de index site</p>
<p><a href=\'winkel-afdeling.php\'>klik hier om de artiekelen te bekijken</a></p>

<BR><BR>
<HR>
<BR>
<H2>DEBUG INFO:</H2>
<b>Dit staat in je sessie:</b>
<pre>

<?php
print_r($_SESSION);
?>

</pre>
<p><b>quote rct999:</b><i>"Maar over dat 'getenv',
 in plaats van dat moet ik (andere?) PHP Superglobals gebruiken ?
 Maar wat is er verkeerd aan? Want volgensmij werk dat wel."</i></p>
 <p>Tja dat klopt. Maar het is misschien beter om 
 <A HREF="http://nl.php.net/manual/en/reserved.variables.php">$_SERVER</a> 
te gebruiken</p>
 <b>Dit $_SERVER vars:</b><pre>
 
 <?php
print_r($_SERVER);
?>

</pre>
</body> 
</html> 

Acties:
  • 0 Henk 'm!

  • gomaster
  • Registratie: Februari 2002
  • Laatst online: 17-09 17:39
Waarom is het dan beter om direct in $_SESSION[] te werken? Ik doe altijd session_register en session_start boven aan een pagina.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
gomaster schreef op 13 June 2003 @ 21:39:
Waarom is het dan beter om direct in $_SESSION[] te werken? Ik doe altijd session_register en session_start boven aan een pagina.
Ik had gelezen dat session start het zelfde doet als sesion register, dus is het overbodig :?

Acties:
  • 0 Henk 'm!

  • _Sunnyboy_
  • Registratie: Januari 2003
  • Laatst online: 16-09 20:20

_Sunnyboy_

Mooooooooooooooooo!

session_start en session_register zijn beide oude methodes om met sessies te werken in php. Voor backward-compatibility werken ze nog wel (en zullen ze dat ook wel blijven doen), maar voor het schrijven van duidelijke uniforme code wordt het gebruik van de zogenaamde superglobals ($_SESSION, $_SERVER, $_POST, $_GET ...) geadviseerd. Deze werken altijd en zijn altijd beschikbaar, ook in functies (zodat je ze daar niet meer als global hoeft te definieren).

session_start() is ook bij gebruik van $_SESSION nog nodig.
Het enige wat session_start() namelijk doet is het vertellen dat je de session-variabelen in die pagina, vanaf dat punt, beschikbaar wil hebben.

session_register() heb je bij gebruik van $_SESSION niet meer nodig. session_register werd namelijk gebruikt om variabelen in de sessie op te slaan, wat je nu rechtstreeks kan doen in $_SESSION. Als je zo slordig was geweest om voor het aanroepen van session_register() nog geen session_start() te hebben aangeroepen, dan is session_register zo aardig om dit alsnog voor je te doen. session_start() en session_register() doen dus zeker niet hetzelfde.

Het feit dat session_register je sessie kan starten maakt sessie_start ook niet overbodig, omdat het ten eerste rommelig is, en daarnaast kan je ook wel eens sessie variabelen willen lezen voordat je variabelen er in wil kunnen opslaan. (checken of iemand is ingelogd voordat je iemand laat inloggen bijvoorbeeld)

Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life


Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
het is aan te raden om niet dezelfde namen te gebruiken voor sessie variabelen en gewone variabelen omdat php die door elkaar haalt. Hier heb ik ooit uren lang mee zitten klooien om daar achter te komen.

bv
$_SESSION[artikel_prijs] is hetzelfde $artikel_prijs

iig om uit te lezen. weet niet of het ook met bewaren is.

[ Voor 11% gewijzigd door cybermans op 14-06-2003 11:09 ]

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

cybermans schreef op 14 juni 2003 @ 11:09:
het is aan te raden om niet dezelfde namen te gebruiken voor sessie variabelen en gewone variabelen omdat php die door elkaar haalt. Hier heb ik ooit uren lang mee zitten klooien om daar achter te komen.

bv
$_SESSION[artikel_prijs] is hetzelfde $artikel_prijs

iig om uit te lezen. weet niet of het ook met bewaren is.
ehm, die twee zijn echt niet hetzelfde hoor ;)
daarnaast moet je wel quotes gebruiken in een array :)
$_SESSION['artikel_prijs']

dit omdat je anders notices krijgt

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oke bedankt voor de duidelijke uitleg, ik ga weer verder rommelen :)
Pagina: 1