headers already sent
Pagina: « vorige 1 2 3 volgende »
Toevoeging op 12/10/2012 18:06:44:
- Aar - dat zit toch net iets anders in elkaar. Ik vind het nog wel vreemd waarom die test op 000webhost ook gewoon redirecte
Albert de Wit op 12/10/2012 18:06:43:
- Aar - dat zit toch net iets anders in elkaar.
Verklaar je nader....
Quote:
Ik vind het nog wel vreemd waarom die test op 000webhost ook gewoon redirecte
Dat heb ik al eerder gezegd. Dus vreemd dat je het dan nog vreemd vindt?
Mijn advies, doe het gewoon in één keer goed.
Gewijzigd op 12/10/2012 18:09:39 door - Ariën -
Anders word ik ook respectloos en gaat er een slot op dit topic.
Toevoeging op 12/10/2012 18:11:55:
Als je dan toch die buffer gebruikt, wat maakt het dan nog uit?
Resource-verspilling...
Dus script gewoon goed, en netjes en ga vriendelijk met de voor jouw deels aangestelde server om.
van je localhost raadplegen.
Overigens vind ik 000webhost nou niet bepaald een goede testserver.. gratis servertjes of hostruimtes zijn niet altijd goed.
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<html>
<head>
<title>
blahblah
</title>
</head>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
$mysql = new mysqli($host,$user,$pass,$db);
if (!$mysql){
echo 'Er is iets fout gegaan!';
}else{
include_once 'header.php';
include_once 'body.php';
include_once 'footer.php';
}
?>
</body>
</html>
<head>
<title>
blahblah
</title>
</head>
<body>
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
$mysql = new mysqli($host,$user,$pass,$db);
if (!$mysql){
echo 'Er is iets fout gegaan!';
}else{
include_once 'header.php';
include_once 'body.php';
include_once 'footer.php';
}
?>
</body>
</html>
Hoe moet ik dan ergens die
neerzetten? Moet ik dat bijvoorbeeld in een bestandje helemaal bovenin voor de HTML tags includen?
Gewijzigd op 13/10/2012 23:03:47 door Albert de Wit
Code (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
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
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
$errors = array();
$mysql = new MySQLi($host, $user, $pass, $db);
if (!$mysql) {
$errors[] = 'Er is iets fout gegaan!';
} else {
include_once 'header.php';
include_once 'body.php';
include_once 'footer.php';
}
?>
<!doctype html>
<html>
<head>
<title>
blahblah
</title>
</head>
<body>
<?php if (0 < count($errors)) : ?>
<ul id=errors>
<?php foreach ($errors as $error) : ?>
<li><?php echo $error ?></li>
<?php endforeach ?>
</ul>
<?php endif ?>
</body>
</html>
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
$errors = array();
$mysql = new MySQLi($host, $user, $pass, $db);
if (!$mysql) {
$errors[] = 'Er is iets fout gegaan!';
} else {
include_once 'header.php';
include_once 'body.php';
include_once 'footer.php';
}
?>
<!doctype html>
<html>
<head>
<title>
blahblah
</title>
</head>
<body>
<?php if (0 < count($errors)) : ?>
<ul id=errors>
<?php foreach ($errors as $error) : ?>
<li><?php echo $error ?></li>
<?php endforeach ?>
</ul>
<?php endif ?>
</body>
</html>
Code (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
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
<div class="header_container">
<div class="header_container_menu">
<div class="header_container_menu_item">
<a href="index.php">Home</a>
<div>
<div class="header_container_menu_item">
<a href="index.php?pagina=over_mij">Over mij</a>
<div>
<div class="header_container_menu_item">
<a href="index.php?pagina=gastenboek">Gastenboek</a>
<div>
</div>
</div>
<div class="body_container">
<?php
if (isset($_GET['pagina'])){
include_once 'pagina/'.$_GET['pagina'].'.php';
}
?>
</div>
<!doctype html>
<html>
<head>
<title>
blahblah
</title>
</head>
<body>
<?php if (0 < count($errors)) : ?>
<ul id=errors>
<?php foreach ($errors as $error) : ?>
<li><?php echo $error ?></li>
<?php endforeach ?>
</ul>
<?php endif ?>
</body>
</html>
<div class="header_container_menu">
<div class="header_container_menu_item">
<a href="index.php">Home</a>
<div>
<div class="header_container_menu_item">
<a href="index.php?pagina=over_mij">Over mij</a>
<div>
<div class="header_container_menu_item">
<a href="index.php?pagina=gastenboek">Gastenboek</a>
<div>
</div>
</div>
<div class="body_container">
<?php
if (isset($_GET['pagina'])){
include_once 'pagina/'.$_GET['pagina'].'.php';
}
?>
</div>
<!doctype html>
<html>
<head>
<title>
blahblah
</title>
</head>
<body>
<?php if (0 < count($errors)) : ?>
<ul id=errors>
<?php foreach ($errors as $error) : ?>
<li><?php echo $error ?></li>
<?php endforeach ?>
</ul>
<?php endif ?>
</body>
</html>
Kan dit wel? Ik ben hier niet bekend mee maar nu outputten we spul voor de html tags?
Dat gaat niet werken natuurlijk.
ok, maar is daar een speciale methode voor ofzo? Hoe doen jullie zoiets bijvoorbeeld?
Daar heb je allerlei html out-put (regel 1 t/m 15) en pas op regel 23 heb je je doctype staan. Dat gaat (dus) niet werken.
Hoe wel? Zoals Wouter J aangeeft:
Wouter J op 14/10/2012 00:19:26:
Wat je moet doen is alle logica boven je HTML plaatsen en in je HTML alleen wat simpele if statements, loopjes en echo's.
Gewijzigd op 14/10/2012 14:18:18 door Obelix Idefix
dus als ik het goed begrijp moet ik bijvoorbeeld alle 'output' boven de html tags eigenlijk in variabelen zetten die heel erg globaal genoemd zijn ($header,$pagina,$footer) etc en die later echoën?
file_get_contents) en die echoën op de juiste plaatst.
Exact, maar in jou geval hierboven kun je gewoon de HTML beneden plaatsen en die include opslaan in een variabele (dus include veranderen in nee
Iets langer
Hiermee sla je de return waarde op in de variabele, niet de content van het bestand. Zie ook http://nl1.php.net/manual/en/function.include.php#example-139
Gewijzigd op 14/10/2012 16:08:42 door Wouter J
Dit is wel goed?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function inloggen(){
$inlognaam = mysql_real_escape_string($_POST['inlognaam']);
$wachtwoord= mysql_real_escape_string($_POST['wachtwoord']);
$query = mysql_query("SELECT id_gebruiker FROM gebruiker WHERE inlognaam='".$inlognaam."' AND wachtwoord='".$wachtwoord."'");
$id_gebruiker = mysql_fetch_row($query);
if ($query){
$_SESSION['id_gebruiker'] = $id_gebruiker[0];
header('Location: index.php?pagina=inloggen');
exit();
}else{
$error = 'Inlogcombinatie is fout, probeer het nog eens';
}
}
?>
function inloggen(){
$inlognaam = mysql_real_escape_string($_POST['inlognaam']);
$wachtwoord= mysql_real_escape_string($_POST['wachtwoord']);
$query = mysql_query("SELECT id_gebruiker FROM gebruiker WHERE inlognaam='".$inlognaam."' AND wachtwoord='".$wachtwoord."'");
$id_gebruiker = mysql_fetch_row($query);
if ($query){
$_SESSION['id_gebruiker'] = $id_gebruiker[0];
header('Location: index.php?pagina=inloggen');
exit();
}else{
$error = 'Inlogcombinatie is fout, probeer het nog eens';
}
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<html>
<head>
</head>
<body>
<?php
include_once 'header.php';
include_once 'body.php';
include_once 'footer.php';
?>
</body>
</html>
<head>
</head>
<body>
<?php
include_once 'header.php';
include_once 'body.php';
include_once 'footer.php';
?>
</body>
</html>
body.php
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if (isset($_GET['pagina'])){
echo $error.'<br>';
include_once 'pagina/'.$_GET['pagina'].'.php';
}
?>
if (isset($_GET['pagina'])){
echo $error.'<br>';
include_once 'pagina/'.$_GET['pagina'].'.php';
}
?>
Gewijzigd op 14/10/2012 17:21:49 door Albert de Wit
mysql_real_escape_string gebruik je _in_ een query, niet bij het kopiëren er van naar een nieuwe variabele.
In je code fetch je de query, terwijl je geen foutafhandeling hebt.
Ik ga er van uit dat je ergens anders controleert of de variabelen wel bestaan? Je roept namelijk nergens de functie aan.
Ik twijfel of die include in je body gaat werken, maar dat kun je zelf snel genoeg testen.
En of het verder goed is; hangt ook deels af van wat er in header staat. Als daar zaken in staan die in de head thuis horen (bv aanroepen css-bestand) dan klopt het nog niet.
Het zonder controle gebruiken van user-input (zoals $_GET['pagina']) gaat je vroeg of laat opbreken. Er kan van alles worden meegegeven via de url/variabele. Nergens controleer/beveilig je dit.
Gewijzigd op 14/10/2012 17:39:01 door Obelix Idefix
Toevoeging op 14/10/2012 19:37:52:
En dan nog snel even een vraagje. Word het ook als output gezien als er een sessie eenn waarde toegeschreven krijgt?
Wordt er dan output verzonden naar de browser? Nee, dus het telt niet als output.