require_once - ie - érdekesség
Sziasztok!
Van egy valami.php fájl...meta tagok után a következő parancs: FF -ben a megjelenítés tökéletes. IE pedig az egész oldalt (a többi aloldalhoz képest) egy sorral lejebb emeli.
Ha megbocsátotok bevágom ide a php -t amit beemelek a valami.php -be:És következzen amit a var.phpRemélem ti láttok benne valami okosságot. Nem vok. valami expert a témában szal csak olyan egyszerűen magyarázzátok h. mi lehet a gond:)
Előre is köszi.
Kriszián
■ Van egy valami.php fájl...meta tagok után a következő parancs:
<?php
require_once('style.php'); ?>
Ha megbocsátotok bevágom ide a php -t amit beemelek a valami.php -be:
<?php header("Content-type: text/html; charset=utf-8");?>
<?php
require_once('var.php');
$sql = mysql_connect($sql_server_name, $sql_login_name, $sql_login_password) or die('<p class="error_logout">Beállítási hiba! nézze meg újra az SQL beállításokat</p>');
mysql_select_db($sql_dbase_name) or die('<p class="error_logout">Beállítási hiba! nézze meg újra az SQL beállításokat</p>');
$fejlec_table = mysql_fetch_array( mysql_query("select * from `gb_texts` where gb_texts_id=1", $sql), MYSQL_ASSOC);
$fejlec_kiirni = $fejlec_table['gb_texts_fejlec'];
$lekerdezes = "select * from `css_style` where id=1";
$set = mysql_fetch_array(mysql_query($lekerdezes, $sql), MYSQL_ASSOC);
print '<style type="text/css">
body { background-color: #'.$set['bg_colour'].'; }
body,td,th { color: #'.$set['text_colour'].';
font-family: Arial, Helvetica, sans-serif; }
.table1 { background-color: #'.$set['table1_bg_colour'].'; color: #'.$set['table1_text_colour'].';}
.table1:link { color: #'.$set['table1_text_colour'].'; text-decoration: underline;}
.table1:visited { color: #'.$set['table1_text_colour'].'; text-decoration: underline;}
.table2 { background-color: #'.$set['table2_bg_colour'].'; color: #'.$set['table2_text_colour'].';}
.table3 { background-color: #'.$set['table3_bg_colour'].'; color: #'.$set['table3_text_colour'].';}
.table3:link { color: #'.$set['table3_text_colour'].'; text-decoration: none;}
.table3:visited { color: #'.$set['table3_text_colour'].'; text-decoration: none;}
.table3:hover { color: #'.$set['table3_text_colour'].'; text-decoration: underline;}
</style>';
mysql_close($sql);
?>
<?php header("Content-type: text/html; charset=utf-8");?>
<?php
error_reporting(0);
$sql_server_name = "serverneve";
$sql_login_name = ".....";
$sql_login_password = ".....";
$sql_dbase_name = ".....";
$mainpage = "........";
$uzenetek_szama_oldalankent = "5";
?>
Előre is köszi.
Kriszián
nem php hanem html/css
csak az ff
Közben leteszteltem a többi " jelentős " böngészővel is. Csak az FF jeleníti meg jól (vagyis ahogy kéne). A többi tesz soremelést.
A sytle.php -ből kikommenteztem az összes css sort. És annak ellenére is azt hozza.
Kriszitán
eltérő alapértékek
hasznos lehet a css reset is.
szerk: megtaláltam a témát, nem ugyanez volt, de hasonló. ;)
nem nyert
Más ötleted van?
Kiprobáltam a gépen levő webserveren és itt meg tökéletes. Nincs margin, teljesen fenn van ie -ben is. Ugyan az a fájl. Ilyenkor merre kotorásszak?
soremelés egyből az elején?
még mindig nem.
1. Amit beirtam forrast (az elso - valami.php) ha abban megoldom ezt amit javasoltal akkor az adatbazishoz hozza se fer, elszall.
2. Ha fooldalon csinalom ezt meg, ahol beemelem a valami.php-t akkor a soremeles megszunik, de kiteszi balra..es a stílust nem is használja....
Egyébként azt hiszem hogy ennek a sornak : <?php header("Content-type: text/html; charset=utf-8");?> egyedül kell szerepelnie, mintha ezt mondták volna.
Szóval még mindig nem az igazi..De azt tyénleg nem értem hogy saját webserveren miért jó..uw meg miért nem..lehet hogy mysql beállítás okozza ezt?
Krisztián
nem egyedül, első...
Próbáld ki a következőt: a header()-es utasításokat az első kiírások elé rakd! (kiírásnak minősül minden, amit a PHP-val kiíratsz - echo, print, printf, ... -, vagy amit nem PHP TAG-eken belülre írsz!
(Zárójeles megjegyzés: A PHP amikor értelmezi a PHP-fájlt, akkor neki tök mind1 lesz, hogy <?php echo 'aaa'; ?><?php echo 'bbb'; ?>-t írsz-e, vagy egyben <?php echo 'aaabbb'; ?>-t...)
A header-eknek kell először kimennie. Ha egyetlen byte is ki van küldve, akkor pl. a kukik nem is működnek, de akkor szép hibaüzenetet is kapsz.
Arra gondoltam, lehet, hogy az apache van máshogy beállítva, hogy hány byte-os szeletekben küldje ki a generált oldalt. Ez logikusnak is tűnik most nekem, mondjuk azért nem használja a stílust (gondolom a style.php-ben van a CSS - amit egyébként célszerűbb külön CSS-fájlba tenni), mert a header()-nek először kellene megérkeznie és mivel az apache addig csak gyűjtögette a generált tartalmat, tudja, hogy a fejléc az első, eldobja a tartalmat (a style.php-vel együtt) és veszi a fejlécet. Vagy az IE tenne ilyet...
Mindegy. A header() mindig MINDEN kiírás előtt megy, ezt jegyezd meg!
Amúgy itt le is van írva, hogy a header() az első: http://hu.php.net/header
Na, erre mit reagál az IE, várom a fejleményeket, üdv:
TeeCee :o)
kimenetet mutasd
két link két szerverre
Na kicsit kezdek elmerülni a mélyvízben..szóval akkor először is:
A local webserveremre nem tudok linket mutatni. Az ultrawebes link itt.
A vendegkonyv.php forrását ha megnézitek akkor az első sort nem mutatja, ahol a kódolást állítom, így a biztonság kedvéért:
1. vendegkonyv.php első néhány sora..(meta tagokat egy kivételével kitörlöm mert felesleges ideváni)
Remélem így már könnyebb lesz megoldásra lelni..
Köszi
Kriszitán
forrás
szóval a megoldás, hogy mindenféle értelmetlen karakterekkel van tele az oldal amit legenerálsz, ez ie-t megzavarja ff meg nem törődik vele. ha a saját gépeden jó akkor rosszul töltöd fel a szerverre talán (van ilyen bináris feltöltés, lehet, hogy azzal kéne), de ez igazából csak tipp. vagy írj az uw-nek, bár nem hiszem, hogy csak neked lenne ilyen problémád ha az ő saruk lenne, vagy várj amíg egy nálam okosabb elmondja, hogy hogyan is kerülhetnek bele azok a karakterek a kimenetbe.
próbálozom..
Sorry ha nem értek meg minden elsőre..igyekszem okosan csinálni ezt a témát, és megfelelni aminek meglehet..sok van még hátra az útból... (pl dom fa.. most hallom:) ..ne nevess..de utánanézek..sőt már nézem..)
- Megnéztem FireBug-al...az első DIV előtt nem látok karaktert de van egy soremelés...csak DW-ben ezt nem látom..
- IE developert feltettem ultraweben ha megnézem akkor a body sor alatt van egy #text sor (ahol látszik a kis négyzet..) utána egy style sor..és utána megint egy #text sor ahol viszont nincs négyzet... és utána kezdődik a az első div...
Ultraweb kepernyomentes
Na most ugyanez a saját webservern ahol nem csinál soremelést. Body sor után #comment "értéke" Imageready Slice(...psd), következő a div és utána megint egy #comment End imageready slices
Localwebserver kepernyomentes
- Megnéztem PSpad editorban, ott én nem láttam semmit.
- Validátor nekem is ellszál..
Köszönöm az eddig segítséged..ezen a vonalon valahogy továbbmegyek..rá kell jöjjek..mostmár nagyon idegel a téma...Ha esetleg van valami isteni szikrád...
Köszi
Kriszitán
már mondtam
de hogy az a karakter hogyan kerül oda, nem tudom biztosan megmondani.
a beemelés cseszi el
Az ötleted alapján elindulva, kevertem kavartam..már majdnem meglett a megoldás is..de aztán rájöttem h. megsem jó. Lementettem az oldalt, UTF-8 editor...kitöröltem azokata karaktereket. és visszatöltöttem..azonnal meg is szűnt a probléma, de viszont mivel azt a fájlt töltöttem vissza amit "futás-időben" mentettem le, így az beemelt tartalom is része volt a fájlnak..így elcseszte a dolgot, nem működtek a linkek..ésatöbbi...Na erre akkor gyorsan kitöröltem a beemelt sorokat (style.php ugye)...elmetn visszatölt..és megint szar..Amikor beemeli a style.php-t egész egyszerűen kapok hozzá néhány non-unicode charactert vagy mit. Na erre kiszedtem a stílus sorokat a style.php -ből, hátha akkor nem emel be semmi plusz sort, és nem kapok ilyen dolgokat..de a lépése nem két ilyen karakter hanem 4:)
Össze vissza játszottam vele, de egyenlőre nem találtam megoldást.:( Kicsit megfáradtam holnap meló..szóval majd holnap folytatom azzal hogy felteszem egy másik ingyenes szolgáltatóhoz..csak attól félek, hogy majd az elés helyen is belefutok ebbe...
Na mind1..ha esetleg valami ötleted van..szívesen veszem..ha belefáradtál a témába akkor meg köszönöm az eddig segítséget...sok érdekes tippet adtál és sok ötletet hogy mit tanuljak meg:)
Kriszitán
Új file
Ha ezek után sem jó, akkor valamelyik másik file-ban van a hiba.
ftp fw-re
ha akarod írj nekem, megnézem a fájlokat, most már engem is érdekel, hogy miért van ez.
A header()...
(a fájlra nincs hatással, csak a böngésző tudja, hogy hogy kell értelmeznie a dolgokat...)
Nem a header-ek többszöri kiadásakor volt egy négyzeted IE alatt?
Amúgy mivel szerkeszted a fájlokat?
Továbbiakban szeretném felhívni a figyelmedet, hogy a "küldő" az nem UTF-8ban van ;-) - bár gondolom a dizájnt kaptad és a dinamikus dolgokat csak 'belecsináltad' :)
Várjuk a további fejleményeket...
Na szóval
Max logan: Kipróbáltam ezt az ansiba ..ut8..dolgot de az eredménye annyi lett hogy nem egy hanem két kocka lett IE developerben:) unbelievable...:(
Gex: Én már nem tudom mit higgyek...nem tudom miért romlana el..egyszerűen UW-n ha lefut a require_once parancs és beemeli a style.php- betesz még néhány köcsög karaktert.. amint lesz egy kis időm és főnök nem ólalkodik itt melettem feltöltöm atw-re vagy fw-re és meglátom hogy ott mit csinál...egyszerűen már nem tudom...
TeeCee: Minden fájlban csak egyszer adom ki a header-t..vagy nem?:) Vagy nem vágom..( mondjuk ez nem lenne meglepő..amennyi a témáról már tudok). DW-ben " alkotok". Az általad is említett "küldő részeket majd javítom:)...az most kevésbé izgat..erre megy rá az idegem:) De nem kaptam semmit...desgin-t is én rajzoltam..meg a vázat is én csináltam..kivéve persze ezt a dinamikus vendegkonyv marhaságot..agrhh..és pont azzal bíbelődök:( Na mind1..így legalább elmerülhetek ilyen izgalmas debbugging kérdésekben is..legalább tanulok tőletek..
Kriszitán
ok...
NEM! a header()-t csak egyetlen egyszer adod ki, a legelső PHP-fájl legelején. (a doctype előtt). a többit töröld ki, ha jól saccolom, akkor pont azért lehet a négyzet... Ha megnézed, minden fájl elején ott van a header + egy soremelés. A header()-t egyetlen egyszer kell kiadni az egész oldal legenerálása ELŐTT
Magának a fájlnak a karakterkódolását nem a kiadott fejléc adja meg, hanem a szerkesztőben, mit állítasz be. A header()-rel és a META-ban mit adsz meg, az csak a böngészőnek mondja meg.
Na, próbáld ki ezt:
- vendegkonyv.php legelső sora a header();
- style.php-ból töröld ki a header()-t
- var.php-ból töröld ki a header()-t.
Nos, erre mit lép? :)
ez se nyert:(
Kipróbáltam de nem nyert...
Fönöktől megszabadultam 1 órára így volt erre időm...
Feltoltottem ide:
http://justfortest.atw.hu/index.html (A vendegkonyv link alul mukodik, tobbi meg uw ra van allitva...de itt se jo, itt is csinal soremelest.....sot a kodolast is elcseszi..de ez most nem erdekel hogy miert... A lényeg hogy soremeles adott...
Feltoltottem ide is:
http://justfortest.extra.hu/ (szintén csak a vendekonyv link mukodik alul..soremelés itt is van...)..
Még egyszer leellenőriztem saját gépen...nem csinál soremelést..
Na hogy most ilyenkor mivan..már nem tudom...nem értem mi az a xar amit odavág..meg hogy minek..Egyeltalán atw szerverén miért nem jó a karakter kódólás? Nem utf-8 mikor megnézem a böngészőben...goin' to crazy...
na de most megyek haza...aztán este folytatom a kínlódást.
Kriszitán
Victory - avagy megint a user a luzer
Végül is megoldódott a probléma..a megoldás pedig az orrom előtt volt...szerintem annyit kavartam h. már nem tudtam hogy, mi van a serveren...elkezdtem az a tyúk és a tojástól, print parancsokkal kiderült hogy honnan jön a hiba..var.php...hogy vágná bele..nem a style.php...be volt kapcsolva a byte order mark...(tudom most csuklok..mert erről is beszéltünk..)
De nem baj..tanulópénz...
Köszönöm a rám és a problémára fordított időtöket...igyekszem felnőni a feladatokhoz és egyszer segíteni nektek ha kell:)))
Szép napot.
Kriszitán