Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
PHP jako value - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: PHP jako value (/thread-php-jako-value)



PHP jako value - kowarufubu - 24-09-2011




RE: PHP jako value - kancik - 24-09-2011

no to sobie popraw !!! Gdzieś problem jest z apostrofami lub cudzysłowiami. Najlepiej pokaż to echo w którym wyświetlasz to.


RE: PHP jako value - kowarufubu - 24-09-2011

Kod:
<?php session_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>test</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div id="main">
<?php
if (empty($_POST) && isset($_GET['action'])) {
        $action = $_GET['action'];
        switch ($action) {
            case 'logout':
                session_unset();
                session_destroy();
                break;
    }
}
if (!isset($_SESSION['user'])) {
    $user = '';
    $pass = '';
    if (isset($_POST['login'])) {
        $user = strtolower(trim($_POST['user']));
        $pass = $_POST['pass'];
        $errors = array();
        if ($user == '' || $user != 'admin') {
            $errors['user'] = '';
        }
        if ($pass == '' || $pass != '123456') {
            $errors['pass'] = '';
        }
        if (empty($errors)) {
            $_SESSION['user'] = $user;
        } else {
            echo '<p class="error">Please fill in your correct ';
            if (isset($errors['user']))
                echo 'username';
            if (count($errors) == 2)
                echo ' and ';
            if (isset($errors['pass']))
                echo 'password';
            echo '.</p>', "\n";
        }
    }
}
if (isset($_SESSION['user'])) {
    $user = $_SESSION['user'];
?>
<div id="headertext">
    <p class="l">You are logged in as <strong><?php echo $user?></strong>.</p>
    <p class="r"><a href="?action=logout">Logout</a></p>
</div>
<?php
    if (isset($_POST['edit'])) {
        if (file_put_contents('../index.php', $_POST['homecontent']))
            echo '<p class="succes">Your changes are saved.</p>', "\n";
    }
    $homecontent = file_get_contents('../index.php');
?>
<form method="post" action="">
    <p>Here you can edit your homepage text:</p>
    <textarea name="homecontent" id="homecontent" rows="20" cols="55"><?php echo $homecontent?></textarea>
    <p><button type="submit" name="edit">Save changes</button></p>
    <button onclick="document.getElementById('homecontent').value='<?PHP include(\'strony/gora.txt\');?>';">DOdaj</button>
?>
</form>
<?php } else {?>

<form method="post" action="" id="login">
    <p>
        <label for="user">Username:</label><input type="text" name="user" id="user" value="<?php echo $user?>" />
    </p>
    <p>
        <label for="pass">Password:</label><input type="password" name="pass" id="pass" value="<?php echo $pass?>" />
    </p>
    <p>
        <button type="submit" name="login">Login</button>
    </p>
</form>
<?php }?>
</div>
</body>
</html>

Proszę, cała strona... nie mam pojęcia co jest źle, bo w PHP się prawie wcale nie orientuję :/


RE: PHP jako value - kancik - 24-09-2011

w linijce owej w której występuję błąd zastosuj encje Smile Nie wiem czemu ale one się tutaj parsuja na tym forum i dlatego niestety to Ci nie mogę pokazać.
<a href="#" onclick="document.getElementById('homecontent').value='&lt;?php include(\'strony/gora.txt\');?&gt;';">Wstaw tekst</a>

o bez podświetlania skłądni działają encje. Ten link zamiast tamtego buttona. ALe oczywiście Kartofelek się wypowie no ale cóż Smile Nie wiadomo co mu nie pasuje skoro na swoim cudownym kursie pokazuje to samo Wink))


RE: PHP jako value - kowarufubu - 24-09-2011

Jest już prawie idealnieSmile Wielkie dziękiSmile muszę jeszcze jakoś dodać "stripslashes" do tego, ale nie bardzo mi wychodzi :/


RE: PHP jako value - kancik - 24-09-2011

Dla twojego kodu:
Kod PHP:
$slash =$_POST['homecontent'];
if (
file_put_contents('../index.php',$slash)) 
Podczas zapisywania czegoś do bazy danych jeżeli przejmujesz to od kogoś dodajesz addslashes
Kod PHP:
$homecontent stripslashes(file_get_contents('../index.php')); 
Podczas wyswietlania ich np. gdzieś na stronie po prostu je wycinasz. Jednak nie jest to najlepsza ochrona Smile
Poczytaj o zabezpieczaniu formularzy.


RE: PHP jako value - kowarufubu - 24-09-2011

Hmm. w tej chwili chodziło mi o inny plik... plik, który wyświetla to co zapisałem w homecontent... do homecontent wstawia się to include i zapisuje do pliku index.php. I chciałbym żeby już w index.php skrypt się wykonywał. Mam nadzieję że dobrze wytłumaczyłemSmile

Poczytam poczytamSmile


RE: PHP jako value - kancik - 24-09-2011

Takich cudów nie widziałem jeszcze szczerze mówiąc Smile Chodzi Ci o to , że np. tą funkcję która napisałeś do zapisywania do pliku to taki mini panel administracyjny ? I on np jest w pliku admin/index.php ? Następnie to co zapisałeś w pliku ../index.php czyli w głównym katalogu to ma być się w nim wyświetlać tak ? Reasumując...

- Panel admina zapisywanie ( polecenia które includuje następny plik ) do pliku w głównym katalogu index.php
- Wyświetlanie w index.php szablonu i divie homecontent ma się wyświetlić ten includowany plik ?

Szczerze mówiąc to jest lekko pokręcone. Nie łatwiej zrobić np. pomijam , że to zrobić na bazie danych ale że tworzysz sobie różne pliki tekstowe z treścią poprzez ten panel administracyjny. Następnie w głównym katalogu index.php poprostu przechwytujesz np. zmienną $_GET parametr jaka to ma być strona np.
strona.php?str=onas i dołącza plik strony/onas.php do homecontent ? To takie prymitywne rozwiązanie no ale tylko daję przykład. Bo łatwiej zrobić to na bazie danych.


RE: PHP jako value - kowarufubu - 24-09-2011

Tylko, że właśnie mi zależy na tym aby nie było bazy danych :/. Więc moje pytanie brzmi:

Jak dodać stripslashes do tego:
<?php include(\'strony/goraa.txt\');?>

Edit: może w javascript?


RE: PHP jako value - kancik - 24-09-2011

do include się nie da dodać bo gdy go np chcemy przypisać do zmiennej
Kod PHP:
$zm = include('plik.php'); 
to ta zmienna zwraca 1 jeżeli include znalazl tą zmienną. Musiałbyś to zapisywać jako np.
Kod PHP:
<?php
echo  stripslashes(file_get_contents('cos.php'));
?>

Tylko też to nie jest dobre rozwiązanie Smile I wcale nie chodzi o to że nie korzystasz z baz danych.