Zobrazenie cesty v prehliadači – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zobrazenie cesty v prehliadači – PHP – Fórum – Programujte.comZobrazenie cesty v prehliadači – PHP – Fórum – Programujte.com

 

ebeš0
Newbie
21. 8. 2014   #1
-
0
-

Pri zobrazení úvodnej stránky mam v prehliadači cestu

http://localhost/vazka/2108/

Keď kliknem na odkaz, mám  cestu

http://localhost/vazka/2108/page.php

Chcela by som, aby tam miesto page .php bolo niečo iné, napr.index.php?strana=19.

Viem si to za normálnych okolností ošetriť pomocou url z databázy.

Ale teraz mám zvláštne okolnosti.Mám úvodnú stránku, kde su len 3 obrázky.Po kliknuti na každý z týchto obrázkov sa mi majú zobraziť úplne iné layouty.Trápila som sa s tym, aj mi na fore pomahali, ale neviem to vyriesit inak, iba tak, ze mam de facto urobene 4 rozlicne stranky .Z uvodnej stranky odkazujem linkom

 <a rel="nofollow" href="page1.php">vstúpiť"</a>

Mala som tam aj

  <a rel="nofollow" href="index.php?strana=1">vstúpiť</a> / page. php mam v datab./

ale vypisovalo mi to redeclare chyby pri funkciach./ kazdy z tych php suborov mal rovnake funkcie ako "matersky".

ďakujem

Nahlásit jako SPAM
IP: 178.41.84.–
peter
~ Anonymní uživatel
4016 příspěvků
21. 8. 2014   #2
-
0
-

   

$x = $_GET['strana'] * 1;
echo $x;
$z = array(19=>'page1.php');
$y = '';
$y = isset($z[$x]) ? $z[$x] : $y;
echo $y;
include($y);
Nahlásit jako SPAM
IP: 2001:718:2601:1f7:99d5:37...–
peter
~ Anonymní uživatel
4016 příspěvků
21. 8. 2014   #3
-
0
-

Aha, no, kdyz tam mas ty same funkce, tak to samozrejme napise chyby i tento kod. Se predpoklada, ze vsechny funkce se includuji / requeruji z vnejsich souboru a opakovani include se da predejit pomoci prikazu include_once a pripadne zavinace, aby to nepindalo s chybou. Ale lepsi je bez zavinace a duplicitu odstranit z okdu, at tam nestrasi.
@include_once('abc');
 

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:99d5:37...–
ebeš
~ Anonymní uživatel
29 příspěvků
21. 8. 2014   #4
-
0
-

#3 peter
PHP veľmi moc neovládam, takže tomu samozrejme  zle rozumiem.

1.ten kód, co si mi napísal ,by som mala kde vložiť? / skúšala som všelikde, nešlo to/

2.nepoužívam include ale require, tak som dala require_once.Ale ani to mi nepomohlo.Ani so zavináčom.Neviem odstranit duplicitu z kodu, keďže mam de facto 4 index.php / 1 rodičovský, 3 dcérske/, pričom každé potrebuje rovnaké funkcie.A myslím si, že ak nedám require function do dcerskych, tak si ich nepreberú z rodičovského.Skúšala som to a nešlo to.Ale mne nejde nič, takže až také smerodatné to nebude

Nahlásit jako SPAM
IP: 178.41.84.–
peter
~ Anonymní uživatel
4016 příspěvků
21. 8. 2014   #5
-
0
-

Do index.php? Logicky, kdyz chces, aby fungoval odkaz
http://localhost/…08/index.php?… (index.php?parametry)
Tak se ten kod musi dat do index.php.

Pripadne, jestli to ma vypadat takhle
http://localhost/index.php?… ,
pak bude treba upravit
$z = array(19=>'page1.php'); na
$z = array(19=>'vazka/2108/page1.php');
A samozrejme by bylo dobre na zacatel php kodu pridat <?php a na konec ?> :)

O tom ostatnim kodu nema smysl se dal bavit, ten nikdo tady zatim nevidel.
 

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:99d5:37...–
ebeš
~ Anonymní uživatel
29 příspěvků
21. 8. 2014   #6
-
0
-

#5 peter
moj index.php

<?
ob_start ();
?>
<?

require_once ("function.php");
?>


 
<?
$x = $_GET['strana'] * 1;
echo $x;
$z = array(19=>'vazka/2108/page1.php');
$y = '';
$y = isset($z[$x]) ? $z[$x] : $y;
echo $y;
include($y);
?>


<body>
<div id="wrapper">
<div id="header1">

</div>
<div id="header">
<?php
include("bottom.htm")
?>
</div>    
    <div id="inner">
        <div id="middle" class="clearfix">
            <div id="content">


</div>


                </div>
                <div id="content2">
                    <?
 
obsah()

?>

                </div>
            </div>

        </div>
    </div>


    
</div>


<?php
include("formulare/online.php")
?>    

<?
ob_end_flush ();

?>


</body>
</html>

Hlási chyby

Notice: Undefined index: strana in C:\instal\xampp\htdocs\vazka\21082\index.php on line 25
0
Warning: include() [function.include]: Filename cannot be empty in C:\instal\xampp\htdocs\vazka\21082\index.php on line 31

Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.;C:\instal\xampp\php\PEAR') in C:\instal\xampp\htdocs\vazka\21082\index.php on line 31

Vo funkcion mam:

<?php


function pripojit()
{
if (!@$spojenie = MySQL_Connect("127.0.0.1", "root", "")):
    echo "Nepodarilo sa pripojiť k databáze!Skúste prosím o chvíľu opäť poslať prihlášku.Ďakujeme";
    die;
endif;
if (!@$select = MySQL_Select_Db("vazka")):
    echo "Chyba pri výbere databáze!";
    die;
endif;
return $spojenie;
}


function foot()  //konec stranky
{
   echo "</BODY></HTML>\n";
}


function obsah()     
{

if(IsSet($_GET['strana'])): // overime, ci existuje premmenna $page
  pripojit();
  $vysledok = MySQL_Query("SELECT url FROM pages WHERE id ='".mysql_real_escape_string($_GET[strana])."'"); // napiseme sql prikaz

  if(MySQL_NumRows($vysledok)==1):
    $url = MySQL_Result($vysledok, 0, "url"); // adresu z databazi zapiseme do premennej $url


  else:
   $url = "prazdne.htm"; // pokial zaznam nebol najdeny, tak do premennej $url vlozime inu stranku, napr. upozornenie na chybu
  endif;

 else:
  $url = "strana/main.htm"; // v pripade, ze neexistuje premenna $page, vlozime do $url hlavnu stranku
 endif; // ukoncime prvu podmienku


 require $url; // vygenerujeme stranku

 }

function obsah1()     
{

if(IsSet($_GET['strana'])): // overime, ci existuje premmenna $page
  pripojit();
  $vysledok = MySQL_Query("SELECT url FROM pages WHERE id ='".mysql_real_escape_string($_GET[strana])."'"); // napiseme sql prikaz

  if(MySQL_NumRows($vysledok)==1):
    $url = MySQL_Result($vysledok, 0, "url"); // adresu z databazi zapiseme do premennej $url


  else:
   $url = "prazdne.htm"; // pokial zaznam nebol najdeny, tak do premennej $url vlozime inu stranku, napr. upozornenie na chybu
  endif;

 else:
  $url = "strana/main1.htm"; // v pripade, ze neexistuje premenna $page, vlozime do $url hlavnu stranku
 endif; // ukoncime prvu podmienku


 require $url; // vygenerujeme stranku

 }


function obsah2()     
{

if(IsSet($_GET['strana'])): // overime, ci existuje premmenna $page
  pripojit();
  $vysledok = MySQL_Query("SELECT url FROM pages WHERE id ='".mysql_real_escape_string($_GET[strana])."'"); // napiseme sql prikaz

  if(MySQL_NumRows($vysledok)==1):
    $url = MySQL_Result($vysledok, 0, "url"); // adresu z databazi zapiseme do premennej $url


  else:
   $url = "prazdne.htm"; // pokial zaznam nebol najdeny, tak do premennej $url vlozime inu stranku, napr. upozornenie na chybu
  endif;

 else:
  $url = "strana/main2.htm"; // v pripade, ze neexistuje premenna $page, vlozime do $url hlavnu stranku
 endif; // ukoncime prvu podmienku


 require $url; // vygenerujeme stranku

 }


function hlava()    
{

echo "

<html><head>

<link rel=\"stylesheet\" rel="nofollow" href=\"styles3.css\" type=\"text/css\" media=\"all\">
</head>
<body>
<div class=medzera>

</div>


";

}

function chvost()    
{

echo "

<div class=medzera>

</div>

</body></html>

";

}


?>

Nahlásit jako SPAM
IP: 178.41.84.–
ebeš
~ Anonymní uživatel
29 příspěvků
21. 8. 2014   #7
-
0
-

#6 ebeš
a este

main.htm

<html>
<head>

 

</head>


<p>
<marquee>  </marquee>
</p>


<body>


<div class="photos" style="display: table; height: 400px; #position: relative; overflow: hidden;">
    <div style=" #position: absolute; #top: 50%;display: table-cell; vertical-align: middle;">
      <div class="greenBorder" style=" #position: relative; #top: -50%">
              <ul>
                  <li><span><a rel="nofollow" href="page1.php"><img src="obrazky/akcie.jpg" width="200" height="150"   /></a></span>
                <span>OBCHOD S UMENÍM</span>
               <a rel="nofollow" href="page1.php"vstúpiť"</a>
                </li>
                  <li><a rel="nofollow" href="page1.php"><img src="obrazky/galeria.jpg" width="200" height="150"  /></a>
                <span>AKCIE</span>
                <a rel="nofollow" href="page1.php">vstúpiť"</a>
                </li>
                  
                <li><a rel="nofollow" href="#"><img src="obrazky/obchod.jpg" width="200" height="150"  /></a>
                <span>GALÉRIA</span>
                <a rel="nofollow" href="">vstúpiť</a>
                </li>
                

            </ul>
          </div>

</div>
</div>

a

page1.php / co je az na malicke zmeny vlastne index.php/

<?
ob_start ();
?>

 

<?
  require_once "function.php";
?>

<body>
<div id="wrapper">
<div id="header1">

</div>
<div id="header">
<?php
include("bottom.htm")
?>

</div>


    
    <div id="inner">
        <div id="middle" class="clearfix">
            <div id="content">

                <div id="left1">
                    

  <?php
include("left1.htm")
?>

</div>

                
                <div id="content2">
                    <?
 
obsah1()

?>

                </div>
            </div>

        </div>
    </div>

<div id="l"></div>
    <div id="m"></div>
    
</div>

<?php
include("formulare/online.php")
?>    

<?
ob_end_flush ();

?>


</body>
</html>

Nahlásit jako SPAM
IP: 178.41.84.–
peter
~ Anonymní uživatel
4016 příspěvků
21. 8. 2014   #8
-
0
-

Njn, udelej si sam a odstran vsechny chyby, co tam nekdo nasekal s apostrofy a pod...
-- index.php -- 

-- index.php --
<?php
// --- index.php ---
ob_start();
require_once ("func.php");

$page = isset($_GET) && isset($_GET['strana']) ? $_GET['strana'] * 1 : 0;
$tpl  = 'tpl1.php';
$tpl_all = array(19=>'tpl2.php',20=>'tpl1.php',21=>'tpl3.php');
$tpl = isset($tpl_all[$page]) ? $tpl_all[$page] : $tpl;

include_once('tpl/'.$tpl);
ob_flush();
?>

-- func.php -- (spoustu tech veci tady nechapu, zda se pouziva. A tez mi neni jasne, proc sablonu/template/tpl nepridas do databaze jako dalsi sloupecek k prislusne strance. Spoustu veci by to tak usnadnilo.)
<?php
function pripojit()
{
if (!@$spojenie = MySQL_Connect("127.0.0.1", "root", "")):
  echo "Nepodarilo sa pripojiť k databáze! Skúste prosím o chvíľu opäť poslať prihlášku. Ďakujeme.";
  die;
endif;
if (!@$select = MySQL_Select_Db("vazka")):
  echo "Chyba pri výbere databáze!";
  //die;
endif;
return $spojenie;
}

function hlavicka()
{
return file_get_contents("bottom.htm");
}

function paticka()
{
include_once "formulare/online.php";
}

function left()
{
return file_get_contents("left1.htm");
}

function obsah($main="strana/main.htm",$prazdne="prazdne.htm")
  {
  if(IsSet($_GET['strana'])): // overime, ci existuje premmenna $page
    $strana = $_GET['strana'];
    pripojit();
    $vysledok = MySQL_Query("SELECT url FROM pages WHERE id ='".mysql_real_escape_string($strana)."'"); // napiseme sql prikaz
    if($vysledok && MySQL_NumRows($vysledok)==1):
      $url = MySQL_Result($vysledok, 0, "url"); // adresu z databazi zapiseme do premennej $url
    else:
      $url = $prazdne; // pokial zaznam nebol najdeny, tak do premennej $url vlozime inu stranku, napr. upozornenie na chybu
    endif;
  else:
    $url = $main; // v pripade, ze neexistuje premenna $page, vlozime do $url hlavnu stranku
  endif; // ukoncime prvu podmienku
  include_once $url; // vygenerujeme stranku
  }

function obsah1()     
{
obsah("strana/main1.htm");
}

function obsah2()     
{
obsah("strana/main2.htm");
}

function hlava()    
{
echo '
<html>
<head><link rel="stylesheet" rel="nofollow" href="styles3.css" type="text/css" media="all"></head>
<body>
<div class=medzera></div>
';
}

function chvost()    
{
echo "
<div class=medzera></div>
</body></html>
";
}

function foot()  //konec stranky
{
echo "</BODY></HTML>\n";
}

?>

-- tpl/tpl1.php --
<!DOCTYPE html>
<html>
  <head>
    <title>      
      <?php echo 'Ebes (nazev stranky)'; ?>
    </title>
  </head>
  <body>  
    <div id="wrapper">    
      <div id="header1">    
      </div>    
      <div id="header">      
        <?php echo hlavicka(); ?>    
      </div>              
      <div id="inner">               
        <div id="middle" class="clearfix">                     
          <div id="content">        
          </div>                
        </div>                
        <div id="content2">        
          <?php obsah(); ?>                
        </div>              
      </div>           
    </div>       
    <?php paticka(); ?>
  </body>
</html>

-- tpl/tpl2/php
<!DOCTYPE html>
<html>  
  <head>    
    <title>             
      <?php echo 'Ebes (nazev stranky)'; ?>     
    </title>  
  </head>
  <body>
    <div id="wrapper">
      <div id="header1">
      </div>
      <div id="header">
        <?php echo hlavicka(); ?>
      </div>         
      <div id="inner">        
        <div id="middle" class="clearfix">            
          <div id="content">                
            <div id="left1">                             
              <?php echo left(); ?> 
            </div>                                 
            <div id="content2">          
              <?php obsah1(); ?>                
            </div>            
          </div>        
        </div>    
      </div>
      <div id="l">
      </div>    
      <div id="m">
      </div>     
    </div>    
    <?php paticka(); ?>
  </body>
</html>

-- main/main.htm a main1.htm --
<p>  
  <marquee>     
  </marquee>
</p>
<div class="photos" style="display: table; height: 400px; #position: relative; overflow: hidden;">       
  <div style="position: absolute; top: 50%;display: table-cell; vertical-align: middle;">           
    <div class="greenBorder" style=" #position: relative; #top: -50%">                     
      <ul>                           
        <li>        
        <span>          
          <a rel="nofollow" href="index.php?strana=19">            
            <img src="obrazky/akcie.jpg" width="200" height="150"   /></a>        
        </span>                         
        <span>OBCHOD S UMENÍM         
        </span>                        
        <a rel="nofollow" href="index.php?strana=19">vstúpiť"</a>                           
        </li>                             
        <li>          
        <a rel="nofollow" href="index.php?strana=20">            
          <img src="obrazky/galeria.jpg" width="200" height="150"  /></a>                           
        <span>AKCIE           
        </span>                           
        <a rel="nofollow" href="index.php?strana=20">vstúpiť"</a>                           
        </li>                                              
        <li>          
        <a rel="nofollow" href="index.php?strana=21">            
          <img src="obrazky/obchod.jpg" width="200" height="150"  /></a>                           
        <span>GALÉRIA           
        </span>                           
        <a rel="nofollow" href="index.php?strana=21">vstúpiť</a>                           
        </li>                                    
      </ul>               
    </div>  
  </div>
</div>
Nahlásit jako SPAM
IP: 2001:718:2601:1f7:99d5:37...–
ebeš
~ Anonymní uživatel
29 příspěvků
21. 8. 2014   #9
-
0
-

#8 peter
Zatiaľ ďakujem za ochotu, mám možnosť testovať to až v pondelok.Ozvem sa.

Nahlásit jako SPAM
IP: 87.244.248.–
ebeš
~ Anonymní uživatel
29 příspěvků
25. 8. 2014   #10
-
0
-

#9 ebeš
Zobrazuje mi cestu k súborom tak, ako som chcela - čiže sa nezobrazí názov súboru.

Ale nezobrazuje mi obsah stránky po kliknutí na odkaz 19 -main1. htm.Miesto obsahu sa mi zobrazujú len  odkazy na funkcie include-once a include.

Stĺpec left je v poriadku.

Nahlásit jako SPAM
IP: 178.41.43.–
ebeš
~ Anonymní uživatel
29 příspěvků
26. 8. 2014   #11
-
0
-

#10 ebeš
Nemala som strany main pod indexami uložené v pages.Ješkove husličky- minimálne 4 hodiny zbytočnej práce.A to som ešte len na začiatku.Keby som bola platená od hodiny, som čoskoro milionár.Ďakujem Peter za pomoc.

Nahlásit jako SPAM
IP: 178.41.43.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 49 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý