Skocz do zawartości
PL
Szukaj na Pecetowiczu
  • Utwórz konto

Podstrony w jednym pliku index.php


Rekomendowane odpowiedzi

Witam, chce zrobic podstrony wczytywane z bazy mysql na zasadzie (index.php?img=tutaj id wpisu).

Z pliku index.php tworze przekierowanie na do podstron np. (inc/obrazek.php?img=id wpisu).

Problem polega na tym ze nie działa przekierowanie tworzone metoda $_GET['img'], ponizej fragment kodu:

 

 include('inc/header.php');

               if (isset($_GET["img"]))
               { 
                    $img = $_GET["img"];
                    include('inc/obrazek.php?img=' . $id);
               }
               
               else if (isset($_GET['logout']))
               {
                    include('inc/logout.php');	
               }
               else if (isset($_GET['login']))
               {
                    include('inc/login.php');	
               }
               else if (isset($_GET['register']))
               {
                    include('inc/register.php');	
               }
               else
               {
                    include('inc/home.php');	
               }          	

          include('inc/footer.php');


Moje główne pytanie brzmi, jak zrobić aby to przekierowanie działało dobrze. Jeśli wejde bezpośrednio w (inc/obrazek.php?img=id wpisu) to wyswietla normalnie, jesli poprzez index.php?img=id wpisu, wyswietla pusta strone w strone głównej. Bardzo prosze o pomoc. Dawno nie programowałem, co prawda wersja PHP sie zmieniła, ale aktualnie ja ustawiłem na 5.4

Odnośnik do komentarza
Udostępnij na innych stronach

Chcesz zrobić routing, a tego się tak nie robi.

Deklarujesz zmienną $img i przypisujesz do niej wartość, a nigdzie jej później nie używasz. Powinno też wyrzucić błąd odnośnie zmiennej $id, bo nigdzie wcześniej jej nie zadeklarowałeś, a ją używasz.

Poza tym, żadnego przekierowania tu nie widzę. Poczytaj też o Twigu.

Odnośnik do komentarza
Udostępnij na innych stronach

<?php

                //ini_set( 'display_errors', 'On' ); 
                //error_reporting( E_ALL );

                include('class.php');

                if (isset($_GET["img"]))
                { 
                    $img = $_GET["img"];
                } 
                else 
                { 
                    $img = 1; 
                };

                $wyn1 = mysqli_query($con, "SELECT * FROM img WHERE id = '$img' ORDER BY id DESC");

                while($row = mysqli_fetch_array($wyn1))
                {

				/// dalsza tresc kodu

                }

?>

To plik obrazek.php o ktorym wspomniałem wyzej

Tutaj zrobiłem bład ale to literówka, wczesniej było $img i tez nie działało, przepraszam ze zle mnie zrozumiałeś:

 

if (isset($_GET["img"]))
               { 
                    $img = $_GET["img"];
                    include('inc/obrazek.php?img=' . $img);
               }

Miało być tak ale to nadal nie działa, czytam na temat routera PHP. Może powiem tak, potrzebuje zrobic proste przekierowanie, na ta podstrone która jest powyzej w kodzie, kod ma byc jak najprostrzy, nic szczegolnego nie bedzie wykorzystywane w tych podstronach, poprostu jak najprostrzym kodem.

Odnośnik do komentarza
Udostępnij na innych stronach

include i require 'wrzucają kod' całego pliku podanego w ścieżce. To, że dodasz tam jakieś parametry, to i tak nie zadziała. Ten twój warunek powinien wyglądać tak:

<?php

if (isset($_GET["img"])) {
  require_once 'inc/obrazek.php';
}

I nic więcej.

A w pliku obrazek.php sprawdź czy w ogóle masz połączenie z bazą i zapytanie 'działa' poprawnie.

Odnośnik do komentarza
Udostępnij na innych stronach

Super dziękuje ślicznie, no nie programowałem kilka dobrych lat, działa wszystko super. Można zamknąć temat Dziękuję!

Odnośnik do komentarza
Udostępnij na innych stronach

Kontynuuj dyskusję

Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.

  • Dodaj nową pozycję...
  • Dodaj nową pozycję...