NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: vkladani HTML pomoci PHP

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Mario Brunmayr:2.8.2016 13:39

Ahoj, omlouvam se ze tu zase spamuji ale jsem zas 2 hodiny bezradnej. Mam vytvoreny formular do kterych uzivatel vklada jmeno stranky a po odeslani by to melo generovat HTML stranku ale nekde na radku 15 (co jsem to testoval tak je to posloupnost chyb) je neco spatne. Je to docela prasacky zapsane ale nejak moc nevim jak by jsem to mel napsat jinak a zaroven aby to delalo to same. Predem dekuji za rady.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Přihlášení</title>
</head>
<body>


  <?php

$menu = $_POST['html'];
$soubor = fopen("./odkazy.txt", "a+");
fwrite($soubor, '<a href="'. $menu .'.php"><button> '. $menu .'</button> </a>');
fclose($soubor);
?>
  <?php

$menu = $_POST['html'];
$soubor = fopen("./$menu.php", "a+");
fwrite($soubor, '








<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <link rel="stylesheet" type="text/css" href="pokus/css/style1.css" />
  <link rel="stylesheet" href="PC-CSS.css">





  <title></title>
















  </head>
  <body>
          <div id="pozadi">             <!-- blok se stankou -->
      <div id="body"></div>


        <div id="menu">        <!-- menu stranky  -->

     <!--  <ul><li><a>Default Button</a></li></ul>   -->
 '<?php
$soubor = '.'.$odkazy.txt';
'.$klika = fopen($soubor, 'r');
while (!feof ($klika)) {
    $radek = fgets($klika, 4096);
    echo "$radek";
}
fclose ($klika);'
      </div>



      <div id="hlavicka">
              <div class="css-slideshow">
            <figure><img src="images\1.jpg" /></figure>
            <figure><img src="images\2.jpg" /></figure>
            <figure><img src="images\3.jpg" /></figure>
            <figure><img src="images\4.jpg" /></figure>
            <figure><img src="images\5.jpg" /></figure>
            <figure><img src="images\6.jpg" /></figure>
            <figure><img src="images\3.jpg" /></figure>
            <figure><img src="images\5.jpg" /></figure>
        </div>
      <!--<img src="sorrento.jpg" width="100%"> -->
      </div>     <!-- hlavička stránky -->

      <div id="obsaho"></div>
      <div id="obsah">                        <!-- obsah stránky -->

'
$soubor = '.'.$menu.txt';
'.$klika = fopen($soubor, 'r');
while (!feof ($klika)) {
    $radek = fgets($klika, 4096);
    echo "$radek";
}
fclose ($klika);'


      </div>




    <div id="patka">Copyright 2014, &copy; Něco tam dám</div>

   </div>


  </body>
</html>









?>');
fclose($soubor);
?>
 
Odpovědět
2.8.2016 13:39
Avatar
Jakub Žák
Člen
Avatar
Odpovídá na Mario Brunmayr
Jakub Žák:2.8.2016 13:47

Ten řádek 69 je co?

EDIT: Už chápu.

Editováno 2.8.2016 13:48
Nahoru Odpovědět
2.8.2016 13:47
Kuba je ajťák. Buď jako Kuba.
Avatar
Jakub Žák
Člen
Avatar
Jakub Žák:2.8.2016 14:02

Zkus nějak popsat/rozkreslit, co to vlastně je a co to má dělat, z toho kódu se to moc nedá vyčíst.

Nahoru Odpovědět
2.8.2016 14:02
Kuba je ajťák. Buď jako Kuba.
Avatar
Mario Brunmayr:2.8.2016 14:37

HTML stranky nic zajimaveho

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Přihlášení</title>
</head>
<body>

PHP kod ktery vytvori txt soubor -> odkazy.txt. promena menu je tam proto aby se vzdy do txt pridal odkaz dane stranky a nemuselo se to rucne upravovat u kazde stranky

 <?php

$menu = $_POST['html'];
$soubor = fopen("./odkazy.txt", "a+");
fwrite($soubor, '<a href="'. $menu .'.php"><button> '. $menu .'</button> </a>');
fclose($soubor);
?>

tato cast vytvori html stranku jmenoStranky kde jmeno je promena menu. posledni sloupec ma urcovat co se do HTML respektive do jmenosouboru.php ulozi.

<?php

$menu = $_POST['html'];
$soubor = fopen("./$menu.php", "a+");
fwrite($soubor, '

tato cast je pouze html ktere se ma ulozit do prom menu.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
          <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <link rel="stylesheet" type="text/css" href="pokus/css/style1.css" />
  <link rel="stylesheet" href="PC-CSS.css">





  <title></title>
















  </head>
  <body>
          <div id="pozadi">             <!-- blok se stankou -->
      <div id="body"></div>


        <div id="menu">        <!-- menu stranky  -->

     <!--  <ul><li><a>Default Button</a></li></ul>   -->

tato cast ma vkladat pomoci promene odkazy ulozene v txt dokumentu odkazy.txt kde jsou napsane odkazi jiz v html tagu. De facto to generuje celej txt soubor do ktereho jsme zapisovali v prvnim PHP bloku.

 '<?php
$soubor = '.'.$odkazy.txt';
'.$klika = fopen($soubor, 'r');
while (!feof ($klika)) {
    $radek = fgets($klika, 4096);
    echo "$radek";
}
fclose ($klika);'
      </div>

Zase pouze HTML kod ktery se ma generovat do souboru promena menu.php

</div>



   <div id="hlavicka">
           <div class="css-slideshow">
         <figure><img src="images\1.jpg" /></figure>
         <figure><img src="images\2.jpg" /></figure>
         <figure><img src="images\3.jpg" /></figure>
         <figure><img src="images\4.jpg" /></figure>
         <figure><img src="images\5.jpg" /></figure>
         <figure><img src="images\6.jpg" /></figure>
         <figure><img src="images\3.jpg" /></figure>
         <figure><img src="images\5.jpg" /></figure>
     </div>
   <!--<img src="sorrento.jpg" width="100%"> -->
   </div>     <!-- hlavička stránky -->

   <div id="obsaho"></div>
   <div id="obsah">                        <!-- obsah stránky -->

tento PHP blog generuje obsah stranky de facto to same jako u generovani menu jen ze adresa souboru.txt je generovana prez promenou aby to bylo vyuzitelne pro vice stranek (souboru s HTML). Ten text se zase vygeneruje pomoci formulare ale ten se nachazi v jinem souboru a je jiz vytvoren.

$soubor = '.'.$menu.txt';
'.$klika = fopen($soubor, 'r');
while (!feof ($klika)) {
    $radek = fgets($klika, 4096);
    echo "$radek";
}
fclose ($klika);'

Posledni radky HTML ktery se ma ulozit + predposledni radek zavre soubor se kterym jsme pracovali (promena menu.php)

 </div>




    <div id="patka">Copyright 2014, &copy; Něco tam dám</div>

   </div>


  </body>
</html>









?>');
fclose($soubor);
?>

Snad je to dostacujici popis. Defacto PHP tam moc neni (3 bloky po +-7 radcich) a HTML je pouze zkopirovana sablona do ktere se ma pomoci PHP vypisovat menu a obsah a zbytek se nechava jako HTML v ciste podobe.

 
Nahoru Odpovědět
2.8.2016 14:37
Avatar
Jakub Žák
Člen
Avatar
Odpovídá na Mario Brunmayr
Jakub Žák:2.8.2016 14:41

A ty desítky prázdných řádků mají dělat co?

Nahoru Odpovědět
2.8.2016 14:41
Kuba je ajťák. Buď jako Kuba.
Avatar
Mario Brunmayr:2.8.2016 14:49

Za ně se omlouvám, nemají žádný účel. vznikli díky vymazávání obsahu HTML a přidáváním PHP, mě osobně nějak nevadili - nerušili takže jsem si vůbec neuvědomil že je to estetická prasárna.

 
Nahoru Odpovědět
2.8.2016 14:49
Avatar
Jakub Žák
Člen
Avatar
Jakub Žák:2.8.2016 14:58

Proměnná $odkazy není nikde inicializovaná, pouze je z ní čteno.

Nahoru Odpovědět
2.8.2016 14:58
Kuba je ajťák. Buď jako Kuba.
Avatar
Jakub Žák
Člen
Avatar
Odpovídá na Mario Brunmayr
Jakub Žák:2.8.2016 16:39
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Přihlášení</title>
  </head>
  <body>
<?php
if (isset($_GET['html']) AND !empty($_GET['html'])) {
  $menu = $_GET['html'];
} else {
  $menu = null;
}

$soubor = fopen("./odkazy.txt", "a+");
if (!$soubor) {
  die("Soubor se nepodařilo otevřít (1).");
}
fwrite($soubor, '<a href="'. $menu .'.php"><button> '. $menu .'</button> </a>');
fclose($soubor);

$soubor = fopen("./$menu.php", "a+");
if (!$soubor) {
  die("Soubor se nepodařilo otevřít (2).");
}

fwrite($soubor, '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <link rel="stylesheet" type="text/css" href="pokus/css/style1.css" />
    <link rel="stylesheet" href="PC-CSS.css">
    <title>Proč tady nic není?</title>
  </head>
  <body>
    <div id="pozadi">             <!-- blok se stankou -->
    <div id="body"></div>
    <div id="menu">        <!-- menu stranky  -->
    <!-- <ul><li><a>Default Button</a></li></ul> -->
');

$souborNE = './odkazy.txt';
$klika = fopen($souborNE, 'r');
if (!$klika) {
  die("Soubor se nepodařilo otevřít (3).");
}
while (!feof ($klika)) {
  $radek = fgets($klika, 4096);
  echo $radek;
  fwrite($soubor, $radek);
}
fclose ($klika);

fwrite($soubor, '
      </div>
      <div id="hlavicka">
        <div class="css-slideshow">
          <figure><img src="images\1.jpg" /></figure>
          <figure><img src="images\2.jpg" /></figure>
          <figure><img src="images\3.jpg" /></figure>
          <figure><img src="images\4.jpg" /></figure>
          <figure><img src="images\5.jpg" /></figure>
          <figure><img src="images\6.jpg" /></figure>
          <figure><img src="images\3.jpg" /></figure>
          <figure><img src="images\5.jpg" /></figure>
        </div>
        <!--<img src="sorrento.jpg" width="100%"> -->
      </div>     <!-- hlavička stránky -->
      <div id="obsaho"></div>
      <div id="obsah">                        <!-- obsah stránky -->
');

$souborNE = './'.$menu.'.php';
$klika = fopen($souborNE, 'r');
while (!feof ($klika)) {
  $radek = fgets($klika, 4096);
  echo "$radek";
}

fclose ($klika);

fwrite($soubor, '
      </div>
      <div id="patka">Copyright 2014, &copy; Něco tam dám</div>
    </div>
  </body>
</html>
');
fwrite($soubor, null);
fclose($soubor);
?>
Nahoru Odpovědět
2.8.2016 16:39
Kuba je ajťák. Buď jako Kuba.
Avatar
Mario Brunmayr:3.8.2016 7:48

Děkuji moc za pomoc, kod jsem trochu upravil a běží až na dvě věci které nechápu. Mám vložený první PHP blok který mám vložený jako text ale ve výsledném souboru $menu.'.php' je již vykonaný (otevřeno v PSPpadu) a druhý blok pro vkládání obsahu mi rači nefunguje vůbec. viz kod.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Přihlášení</title>
  </head>
  <body>
<?php
if (isset($_POST['menu']) AND !empty($_POST['menu'])) {
  $menu = $_POST['menu'];
} else {
  $menu = null;
}

$soubor = fopen("./odkazy.txt", "a+");
if (!$soubor) {
  die("Soubor se nepodařilo otevřít (1).");
}
fwrite($soubor, '<a href="'. $menu .'.php"><button> '. $menu .'</button> </a>');
fclose($soubor);

$soubor = fopen("./$menu.php", "a+");
if (!$soubor) {
  die("Soubor se nepodařilo otevřít (2).");
}

fwrite($soubor, '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <link rel="stylesheet" type="text/css" href="pokus/css/style1.css" />
    <link rel="stylesheet" href="PC-CSS.css">
    <title>Proč tady nic není?</title>
  </head>
  <body>
    <div id="pozadi">             <!-- blok se stankou -->
    <div id="body"></div>
    <div id="menu">        <!-- menu stranky  -->
    <!-- <ul><li><a>Default Button</a></li></ul> -->
);
<?php
$souborNE = ./odkazy.txt;
$klika = fopen($souborNE, "r");
if (!$klika) {
  die("Soubor se nepodařilo otevřít (3).");
}
while (!feof ($klika)) {
  $radek = fgets($klika, 4096);
  echo $radek;
  fwrite($soubor, $radek);
}
fclose ($klika);
?''>
fwrite($soubor,
      </div>
      <div id="hlavicka">
        <div class="css-slideshow">
          <figure><img src="images\1.jpg" /></figure>
          <figure><img src="images\2.jpg" /></figure>
          <figure><img src="images\3.jpg" /></figure>
          <figure><img src="images\4.jpg" /></figure>
          <figure><img src="images\5.jpg" /></figure>
          <figure><img src="images\6.jpg" /></figure>
          <figure><img src="images\3.jpg" /></figure>
          <figure><img src="images\5.jpg" /></figure>
        </div>
        <!--<img src="sorrento.jpg" width="100%"> -->
      </div>     <!-- hlavička stránky -->
      <div id="obsaho"></div>
      <div id="obsah">                        <!-- obsah stránky -->
);
<?php
$souborNE = ./.$menu.php;
$klika = fopen($souborNE, "r");
while (!feof ($klika)) {
  $radek = fgets($klika, 4096);
  echo "$radek";
}

fclose ($klika);

fwrite($soubor,
      </div>
      <div id="patka">Copyright 2014, &copy; Něco tam dám</div>
    </div>
  </body>
</html>
);
fwrite($soubor, null);
fclose($soubor); ?''>
?>
 </body>
 </html>

Jo a toto vyřeším přez vytvoření další proměné ale dám to sem jako zajímavost že se mi vloží proměná menu jen za <a href ale za <button> už ne.

fwrite($soubor, '<a href="'. $menu .'.php"><button> '. $menu .'</button> </a>');
 
Nahoru Odpovědět
3.8.2016 7:48
Avatar
David Hynek
Tvůrce
Avatar
David Hynek:3.8.2016 7:55

koukám že tyhle funkce asi neznáte viz: http://php.net/…contents.php nebo http://php.net/…contents.php

Nahoru Odpovědět
3.8.2016 7:55
Čím víc vím, tím víc věcí nevím.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.