Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]błąd include ?
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam,

Po pierwsze to nie wiem jak to sie stalo ale juz raz napisalem ten temat i nie po wcisnieciu przycisku "Napisz nowy temat" nic sie nie pojawilo.

A teraz przechodze do sedna.
Otoz mam sobie plik template.php ktory wyglada nastepujaco :

  1. <?php
  2. include("auth.inc.php");
  3. ?>
  4. <html>
  5. <head>
  6. <title>PHP5, Apache i MySQL</title>
  7. </head>
  8. <body>
  9. <h1>Strona służąca jako szablon</h1>
  10. <h2>Jeśli widzisz ten tekst znaczy, że zalogowałeś sie poprawnie</h2>
  11. </body>
  12. </html>


Jak widac jest tutaj include pliku ktory wyglada tak :

  1. <?php
  2.  
  3.    if(isset($_SESSION['logged'] && $_SESSION['logged'] == 1) {
  4.        //nic nie rób
  5.        echo "Nic nie rób";
  6.    } else {
  7.        $redirect = $_SERVER['PHP_SELF'];
  8.        header("Refresh: 5; URL=login.php?redirect=$redirect");
  9.        echo "Zostaniesz przekierowany na strone logowania!<br>";
  10.        echo "(Jeśli przeglądarka nie obsługuje przekierowań, <a href=\"login.php?redirect=$redirect\">Kliknij tutaj</a>)";
  11.        die();
  12.    }
  13. ?>


Gdy uruchamiam plik template.php nic sie nie wyswietla, czyli wyswietla sie pusta strona, w firebugu to samo, tylk znaczniki html i nic poza tym. Czyzby to byl jakis blad przy include ?

Nic nie daje tez zmiana nazwy pilku ktory chce inkludowac np auth.php daje ten sam rezultat i nie mam pojecia gdzie tu moze byc jeszcze blad....zeby nic sie nie wyswitelalo to naprawde dziwne, nawet jak wrzuce jakies znaczki to i tak pusta strona....

Wszystkie znaczniki tez sie zgadzaja, wszystko jest pozamykane, nie ma bledow w pisowni z tego co przeanalizowalem...... sciana.gif
piotrooo89
a odpalasz ten plik na serwerze? tak prewencyjnie spytam.
Wolfie
tak, oczywiscie ze na serwerze, localhost apache

Mam tez kolejny plik ktory lezy w tej samej lokalizacji i nalezy do "aplikacji" ktora sie sklada z tych plikow i ten plik wyswietla sie bez problemu,

Tak dla formalnosci go przedstawie :

  1. <?php
  2. $_SESSION['logged'] = 0;
  3.    
  4.    if(isset($_POST['submit'])) {
  5.        if($_POST['username'] == "mateusz" && $_POST['password'] == "wilk") {
  6.            $_SESSION['logged'] = 1;
  7.            header("Refresh: 5; URL=".$_POST['redirect']."");
  8.            echo "Zostajesz przekierowany na orginalna strone, której żądałeś!<br>";
  9.            echo "(Jeśli przeglądarka nie obsługuje przekierowań, <a href=\"".$_POST['redirect']."\">Kliknij tutaj</a>)";
  10.        } else {
  11.            ?>
  12.            <html>
  13.            <head>
  14.            <title>PHP5, Apache i MySQL</title>
  15.            </head>
  16.            <body>
  17.            <p>
  18.                Niepoprawna nazwa uzytkownika lub hasło!<br><br>
  19.                    <form action="login.php" method="post">
  20.                        <input type="hidden" name="redirect" value="<?php echo $_POST['redirect']; ?>">
  21.                        Użytkownik : <input type="text" name="username"><br>
  22.                        Hasło : <input type="password" name="password"><br><br>
  23.                        <input type="submit" name="submit" value="Zaloguj">
  24.                    </form>
  25.            </p>
  26.            <?php
  27.        }
  28.    } else {
  29.        ?>
  30.        <html>
  31.        <head>
  32.        <title>PHP5, Apache i MySQL</title>
  33.        </head>
  34.        <body>
  35.        <p>
  36.            Trzeba sie zalogować, aby zobaczyć zawartość tej strony<br><br>
  37.        <?php
  38.        if(isset($_GET['redirect'])) {    
  39.            $redirect = $_GET['redirect'];
  40.        } else {
  41.            $redirect = "index.php";
  42.        }
  43.        ?>
  44.            <form action="login.php" method="post">
  45.                <input type="hidden" name="redirect" value="<?php echo $_GET['redirect']; ?>">
  46.                Użytkownik : <input type="text" name="username"><br>
  47.                Hasło : <input type="password" name="password"><br><br>
  48.                <input type="submit" name="submit" value="Zaloguj">
  49.                </form>
  50.        </p>
  51.        <?php
  52.        }
  53.        ?>
  54.        </body>
  55.        </html>


No ale niestety plik template.php do ktorego powinien byc dostep dopiero po zalogowaniu nie wyswietla sie i nie przekierowuje na strone logowania.....
piotrooo89
a tak spróbuj:

  1. <?php
  2. if((isset($_SESSION['logged'])) && ($_SESSION['logged'] == 1))
  3. {
  4.    echo "Nic nie rób";
  5. }
  6. else
  7. {
  8.    $redirect = $_SERVER['PHP_SELF'];
  9.    header("Refresh: 5; URL=login.php?redirect=$redirect");
  10.    echo 'Zostaniesz przekierowany na strone logowania!<br>';
  11.    echo '(Jeśli przeglądarka nie obsługuje przekierowań, <a href="login.php?redirect='.$redirect.'">Kliknij tutaj</a>)';
  12.    die();
  13. }
  14. ?>
Wolfie
Niestety to samo.....z nawiasami czy bez z session_start() czy bez nic sie nie dzieje......probowalem tez uzyc zamist include require ale ten sam efekt....

-----------------------------------------

Doszedlem do tego ze błąd jest w pliku auth.inc.php ktory zostal przedstawiony w pierwszym poscie ale wklejam go zeby nie przewijac :

  1. <?php
  2.    if(isset($_SESSION['logged'] && $_SESSION['logged'] == 1) {
  3.        //nic nie rób
  4.        echo "Nic nie rób";
  5.    } else {
  6.        $redirect = $_SERVER['PHP_SELF'];
  7.        header("Refresh: 5; URL=login.php?redirect=$redirect");
  8.        echo "Zostaniesz przekierowany na strone logowania!<br>";
  9.        echo "(Jeśli przeglądarka nie obsługuje przekierowań, <a href=\"login.php?redirect=$redirect\">Kliknij tutaj</a>)";
  10.        die();
  11.    }
  12. ?>


Tak wiec odpalajac bezposrednio ten plik w przegladarce nic sie nie wyswietla, a powinno chociazby przekierowac, czy ktos tu widzi jakis blad ?
hondek
  1. <?php
  2. if(isset($_SESSION['logged'] && $_SESSION['logged'] == 1) {
  3. ?>

tu masz blad smile.gif
brakuje ci nawiasu do isset()
  1. <?php
  2. if(isset($_SESSION['logged']) && $_SESSION['logged'] == 1) {
  3. ?>
kkuba
http://pl.php.net/isset

Można również to zrobić w ten sposób:

Kod
if(isset($_SESSION['logged'], $_SESSION['logged'] == 1) {


; )

Pozdrawiam.


//down: lepsze akwarium. możesz w nim trzymać żółwia, jeść z niego zupe etc. Z rybkami jest stanowczo gorzej.
hondek
nie no, albo rybki albo akwarium, wszystko na raz miec nie mozna ;P
a juz napewno nie
  1. <?php
  2. if(isset($_SESSION['logged'], $_SESSION['logged'] == 1)
  3. ?>
Wolfie
No dziekuje hondek serdecznie smile.gif
kkuba
Argh, zwracam honor, tego nie zauważyłem >.<

I przepraszam za spam, ale nie mogłem tego tak zostawić ; p
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.