Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Include, nie zdefiniowana zmienna
paradox
post 1.04.2015, 18:54:00
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 31.03.2015

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
rad11
post 1.04.2015, 18:58:36
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.

Ten post edytował rad11 1.04.2015, 19:00:14
Go to the top of the page
+Quote Post
paradox
post 1.04.2015, 19:12:30
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 31.03.2015

Ostrzeżenie: (0%)
-----


czemu kod wyglada
Kod
if(!empty($output))
(chodzi mi o $output) skoro zmienna deklarowalem dopiero pozniej?
Go to the top of the page
+Quote Post
Beniooo
post 1.04.2015, 19:55:03
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


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))


--------------------
Mój post rozwiązał Twój problem? Naciśnij co Ci szkodzi? ;-)
Go to the top of the page
+Quote Post
paradox
post 1.04.2015, 20:01:02
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 31.03.2015

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Beniooo
post 1.04.2015, 20:06:48
Post #6





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


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>


--------------------
Mój post rozwiązał Twój problem? Naciśnij co Ci szkodzi? ;-)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 21:58