Variabele werkt niet in CSS
Ik heb de volgende code in style.php staan en vraag me af waarom CSS deze niet kan uitlezen:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
?>
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
?>
body
{
background-color: purple;
margin-top: 5px;
background-image: URL('uploads/');
background-repeat: no-repeat;
background-position: center top;
}
Gewijzigd op 08/12/2010 10:27:03 door Karel van Dam
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
var_dump($achtergrond);
die();
?>
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
var_dump($achtergrond);
die();
?>
Voeg de laatste 2 regels eens toe. Wat krijg je nu in beeld te zien?
wordt de rest van de css niet meer uitgelezen en werkt dus ook niet meer de opmaak van de pagina.
Wanneer ik het bestand style.php nu vanaf de server open zie ik enkel dit staan:
bool(false)
Zonder die() zie ik bool(false) inclusief de rest van de css, maar het achtergrondplaatje werkt nog steeds niet.
Hier zie ik bij het gedeelte voor het achtergrondplaatje enkel:
background-image: URL('uploads/');
Kan ik hieruit afleiden dat de variabele $achtergrond['achtergrondnaam'] niet kan worden uitgelezen??
door de Wanneer ik het bestand style.php nu vanaf de server open zie ik enkel dit staan:
bool(false)
Zonder die() zie ik bool(false) inclusief de rest van de css, maar het achtergrondplaatje werkt nog steeds niet.
Hier zie ik bij het gedeelte voor het achtergrondplaatje enkel:
background-image: URL('uploads/');
Kan ik hieruit afleiden dat de variabele $achtergrond['achtergrondnaam'] niet kan worden uitgelezen??
Gewijzigd op 08/12/2010 12:34:59 door Karel van Dam
Ozzie PHP op 08/12/2010 10:36:48:
Voeg de laatste 2 regels eens toe. Wat krijg je nu in beeld te zien?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
var_dump($achtergrond);
die();
?>
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
var_dump($achtergrond);
die();
?>
Voeg de laatste 2 regels eens toe. Wat krijg je nu in beeld te zien?
Dat is natuurlijk geen foutafhandeling Ozzie ;-)
@TS: Je zegt wat je probleem is, maar niet wat de output is op dit moment. Wat krijg je te zien als de CSS is gerendered? (even in quote/code-tags plaatsen alsjeblieft :))
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
?>
body
{
background-color: <?php echo "purple"; ?>;
margin-top: 5px;
background-image: URL('uploads/<?php echo $achtergrond['achtergrondnaam']; ?>');
background-repeat: no-repeat;
background-position: center top;
}
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
?>
body
{
background-color: <?php echo "purple"; ?>;
margin-top: 5px;
background-image: URL('uploads/<?php echo $achtergrond['achtergrondnaam']; ?>');
background-repeat: no-repeat;
background-position: center top;
}
output style.php:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
body
{
background-color: purple;
margin-top: 5px;
background-image: URL('uploads/');
background-repeat: no-repeat;
background-position: center top;
}
{
background-color: purple;
margin-top: 5px;
background-image: URL('uploads/');
background-repeat: no-repeat;
background-position: center top;
}
Gewijzigd op 08/12/2010 13:01:52 door Karel van Dam
krijg je geen mysql errors?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$query = "SELECT * FROM skins";
$result = mysql_query($query);
if(is_resource($result))
{
$list = mysql_fetch_array($result);
echo '<pre>'.print_r($list, true).'</pre>';
}
else
{
echo 'De query is mislukt!<br /><pre>'.mysql_error().'</pre>';
}
?>
$query = "SELECT * FROM skins";
$result = mysql_query($query);
if(is_resource($result))
{
$list = mysql_fetch_array($result);
echo '<pre>'.print_r($list, true).'</pre>';
}
else
{
echo 'De query is mislukt!<br /><pre>'.mysql_error().'</pre>';
}
?>
Zet dit eens neer, en plaats vervolgens een de uitkomst. Heb je heel toevallig databasegegevens opgegeven voor dit bestand? ;-) Anders kom je dat zo in je foutafhandeling tegen.
@Oetzie: Dit is gewoon fatsoenlijke foutafhandeling.
Gewijzigd op 08/12/2010 13:04:09 door Chris -
Oetzie cookie op 08/12/2010 12:58:38:
krijg je geen mysql errors?
Nee helemaal niets.
Sterker nog, wanneer ik in index.php dit schrijf:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
echo $achtergrond['achtergrondnaam'];
?>
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
echo $achtergrond['achtergrondnaam'];
?>
...dan staat er in de output gewoon Koala.jpg
Toevoeging op 08/12/2010 13:09:06:
Chris Horeweg op 08/12/2010 13:03:50:
Zet dit eens neer, en plaats vervolgens een de uitkomst. Heb je heel toevallig databasegegevens opgegeven voor dit bestand? ;-) Anders kom je dat zo in je foutafhandeling tegen.
@Oetzie: Dit is gewoon fatsoenlijke foutafhandeling.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$query = "SELECT * FROM skins";
$result = mysql_query($query);
if(is_resource($result))
{
$list = mysql_fetch_array($result);
echo '<pre>'.print_r($list, true).'</pre>';
}
else
{
echo 'De query is mislukt!<br /><pre>'.mysql_error().'</pre>';
}
?>
$query = "SELECT * FROM skins";
$result = mysql_query($query);
if(is_resource($result))
{
$list = mysql_fetch_array($result);
echo '<pre>'.print_r($list, true).'</pre>';
}
else
{
echo 'De query is mislukt!<br /><pre>'.mysql_error().'</pre>';
}
?>
Zet dit eens neer, en plaats vervolgens een de uitkomst. Heb je heel toevallig databasegegevens opgegeven voor dit bestand? ;-) Anders kom je dat zo in je foutafhandeling tegen.
@Oetzie: Dit is gewoon fatsoenlijke foutafhandeling.
Output:
Oftewel in je style.php heb je geen connectie met database, misschien verstandig om daar een include config ofzo te doen (als je een config bestand gebruikt)
Oetzie cookie op 08/12/2010 13:09:20:
Oftewel in je style.php heb je geen connectie met database, misschien verstandig om daar een include config ofzo te doen (als je een config bestand gebruikt)
Oetzie, geweldig!
Ik was inderdaad vergeten om login-hoofdpagina.php te includen.
Nu werkt het perfect, bedankt!
Chris Horeweg op 08/12/2010 12:49:29:
Dat is natuurlijk geen foutafhandeling Ozzie ;-)
Ozzie PHP op 08/12/2010 10:36:48:
Voeg de laatste 2 regels eens toe. Wat krijg je nu in beeld te zien?
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
var_dump($achtergrond);
die();
?>
header('Content-Type: text/css');
$query = "SELECT * FROM skins";
$result = mysql_query($query);
$achtergrond = mysql_fetch_array($result);
var_dump($achtergrond);
die();
?>
Voeg de laatste 2 regels eens toe. Wat krijg je nu in beeld te zien?
Dat is natuurlijk geen foutafhandeling Ozzie ;-)
Euh, nee... maar dat hoor je me toch ook niet zeggen? :-s
Ik wilde alleen weten of de variabele $achtergrond gevuld werd en dat is blijkbaar niet het geval. Niet heel raar dus dat het niet werkt.
Ozzie en Oetzie niet door elkaar halen hé haha.
Succes verder karel
Oetzie, haalde je inderdaad door elkaar!
@Chris: vind het een beetje onzinnig wat je nu zeg... stap 1 was om te weten wat er in de variabele $achtergrond stond want daar zat het probleem. Mijn var_dump met die() was dus geheel terecht. op die manier kreeg TS te zien wat er in de betreffende variabele stond. Die bleek leeg te zijn en stap 2 is dan om te achterhalen waarom die variabele leeg is. Je begint altijd aan "het eind" van een probleem. Als je auto niet start, kijk je toch ook eerst of de accu leeg is in plaats van dat je gelijk de motor uit elkaar gaat halen? Kortom... jouw beredenering is gelijk aan de vorm van een banaan... krom dus :)
En als je toch over de auto begint, als je olie pijl niet goed is krijg je toch ook een waarschuwingslampje te zien. Oftewel een goede fout afhandeling ;) Op jouwn manier zou je eerst het pijl stokje moeten gebruiken om te zien of de olie gevult is.
Waarom is mijn idee niet goed? Ik gebruik gewoon een var_dump om te zien wat er in een variabele zit. Wat is daar niet goed aan? Ik begrijp je niet. Z'n css achtergrond werkt niet. Het eerste wat je dan toch doet is kijken wat er in die variabele staat?????
Bouw gewoon een goede/nette foutafhandeling om te zien wat er precies mis is.
zucht... een die() zodat TS alleen de waarde van de var_dump op z'n scherm krijgt te zien. Maar als jij dat liever hebt dan mag jij ook een complete foutafhandeling bouwen hoor om de waarde van die ene variabele te tonen. Whatever makes you happy...
Je komt bij de garage met een lekke band en vraagt de monteur hem te plakken. De monteur plakt de band met een stukje ducktape, de band is weer gefixt. Maar de manier is fout.
Als je een goede fout afhandeling maakt weet je gelijkt wat het probleem is... Met jouwn 'foutafhandeling' moest je nog steeds stappen ondernemen. Mhhhh waarom is de variable leeg? geen records, type fout, foute query, geen database connectie? Mhhh wat voor stappen zal ik nu ondernemen hmm hmm.. Als je een goede fout afhandeling hebt krijg je gelijk de oorzaak van het probleem...
Maar he als je moeilijk wilt doen, ga je gang. Maar als je toch niet het advies van iemand anders aan wilt nemen wat doe je dan nog op het forum. :)
TS zegt dat de achtergrond niet wordt getoond. Relevante code is:
background-image: URL('uploads/< ? php echo $achtergrond['achtergrondnaam']; ?> ');
Het 1e wat je dan toch doet is kijken wat er in die variabele $achtergrond zit? Is toch niks raars aan :-))))
Gewijzigd op 08/12/2010 14:32:06 door Ozzie PHP
Maar toch kun je het beste standaard een goede/nette foutafhandeling gebruiken. Dan weet je gelijk wat er aan de hand is.
En nu einde discussie ;-) Hoop dat het een beetje duidelijk is wat ik/chris bedoel ;)