Autor Zpráva
roboti006
Profil *
Ahoj. Snažím se sestavit svůj web z příkazů include. Ani jedno nefunguje.
Nevím co tady nesedí, asi to CSS menu, ale je to příšerné ([url=sjiaphoto.euweb.cz/php/domos.php]Odkaz[/url]) Prosím poraďte mi

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Šionův web | <?php echo $titulek?></title>
<link rel="stylesheet" type="text/css" href="styly/stylecek.css">
<link rel="stylesheet" type="text/css" href="styly/menu.css">
</head>
<body style="background:url(img/pozadi_vertikal_repeat.jpg) repeat-y center fixed" bgcolor="#898755" text="#0A4200" style="background-repeat: repeat-y center fixed">
<?php include ("top.php");
//zajištění hodnoty pg (nazevsouboru.php?pg=toto)
$pin = $_GET['pg'];
if ($pin==''){
  include('pgs/domu.php');
  }
else {
  include('pgs/$pin.php');
  }
  //Vypsání titulku stránky (proměnná $titulek - v hlavičce jako <title> )
  if ($pin==''){
  $titulek = "Domů";
  }
elseif ($pin=='linkos'){
  $titulek = "Odkazy";
  }
elseif ($pin=='kontaktos'){
  $titulek = "Kontakt";
  }
elseif ($pin=='downos'){
  $titulek = "Ke stažení";
  }
elseif ($pin=='infos'){
  $titulek = "Informace o stránce";
  }
elseif ($pin=='fotglos'){
  $titulek = "Fotogalerie";
  }
elseif ($pin=='aktivitos'){
  $titulek = "Aktivity";
  }
elseif ($pin=='vtipos'){
  $titulek = "Vtipy";
  }
else{
  $titulek = "Stránka nenalezena";
  }

//přidání externí patičky s Copyrightem...
//poznámka: přidat Banner rotator + generátor $titulek
include ("spodky.php")
?>               
</body>                                                                                                                                                                                                                                                                                                     

</html>
jenikkozak
Profil
roboti006:
1) Místo apostrofů na 16. řádku použij uvozovky. Názvy proměnných v apostrofech se nenahrazují jejich hodnotami.
2) Na 4. řádku vypisuješ proměnnou $titulek, ale hodnotu do ní vkládáš až na řádcích 20 - 45. V době, kdy ji vypisuješ, ještě žádnou hodnotu neobsahuje. Takže celou část od 10. do 45. řádku přesuň před první.
panther
Profil
roboti006:
rada bokem: místo té sady elseifů se podívej na switch.
roboti006
Profil *
Takže mám nejdříve zjistit hodnotu "pg", vyhodnotit titulek a teprve potom to vypisovat. A to celé v tagu
<title></title>

Switch jsem též zkoumal, přišlo mi to příliš jednoduché na to aby to fungovalo, ale vyzkouším :)
Ještě dotaz před tím: Jak mám zapsat prázdný "pg" do switche?
okolojdouci
Profil *
roboti006:
Takže mám nejdříve zjistit hodnotu "pg", vyhodnotit titulek a teprve potom to vypisovat. A to celé v tagu
1
<title></title>

Věta "A to celé v tagu" nedává smysl. Nejdřív proveď ten switch, pak vyplivni to html a v něm mj proměnnou $titulek.
roboti006
Profil *
<title>Šionův web | <?php $pin = $_GET['pg'];
switch ($pin) {
    case "":
        $titulek = Domů;
        break
    case "linkos":
        $titulek = Odkazy;
        break
    case "kontaktos":
        $titulek = Kontakt;
        break
}


echo $titulek ?></title>
Zkusil jsem to, v programu mi okamžitě vyskočilo:
syntax error unexpected T_case
na řádku 9 (zvýrazněný) ale když jsem zkusil zkopírovat předchozí "case" tak mi to vyhodilo to samé
okolojdouci
Profil *
roboti006:
za break nad tím ti chybí středník. A kromě toho řetězce patří do uvozovek:
$titulek = "Domů";
roboti006
Profil *
Takže to má vypadat nějak takto
<?php $pin = $_GET['pg'];
switch ($pin) {
    case "":
        $titulek = "Domů";
        break;
    case "linkos":
        $titulek = "Odkazy";
        break;
    case "kontaktos":
        $titulek = "Kontakt";
        break;
        //...
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Šionův web | <?php echo $titulek ?></title>
<link rel="stylesheet" type="text/css" href="styly/stylecek.css">
<link rel="stylesheet" type="text/css" href="styly/menu.css">
</head>
?
roboti006
Profil *
Další problém který to vytvořilo (PHP Designer - začínám bý nevrlý - vyskakují cedule které brání část kódu v bloku před upravením),
a sice tag
</html>
(poslední řádek) vyhazuje
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php $pid = $_GET['pg'];
switch ($pid) {
    case "":
        $titulek = "Domů";
        break;
    case "linkos":
        $titulek = "Odkazy";
        break;
    case "kontaktos":
        $titulek = "Kontakt";
        break;
    case "st_infos":
        $titulek = "Informace o stránce";
        break;
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<title>Šionův web | <?php echo $titulek ?></title>
<link rel="stylesheet" type="text/css" href="styly/stylecek.css">
<link rel="stylesheet" type="text/css" href="styly/menu.css">
</head>
<body style="background:url(img/pozadi_vertikal_repeat.jpg) repeat-y center fixed" bgcolor="#898755" text="#0A4200" style="background-repeat: repeat-y center fixed">
<?php include ("top.php");
//zajištění hodnoty pg (nazevsouboru.php?pg=toto)
if ($pin==''){
  include(pgs/domu.php);
  }
else {
  include(pgs/$pid.php);
  }

include ("spodky.php");
?>               
</body>                                                                                                                                                                                                                                                                                                     
</html>
Nevím proč to háže chybu s tímto tagem, mám nastavenou kontrolu jen u PHP.
Han
Profil
Hádže ti to chybu unexpected $end? V tom skripte v hlavičke ti chýba koncová zložená zátvorka "}"
roboti006
Profil *
Já jsem si myslel že to reaguje na chybu v posledním skriptu... a zkontroloval jen ten jeden...
Ještě bych potřeboval poradit s tím CSS menu (stažená součástka). Myslím že jsem si s tím celkem dobře poradil (jako s includem)
ale odmítá háčky a čárky (ikdyž mám kódování utf-8 u všech souboru a v hlavičce
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
Bohužel v tom CSS menu nefungují skoro žádné znaky s háčky a čárkami (Odkaz)
jenikkozak
Profil
roboti006:
ikdyž mám kódování utf-8
a v hlavičce 1
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
Tak si vyber. V hlavičce máš totiž <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">.
Ukládej všechny soubory, ze kterých stránku skládáš, v uft-8 a uváděj kódování utf-8.
roboti006
Profil *
Aaa díky... Háčkyčárky fungují, ale položky menu se mi seskupí do tří řad a to já nechci, potřebuju jen aby se seřadily za sebe do jedné řady.. nevíte co to chce? Přemýšlel jsem o tom, trochu a nevím jestli to není těmi <li> co tam jsou ale asi zřejmě není, protože se roztřídily po třech odkazech do řádků... CSS vypadá takto:
* {margin: 0; padding: 0;}
html {height: 100%; font-size: 62.5%;}
body {height: 100%; text-align: center; font: 1.2em Verdana, Arial, Helvetica, sans-serif; position: relative; min-width: 960px;}
#header {height: 150px;}


#menu-box {background: #1C4E71 url('img/menu-bg.gif') repeat-x 0 0;}
#menu {width: 960px; margin: 0 auto;}

#menu li {
	float: center;
	display: inline;
	list-style-type: none;
	text-align: center;
	}

#menu li a {
	text-decoration: none;
	color: #FFF;
	float: left;
	display: inline;
	line-height: 35px;
	padding: 0 18px;
	border-right: 1px solid #6E9DBE;
    margin-left: 162px;
	}
 
#menu li.first a {border-center: 1px solid #6E9DBE;}
#menu li a:hover, #menu li a.active {background-color: #133F5D;}

/* Clearfix */
.clearfix:after {
	display: block;
	clear: both;
	visibility: hidden;
	height: 0;
	font-size: 0;
	content: ' ';
	}

.clearfix {min-height: 1px; margin-right: 132px;}
.clearfix {display: inline-block;} /* Pro IE/Mac */

/* Backslash hack - nemel by to videt IE/Mac \*/
.clearfix {display: block;}
/* Konec hacku */
jenikkozak
Profil
roboti006:
Což vzít odkazům ten margin-left: 162px?
roboti006
Profil *
Díky... zapoměl jsem na něj jsem jej tam přidal, nemělo to ten efekt jsem se na to vykašlal a zapoměl...
Myslíte že by bylo dobré (podle mě i celkem bezpečné) použít "switch" na includování stránky? myslím nějak takto:
$pid = $_Get['pid']
swith ($pid)
case ""
include ("pgs/uvod.php")
...

popřípadě tam přidat stránku kterou by to includovalo kdyby byla nějaká chyba v zadané adrese (něco jako 404 ale jen pro případ špatného zadání (četl jsem o default), máte nějakou radu ohledně takovýchto chybových výpisů?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0