Php script geeft een lege pagina weer

Status
Niet open voor verdere reacties.

erik11

Gebruiker
Lid geworden
26 mei 2008
Berichten
25
Hallo

Ik had een probleem en ik snap er helemaal niet van.

Ik heb een inlog systeem gemaakt, dat is al gelukt. Hij logt succesvol in.

Maar, als ze zijn ingelogt, gaat hij naar een me.php pagina. Dat is een pagina alleen voor geregistreerde gebruikers dus hij moet controlleren of de inlog pagina wel cookies heeft aangemaakt en controlleren of het wachtwoord (In een andere cookie encrypt met md5) ook klopt in de database.

Nou als ik succesvol ben ingelogt, krijg ik een lege witte pagina, bij bron weergeven geeft hij een lege html pagina weer, terwijl ik toch html codes heb ingevoerd.

PHP:
<?php

// Verbinding naar de mysql database
mysql_connect("localhost","root","****") or die(mysql_error());
mysql_select_db("holodb") or die(mysql_error());

// Controlleert de cookie, of de gebruiker wel is ingelogt
if(isset($_COOKIE[habmaxuser]))
{
$username = $_COOKIE[habmaxuser];
$password = $_COOKIE[habmaxpass];
$query = mysql_query("SELECT * FROM users WHERE name = '$username'");

while($row = mysql_fetch_array($query))
{
// Hier controlleert hij of het wachtwoord wel klopt (Extra beveiliging :)
// Als het dus niet klopt gaat hij terug naar de inlog pagina
if($password != $row[password])
{
header("Location: index.php");
}
// Anders zullen ze gewoon de pagina zien
else
{
?>
<html>
<head>
<title>Welkom terug, <?php echo $row[name]; ?></title>
</head>
<body>
<body background='img/bg.gif'>
<font size='5'>Welkom terug, <?php echo $row[name]; ?></font>
<p>
<table border='0'>
<td background='img/button.PNG' align='center' width='88' heigth='90'>
<font size='4'><a href='me.php'>Home</a></font><br>
</td>
<p>
<td background='img/bg2.gif' align='center'>
<font size='4'><?php echo $row[name]; ?>, dit zijn je overzichten!,</font>
<p>
Je hebt nog <?php echo $row[credits]; ?> credits.
<br>
Je hebt nog <?php echo $row[tickets]; ?> tickets over.
<p>
Klik hier om credits te kopen. WERKT NOG NIET!!
<body>
</html>
<?php
}
}
}
else
{
// Als de cookie niet bestaat, zullen ze ook naar de inlog pagina gaan
header("Location: index.php");
}
?>

Ik krijg ook geen error codes dat het wachtwoord niet klopt ofzo, gewoon een lege witte pagina.

Alvast bedankt, Erik
 
check je html is...
je heb er 3x staan <body> maar geen 1x </body>. Je moet gewoon beginnen met <body> en eindigen met <body>
 
Ok hartstikke bedankt, maar ik heb nog steeds een witte lege pagina.
Ik denk zelf dat de fout bij de php codes ligt, maar ik kan het mis hebben.
 
Dit is meestal als je een fout in de php code hebt zitten en de server php fouten niet weergeeft, en in plaats daarvan een lege pagina toont. Je kan de fouten meestal opzoeken in de logbestanden binnen het CMS van de server. Of even de volgende code als eerste regels binnen je script opnemen:

PHP:
error_reporting(E_ALL);
ini_set('display_errors', '1');
 
Kan best met je array aanvragen te maken hebben.
Dit bijvoorbeeld:
PHP:
if(isset($_COOKIE[habmaxuser]))

Lijkt mij
PHP:
if(isset($_COOKIE['habmaxuser']))
te moeten zijn.

Zo mist elke array-key die quotes.
Probeer dat eens.
 
Ik gebruik noot '' in een COOKIE of POST of GET codes, want dan krijg ik een syntax error.

Bij mn vorige scripts op vorige pagina's doen ze het trouwens perfect zonder de '' maar ik snap niet waarom nu niet.

Parse error: syntax error, unexpected ')', expecting ']' in D:\xampp\htdocs\habmax\me.php on line 8

Edit: Door de php code van hackerfrans heb ik de error codes gevonden.


Notice: Use of undefined constant habmaxuser - assumed 'habmaxuser' in D:\xampp\htdocs\habmax\me.php on line 11

Notice: Use of undefined constant habmaxuser - assumed 'habmaxuser' in D:\xampp\htdocs\habmax\me.php on line 13

Notice: Use of undefined constant habmaxpass - assumed 'habmaxpass' in D:\xampp\htdocs\habmax\me.php on line 14
 
Laatst bewerkt:
Dat is dus precies de fout die ThaDevil aangaf.

De parser ziet hadmaxuser en habmaxpass als constants (die hier niet bestaan).

Als je nou gewoon quotes hier omheen zet, dan zou het wel moeten werken.
 
Ok, de '' quotes kreeg ik syntax errors.
Toen heb ik de "" quotes geprobeert. Geen errors.

Maar wel een lege witte pagina.
Ik vind dit zo vreemd, hij zou nu toch gewoon die html pagina moeten weer geven??

Maar als ik alle php codes wegdoe, en dan de html invoeg krijg ik gewoon de pagina te zien.
Dat moet juist niet, want hij moet wel controlleren of de gebruiker ingelogt is.
 
Laatst bewerkt:
Parse error: syntax error, unexpected ')', expecting ']' in D:\xampp\htdocs\habmax\me.php on line 8


Dit is een Parsing error, als die gegooid wordt, dan stopt PHP onmiddelijk met alle vormen van uitvoer. Zolang die er dus inzit, zal hij de HTML niet tonen.

Nou zie ik zo geen fout in je voorbeeld scriptje, maar misschien dat het er op de live versie wel in zit. Probeer die eerst eens te verhelpen.
 
Ik hoop dat je mn post hierboven even hebt gelezen..

Ik krijg dus zo'n parse error als ik de '' quotes gebruik.
Niet als ik de "" quotes gebruik maar dan krijg ik vervolgens weer een witte lege pagina.
 
Ok, nu ik de file ff geopend heb en de indentatie verzet heb zie ik denk ik wat er mis gaat.

Je opent alle resultaten van de $query in een While loop. (Waarom weet ik niet, je zou denken dat elke naam maar 1x voor mag komen)

Anyway; als ie geen resultaten heeft, dan springt ie over de loop heen, en komt ook niet in de Else terecht waar de header staat... resultaat: een lege pagina.

Probeer maar eens een stukje tekst helemaal onderaan de pagina te zetten, buiten alle tags, die komt waarschijnlijk op het scherm terecht.

Ik zou dus iig de While loop eruit halen (want áls een naam 2x voorkomt, dan krijg je de pagina ook dubbel terug) en even checken of er wel een resultaat terug komt van de Cookie, want misschien bestaat de gebruiker wel niet.

Daarnaast, als je HTML en PHP door elkaar heen gebruikt, zou ik gebruik maken van alternatieve syntax, die is wat leesbaar, dus niet
PHP:
<?
if ( expressie ) {
?>
html
<?php } ?>

maar:

PHP:
<?
if ( expressie ):
?>
    html
<?php
endif;
?>

Dat is veel overzichtelijker :)
 
Hee bedankt!

Ik heb vervolgens de while loop eruit gehaald, nu gaat hij verder met de else operator.
Dus nu gaat ie naar de index.php pagina, waarschijnlijk zit er nog een fout in de andere scripts. Die ga ik zelf er wel proberen uit te halen.

Als het niet lukt post ik het wel.

Allemaal bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan