Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Include, nie zdefiniowana zmienna
Forum PHP.pl > Forum > Przedszkole
paradox
Ucze sie z ksiazka i po raz kolejny jestem w kropce T_T
Napisalem kod, ktory ma laczyc sie z serwerem baz danych.
Chce wstawic go do innego pliku za pomoca szablonu php (tak jest to okreslone w ksiazce) ale wyskakuje mi taki blad:
Kod
Notice: Undefined variable: output in C:\xampp\htdocs\moje\output.html.php on line 13


connect.php
Kod
<?php

    $link = mysqli_connect('localhost', 'root', 'qwerty', 'testdb');

    if(!$link) {
        $output = 'Nie mozna polaczyc sie z serwerem baz danych.';
        echo $output;
        exit();
    }

    include 'output.html.php';

?>


output.html.php
Kod
<!DOCTYPE html>
<html>
  <head>
</head>
  <body>

    <p>
      <?php

      echo $output;

      ?>
    </p>
  </body>
</html>


Z gory dziekuje
rad11
jak juz to

  1.  
  2. if(!empty($output)){
  3.  
  4. echo $output;
  5. }
  6.  


Masz taki blad poniewaz zmienna jest uruchamiana wtedy kiedy polaczenie jest bledne.
paradox
czemu kod wyglada
Kod
if(!empty($output))
(chodzi mi o $output) skoro zmienna deklarowalem dopiero pozniej?
Beniooo
A więc, zmienną $output definiujesz tylko w przypadku, gdy nie można połączyć się z bazą, więc jeśli połączenie się powiedzie, to zmienna nie istnieje dla parsera. Po to ten if, chociaż powinien bardziej wyglądać tak, bo trzeba sprawdzić, czy została zadeklarowana, a nie, czy coś w niej jest:
  1. if(isset($output))
paradox
Czyli caly plik powinien wygladac tak?
Kod
<?php

    $link = mysqli_connect('localhost', 'roooot', '', 'testdb');

    if(isset($output)){
        
        $output = 'Nie mozna polaczyc sie z serwerem baz danych.';
        echo $output;
    
    }

    include 'output.html.php';

?>


Podalem specjalnie bledne dane ale dalej wystepuje komunikat o niezdefiniowanej zmiennej
Beniooo
Kod ma być taki, skoro nadal nie rozumiesz:
connect.php
  1. <?php
  2.  
  3. $link = mysqli_connect('localhost', 'root', 'qwerty', 'testdb');
  4.  
  5. if(!$link) {
  6. $output = 'Nie mozna polaczyc sie z serwerem baz danych.';
  7. echo $output;
  8. exit();
  9. }
  10.  
  11. include 'output.html.php';
  12.  
  13. ?>


output.html.php
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. </head>
  5. <body>
  6.  
  7. <p>
  8. <?php
  9.  
  10. echo (isset($output) ? $output : "");
  11.  
  12. ?>
  13. </p>
  14. </body>
  15. </html>
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.