Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przekierowanie na news-a z tabeli
Forum PHP.pl > Forum > Przedszkole
zaklik
Witam wszystkich

Problem z tym przekierowaniem pojawił się po przenosinach strony i bazy na inny serwer (nazwa.pl). Na stronie głównej, po prawej, wyświetlają się newsy, które są zapisane w tabeli w bazie mysql-a. Są ograniczone do pewnej ilości znaków. Poniżej każdego znajduje się link "czytaj więcej". Niestety właśnie po przenosinach to przekierowanie przestało działać. Połączenie z bazą jest ponieważ widać, że pobiera początki każdego news-a.
Oprócz pliku index.php konfiguracja do połączenia z bazą zapisana jest w pliku config.php.

Adres strony www.pkstarnow.pl

Może ktoś rzuci okiem na kod i doradzi co może być nie tak.

Z góry wielkie dzięki. Pozdrawiam.
Mega_88
Strzelam, wstaw w .htaccess --> RewriteEngine On
rocktech.pl
Witam.

Przekierowanie działa

Ządanie:
Kod
GET /index.php?ID=18 HTTP/1.1

Odpowiedź:
Kod
HTTP/1.1 200 OK


1. Sprawdź plik .htaccess
2. Pokaż fragment kodu gdzie przetwarzasz ID
3. Pewnie tłumisz błędy zerknij w error_log
zaklik
W config.php gdzie znajduje się cała konfiguracja do połączenia z bazą danych - wyświetla listę news-ów i tworzy link do niego:

Kod
function wstaw_newsy() {
global $tabela_newsy;
    
    $zapytanie = "SELECT * FROM $tabela_newsy ORDER BY id DESC LIMIT 0,10";
    $dzialaj =  mysql_query($zapytanie);
    
  while( $pole=mysql_fetch_array($dzialaj) ) {
  //for ($i=1; $i<=3; $i++) {
        //$pole =  mysql_fetch_array($dzialaj);
        $pole['tresc'] = substr($pole['tresc'], 0, 150);
        echo
            "<tr>\n".
            "  <td>\n".
            "     <p>\n".
            "        <strong>$pole[tytul]</strong><br>\n".
            "        $pole[tresc] ...\n".
            "     </p>\n".
            "     <p align='right'><a href='index.php?ID=$pole[id]' style='color:#990000;font-weight:bold;font-size:14px'><img src='pics/news.gif' width='6' height='7' border='0'> czytaj wiêcej</a></p>\n".
            "</td>\n".
            "</tr>\n".
            "<tr>\n".
            "  <td>&nbsp;</td>\n".
            "</tr>\n".
            "<tr>\n".
            "  <td background='pics/tlo_kropa.gif'><img src='pics/spacer.gif' width='1' height='1'></td>\n".
            "</tr>\n".
            "<tr><td>&nbsp;</td></tr>";
    } //while
} // function                    
?>


W pliku index.php - wyświetlanie news-a:

Kod
<?php if ( isset($ID) ) {
                        $zapytanie = "SELECT * FROM $tabela_newsy WHERE id='$ID'";
                        $dzialaj =  mysql_query($zapytanie);
                        $pole =  mysql_fetch_array($dzialaj);
                        echo
                            "<tr>".
                            "<td colspan='5'><img src='pics/news_nag.gif' width='422' height='23'></td>".
                            "</tr>".
                            "<tr>".
                            "<td colspan='5' style='padding:10 20 0 20;'><p><strong>$pole[tytul]</strong></p><div style='font-size:11px'>". nl2br($pole[tresc]) ."</div></td>".
                            "</tr>".
                            "<tr><td colspan='5' height=35 align=right><a href=\"java script:history.back();\">... poprzednia strona</a> &nbsp;</td></tr>";
                    }
                    else {
                    ?>


Do tej pory nie miałem na serwerze pliku .htaccess. Wrzuciłem plik oczywiście z RewriteEngine On.
rocktech.pl
No i wszystko jasne.

  1. if ( isset($ID) ) ....


Powodem jest ta dyrektywa jeśli jest "on" to $GET['ID'] = $ID

Kod
register_globals = off


Deprecjonowana od wersji 5.3.0 i usunięta od 5.4.0.

Musisz przepisać ten kod z użyciem superglobalnych tablic $_GET $_POST ... np. tak:

  1. $ID = filter_Input(INPUT_GET, 'ID', FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
  2. if ( !empty($ID) ) {
  3. /**
  4.   * zwróć szczególną uwagę na walidację danych wprowadzanych przez użytkownika co jeśli $ID = "\' OR 1 = \'1" ?
  5.   */
  6. $zapytanie = "SELECT * FROM $tabela_newsy WHERE id='$ID'";
  7. }
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.