• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie gotowej strony php ze skryptu php

Object Storage Arubacloud
0 głosów
2,352 wizyt
pytanie zadane 1 stycznia 2017 w PHP przez Maciejf Początkujący (470 p.)

Witam!

Potrzebuję napisać skrypt php, który po za innymi rzeczami już ogarniętymi będzie tworzył plik php w katalogu Strony_klientów, nazwa pliku będzie uzależniona od nazwy klienta, ale to nie problem bo już ogarnąłem.

Problem mam z umieszczeniem w zmiennej która będzie zapisana do tego pliku całej strony która ma się w tym pliku znaleźć. W sumie nie wiem jak się za to wziąć, bo jakbym chciał zapisać w pliku pojedyńczą zmienną to zrobię to tak : 
 

$zmienna = $haslo;

$nazwa_pliku = 'test/'.$imie.'.php';
$Zapisz= $zmienna;
$plikw = fopen($nazwa_pliku,'w');
  // blokada pliku do zapisu 
    flock($plikw, 2); 
    // zapisanie danych do pliku 
    fwrite($plikw,$Zapisz); 
    // odblokowanie pliku 
    flock($plikw, 3); 
    // zamknięcie pliku
	fclose($plikw);

Ale co jak chciałbym aby nowo tworzony plik był kompletną stroną I wyglądała tak :

 

<?php

session_start();

if ($_SESSION['user'] != 'Ania') {
  header('Location: ../logowanie.php');
		exit();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//PL" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html lang="pl">
   

<head>


<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta property="og:type" content="website" />

<meta property="og:image"
content="http://minicuda.pl/grafika/fb_logo2.jpg" />

<meta property="og:url"
content="http://www.minicuda.pl" />

<meta property="og:title"
content="SZKIC STRONY INTERNETOWEJ" />

<meta property="fb:app_id"
content="1461480577479480" />

<link rel="Shortcut icon" href="grafika/icon-96x96.png" />



<link rel="stylesheet" href="../style_index.css" type="text/css"/>

<link href='http://fonts.googleapis.com/css?family=Lato:400,700,900&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Kaushan+Script&subset=latin,latin-ext' rel='stylesheet' type='text/css'>


<title>Witaj na MiniCuda.pl</title>

<!-- Use jQuery for best compatibility with other CSS3 enabled browsers -->
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" type="text/javascript" charset="utf-8"></script>
		

<script src="js/flux.min.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript" charset="utf-8">
			
			$(document).ready(function(){
  var $ctrl = false;
  var $key = 17, $c = 67, $v = 86, $alt = 18; // kody kolejnych klawiszy - ctrl, litery c oraz v, klawisz alt
  // musimy uwzględnić pomijanie klawisza alt, ponieważ jego naciśnięcie powoduje
  // wyzwolenie bindów o numerach 18 i 17, co skutkuje blokadą klawisza c
  // i nie zezwala na wpisanie litery "ć"
  $(document).bind("contextmenu",function(e){ 
    return false; // blokujemy menu kontekstowe
  });
  // jeżeli trzymamy wciśniety klawisz ctrl,
  // zmienna $ctrl ma flage ustawiona na true
  // dzieki czemu
  // mozemy sprawdzac kolejny wciskany klawisz w kolejnym 'keydown'
  $(document).keydown(function(e) {
    if (e.keyCode == $key) { $ctrl = true; }
  }).keyup(function(e) {
    if (e.keyCode == $key) { $ctrl = false; }
  });
  $(document).keydown(function(e) {
    if (e.keyCode == $alt) { $ctrl = false; }
    // odblokowujemy kombinację ALT+C przestawiając $ctrl na FALSE
  });
  $(document).keydown(function(e) {
    if ($ctrl && (e.keyCode == $v || e.keyCode == $c)) {
      return false;
      // jezeli byl wcisniety klawisz ctrl 
      // a razem z nim literka c lub v, blokujemy
    }
  });
});
		</script>
        
        
</head>

<body>

  


<div id="logo"><img src="../grafika/T14+tłoC2.png" /></a>
<div id="logo2"> 
<a href="http:\\facebook.com\minicuda"><img src="../grafika/ikon-facebook.png" width="68" height="68" /></a> 
</div>
</div>

<div id="container">


<div id="menu">

<ol>
<li><a href="..\index.php">Strona główna</a></li>
<li><a href="..\galeria.php">Galeria</a></li>
<li><a href="..\oferta.php">Oferta</a></li>
<li><a href="..\onas.php">Informacje</a></li>
<li><a href="..\kontakt.php">Kontakt</a></li>
<li><a href="..\logowanie.php">Logowanie</a></li>
</ol>



</div>

<div id="onas">
<div style="clear:both">
  <p>&nbsp;</p>
</div>
<h3>
<?php

	echo '[ <a href="../logout.php">Wyloguj mnie!</a> ]</p>';

	
?>
</h3>
<br/><br/>


<h3>




<br/><br/><br/><br/>

<h1>1.</h1> 
<img src="../galeria/Ania/5DMK3_0173.jpg" /> 
<h1>2.</h1> 
<img src="../galeria/Ania/5DMK3_0188.jpg" /> 
<h1>3.</h1> 
<img src="../galeria/Ania/5DMK3_0194.jpg" /> 
<h1>4.</h1> 
<img src="../galeria/Ania/5DMK3_0205.jpg" /> 
<h1>5.</h1> 
<img src="../galeria/Ania/5DMK3_0209.jpg" /> 
<h1>6.</h1> 
<img src="../galeria/Ania/5DMK3_0228.jpg" /> 
<h1>7.</h1> 
<img src="../galeria/Ania/5DMK3_0237.jpg" /> 
<h1>8.</h1> 
<img src="../galeria/Ania/5DMK3_0259.jpg" /> 
<h1>9.</h1> 
<img src="../galeria/Ania/5DMK3_0266.jpg" /> 
<h1>10.</h1> 
<img src="../galeria/Ania/5DMK3_0281.jpg" /> 
<h1>11.</h1> 
<img src="../galeria/Ania/5DMK3_0288.jpg" /> 






   

   
</h3>



</div>


<div id="footer">
 
&copy; Copyright - wszelkie prawa zastrzeżone: Maciej Fiałkowski
</div>
</div>







</body>
</html>

Proszę o pomoc!

komentarz 2 stycznia 2017 przez Ehlert Ekspert (212,670 p.)

Te dolary przy nazwach zmiennych w JS to tak z szacunku dla rozszerzenia pliku? surprise

Nie są to obiekty jQuery.

2 odpowiedzi

+2 głosów
odpowiedź 1 stycznia 2017 przez CzikaCarry Szeryf (75,340 p.)
Zakładam, że chcesz zrobić stronę profilową, ale po co tworzyć pierdyliard plików? Jesli myślisz, że to tak działa, że każdy User ma oddzielny plik ze swoim profilem to się mylisz. Takie coś robi się poprzez zmienne GET i bazę danych, wtedy nie trzeba robić pliku dla każdego usera, wystarczy jeden jedyny plik.
komentarz 1 stycznia 2017 przez Maciejf Początkujący (470 p.)
Mam stronę na której rejestruję nowego klienta, tzn. wrzucam do SQL login , hasło i adres strony. Teraz chcę żeby przy okazji tworzyła się cała strona na którą klient będzie mógł wejść i wybrać zdjęcia z sesji albo pobrać całą paczkę.

Wszystko już działa teraz optymalizuje zakładanie nowego klienta.
komentarz 1 stycznia 2017 przez Vento Pasjonat (17,120 p.)
Ale dlaczego nie możesz wczytać tego przez baze?
komentarz 1 stycznia 2017 przez Maciejf Początkujący (470 p.)
w sensie wrzucić całą tą stronę do SQL i wyciągnięcie tego z tamtąd?
komentarz 1 stycznia 2017 przez Vento Pasjonat (17,120 p.)
Chcesz, aby uzytkownik mogl pobrac cala obecna strone?
komentarz 1 stycznia 2017 przez CzikaCarry Szeryf (75,340 p.)
Maciejf w bazie będziesz miał odpowiednie dane, a następnie wyświetlisz je w szablonie stronu i to wszystko.
komentarz 1 stycznia 2017 przez Maciejf Początkujący (470 p.)
Nie rozumiemy się.

Dotychczas brałem gotową stronę kopiowałem ją zmieniałem nazwę, ścieżki do zdjęć itd.
Teraz chcę żeby skrypt php tworzył mi plik z gotowym szablonem, tylko nie wiem jak ten szablon składający się z 200 linii kodu, zawierający elementy html i skrypty php umieścić w zmiennej która ma być zapisana w tym pliku.
1
komentarz 1 stycznia 2017 przez Vento Pasjonat (17,120 p.)
Poczytaj sobie o systemach szablonów w php. Najpopularniejszy i moim zdaniem (jak i  wielu osób) najlepszy system szablonów jaki jest to twig:

http://twig.sensiolabs.org/

Od biedy mozesz po prostu stworzyc dwa pliki z menu oraz stopką i do każdego pliku je podpinać, aby uzyskać podobny efekt, ale twig dodatkowo oddziela warstwę php'a od html'a..
0 głosów
odpowiedź 2 stycznia 2017 przez maly Nałogowiec (37,190 p.)

Masz jakiś sensowny powód dla którego chcesz dla każdego użytkownika mieć osobny plik?
W normalnych sytuacjach robi się mniej wiecej tak:
sprawdzasz czy user zalogowany
jesli tak to pobierasz jego dane
wyświetlasz wszystko przy pomocy szablonu

Najprostszy, baaaaardzo prymitywny sposób mógłby wyglądać tak:

<?php
// LOGIKA
session_start();

if(isset($_SESSION['user'])){
	$zalogowany_user = $_SESSION['user'];
	
	$linki_do_obrazkow_usera = pobierz_linki_do_obrazkow_usera($zalogowany_user);
}else{
	header('Location: logowanie.php');
	exit;
}
?>
<!-- SZABLON -->

<!-- jakieś pierdoły na stronie -->

<p>Jesteś zalogowany jako :<?=$zalogowany_user;?></p>

<?php foreach($linki_do_obrazkow_usera as $link_do_obrazka):?>
	<img src="<?=$link_do_obrazka;?>"/> 
<?php endforeach;?>

<!-- inne pierdoły na stronie -->

 

komentarz 2 stycznia 2017 przez Maciejf Początkujący (470 p.)
Dlatego, że dla jednego klienta będzie to galeria ze zdjęciami, dla drugiego będzie to link z paczką do pobrania a dla trzeciego tylko informacje którymi wymieniamy się przez stronę, dlatego zależy mi żeby każdy miał swoją a 4kb nie zrujnują miejsca.
komentarz 2 stycznia 2017 przez maly Nałogowiec (37,190 p.)
No niewiem, dla mnie zarówno linki do zdjęć czy paczek jak i jakieś tam informacje to tylko dane wyciągnięte z np. bazy więc w zasadzie wszystko jest tym samym tylko inaczej zaprezentowane a od tego są szablony.
komentarz 2 stycznia 2017 przez Maciejf Początkujący (470 p.)

To może inaczej, da się to jakoś zoptymalizować, bo na piechotę też się da tylko jest 200 linijek do przepisania.

$zmienna1 = "<?php"."\r\n";
$zmienna2 = "session_start();"."\r\n";
$zmienna3 = 'if ($_SESSION["user"] != '.$imie.') {'."\r\n";
$zmienna4 = "header('Location: ../logowanie.php');"."\r\n";
$zmienna5 = "exit();"."\r\n";
$zmienna6 = "}"."\r\n";
$zmienna7 = "?>"."\r\n";
$zmienna8 = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//PL" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'."\r\n";
$zmienna9 = '<html xmlns="http://www.w3.org/1999/xhtml">'."\r\n";
$zmienna10 = '<html lang="pl">'."\r\n";
$zmienna11 = "<head>"."\r\n";

$plikw = fopen($nazwa_pliku,'w');
  // blokada pliku do zapisu 
    flock($plikw, 2); 
    // zapisanie danych do pliku 
    fwrite($plikw,$zmienna1); 
	fwrite($plikw,$zmienna2); 
	fwrite($plikw,$zmienna3); 
	fwrite($plikw,$zmienna4); 
	fwrite($plikw,$zmienna5); 
	fwrite($plikw,$zmienna6); 
	fwrite($plikw,$zmienna7); 
	fwrite($plikw,$zmienna8);
	fwrite($plikw,$zmienna9);
	fwrite($plikw,$zmienna10);
	fwrite($plikw,$zmienna11);
	

    // odblokowanie pliku 
    flock($plikw, 3); 
    // zamknięcie pliku
	fclose($plikw);

 

komentarz 2 stycznia 2017 przez maly Nałogowiec (37,190 p.)

Jeśli chcesz skrócić te wszystkie fwrite to:

$max = 11;
for($i = 1; $i <= $max; $i++){
	fwrite($plikw, ${'zmienna'.$i});
}

 

komentarz 2 stycznia 2017 przez maly Nałogowiec (37,190 p.)

A że nie odpowiedziałem na Twoje podstawowe pytanie to teraz odpowiadam.

$html = include('template.php');

//zapisz $html
<?php
return <<<EOD
<?php
session_start();
if (\$_SESSION["user"] != '{$imie}') {
header('Location: ../logowanie.php');
exit();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//PL" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html lang="pl">
<head>
EOD;

 

Podobne pytania

0 głosów
1 odpowiedź 539 wizyt
pytanie zadane 9 września 2016 w PHP przez Q_Nick Mądrala (5,010 p.)
0 głosów
1 odpowiedź 169 wizyt
pytanie zadane 26 marca 2017 w PHP przez Szymon Ciompała Mądrala (6,280 p.)
0 głosów
1 odpowiedź 88 wizyt
pytanie zadane 8 lutego 2017 w PHP przez lukos Nowicjusz (120 p.)

92,573 zapytań

141,423 odpowiedzi

319,646 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...