Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zastapienie body
Forum PHP.pl > Forum > PHP
zizizi
Mam taki kod:

Kod
<?
$body = $_GET["body"];



if ($body=="")
       {
       include("includes/news.php");
       }

else {

if (is_file("includes/$body.php"))
        {
          include("includes/$body.php");
        }  
  
else
        {
            include("includes/error.php");
        }    
        }  

                            
?>


no i wyswietla elegancko a daloby sie to zastapic zebym zamiast linku:
przykladstrona.pl/?body=news
przykladstrona.pl/?body=inny
uzywal poprostu
przykladstrona.pl/news
przykladstrona.pl/inny


znacie inny sposob niz body?tongue.gif
!*!
Poszukaj pod frazą "przyjazne linki/nice url".
zizizi
dzięki ale to chyba cięzko bedzie zrobic tongue.gif da sie to jakos prosto napisac w taki sposob jak ja mam? w stylu ze jak mam w includes plik php o nazwie zal
to jak wpisze
nazwastrony.pl/zal to wyswietli ten zal a jak wpisze nazwastrony.pl to normalnie index ;p

!*!
http://phpguru.pl/czytaj?id=5 Tak powinieneś to robić, a nie po nazwie z get, a przyjazne link są proste https://www.google.pl/#hl=pl&output=sea...przyjazne+linki
zizizi
czyli moge zrobic pierw tym pierwszym sposobem a potem w htaccess sobie pozmieniac? ze ten link = temu drugiemu?snitch.gif
!*!
Tak samo, przez link ze zmienną GET. Jak chcesz przyjazne linki do tego, tworzysz w pliku .htaccess regułę.
Cytat
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1


a link http://domena.com/info
zizizi
mam taki link:
strona.pl/index.php?page=text

dalem te .htaccess
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=text

to nie wyswietla strony:
strona.pl/text
!*!
A gdzie masz page w kodzie?
zizizi
w kodzie mam tak

  1. <?php
  2.  
  3. if(isset($_GET['page'])) // jeśli zmienna istnieje
  4. {
  5. $page = trim($_GET['page']); // usuwamy białe znaki z końca i poczatku stringu
  6.  
  7. switch($page)
  8. {
  9. case 'news': // nazwa strony jaka ma zostać wczytana, jeśli zgadza się ze zmmienną GET
  10. include 'includes/news.php'; // wczytanie pliku
  11. break;
  12. case 'text':
  13. include 'includes/text.php';
  14. break;
  15. default: // deklaracja domyśla
  16. include 'includes/error.php'; // ten plik zostanie wczytany, gdy zmienna $page nie będzie pasować do powyższych deklaracji
  17. break;
  18. }
  19. }
  20. else
  21. {
  22. include 'includes/news.php'; // w przypadku gdy GET nie istnieje, a chcemy wyświetlić stronę domyślną
  23. }
  24.  
  25. ?>
!*!
A przeczytałeś jak robi się takie linki? Nie wystarczy wkleić samej reguły. http://lmgtfy.com/?q=przyjazne+linki
zizizi
dobra dzięki ale i tak cięzko jest tam sie polapac w tym poradniku zwlaszcza ze podstawiam to pod swoja strone ;p

a w jaki sposob wykonac akcje ?
mam taki link tongue.gif
index.php?page=rejestracja

a akcja wyglada tak:
rejestracja.php?akcja=wykonaj

wiec jakiego linku mam uzyc? proboje:

index.php?page=rejestracja.php?akcja=wykonaj

i pisze ze niema takiej strony ;/

!*!
Pytasz o podstawy.
Cytat
index.php?page=rejestracja.php&akcja=wykonaj
zizizi
404
Nie znaleziono strony szukanej strony!

taki komunikat tongue.gif
!*!
A masz w switch coś takiego jak "rejestracja.php" ? Zakładam że te .php jest zbędne.
zizizi
tak pomoglo, ale nie zakladajac nowego tematu spytam jeszcze o jedno

jak mam formularz tylko dla zalogowanych taki:

  1. <?php include("config.php");
  2. $nick = $_SESSION['nick'];
  3. $haslo = $_SESSION['haslo'];
  4. if ((empty($nick)) AND (empty($haslo))) {
  5. echo '<br>Nie byłeś zalogowany albo zostałeś wylogowany<br><a href="index.php">Strona Główna</a><br>';
  6. }
  7. $user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));
  8. if (empty($user[id]) OR !isset($user[id])) {
  9. echo '<br>Nieprawidłowe logowanie.<br>';
  10. }
  11. // tresc dla zalogowanego uzytkownika
  12. echo 'Witaj '.$user[nick].' zostałeś/aś pomyślnie zalogowany/a, tutaj umieść ukryta strone tylko dla zalogowanych';
  13. echo '<br><a href="index.php?page=wyloguj">Wyloguj mnie</a>';
  14. ?>


no i on dziala ale chce zrobic zeby taka cala tabelka:

  1. <td class="top2" valign="top">
  2. <img src="images/panel.jpg" alt="" align="center"><br><BR>
  3. <form method="POST" action="index.php?page=login">
  4. <table cellpadding="2" width="90%">
  5. <tr><td width="50"></td><td><img src="images/login.jpg" alt=""></td><td><input type="text" name="login" maxlength="32"></td></tr>
  6. <tr><td></td><td><img src="images/pass.jpg" alt=""></td><td><input type="password" name="haslo" maxlength="32"></td></tr>
  7. <tr><td></td><td colspan="3"><div align="right"><input type="submit" value="Zaloguj"></div></td></tr>
  8. </table>
  9. </form>
  10. </td>


wyswietlala sie tylko dla zalogowanych;p jak to zrobic? bo wyskakuje blad:

  1. Parse error: syntax error, unexpected '<' in /home/public_html/index.php on line 28


gdy robie tak:
  1. <?php include("config.php");
  2. $nick = $_SESSION['nick'];
  3. $haslo = $_SESSION['haslo'];
  4. if ((empty($nick)) AND (empty($haslo))) {
  5. <td class="top2" valign="top">
  6. <img src="images/panel.jpg" alt="" align="center"><br><BR>
  7. <form method="POST" action="index.php?page=login">
  8. <table cellpadding="2" width="90%">
  9. <tr><td width="50"></td><td><img src="images/login.jpg" alt=""></td><td><input type="text" name="login" maxlength="32"></td></tr>
  10. <tr><td></td><td><img src="images/pass.jpg" alt=""></td><td><input type="password" name="haslo" maxlength="32"></td></tr>
  11. <tr><td></td><td colspan="3"><div align="right"><input type="submit" value="Zaloguj"></div></td></tr>
  12. </table>
  13. </form>
  14. </td>
  15. }
  16. $user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));
  17. if (empty($user[id]) OR !isset($user[id])) {
  18. <td class="top2" valign="top">
  19. <img src="images/panel.jpg" alt="" align="center"><br><BR>
  20. <form method="POST" action="index.php?page=login">
  21. <table cellpadding="2" width="90%">
  22. <tr><td width="50"></td><td><img src="images/login.jpg" alt=""></td><td><input type="text" name="login" maxlength="32"></td></tr>
  23. <tr><td></td><td><img src="images/pass.jpg" alt=""></td><td><input type="password" name="haslo" maxlength="32"></td></tr>
  24. <tr><td></td><td colspan="3"><div align="right"><input type="submit" value="Zaloguj"></div></td></tr>
  25. </table>
  26. </form>
  27. </td>
  28. }
  29. // tresc dla zalogowanego uzytkownika
  30. echo 'Witaj '.$user[nick].' zostałeś/aś pomyślnie zalogowany/a, tutaj umieść ukryta strone tylko dla zalogowanych';
  31. echo '<br><a href="index.php?page=wyloguj">Wyloguj mnie</a>';
  32. ?>

!*!
Przeczytaj jakiś kurs PHP, bo nie znasz podstaw np. http://phpkurs.pl/
W PHP nie można na luźno wkleić tagów HTML, trzeba do tego użyć echo, lub odpowiednio zamykać składnię.
A jak chcesz sprawdzić czy jest się zalogowanym, sprawdzaj sesje i na jej podstawie coś wyświetl.
zizizi
ja rozumiem, ale chce zeby ta ramka byla tylko dla zalogowanych bo ten skrypt dziala co wyswietla strone tylko dla zalogowanych, ale chce zeby w miejscu ramki byla edycja profilu itp czyli inne dane ;d
!*!
To już Ci napisałem, sprawdź czy jest się zalogowanym np. przez isset na tej podstawie zrób if i wyświetl to co chcesz.
zizizi
Okey. wszystko działa. Ale tematu nie zamykajcie, tworze pierwszą swoją stronę także napewno będzie potrzebna pomoc fachowców. tongue.gif

Ehh raptem minela godzina a znowu mam problem.

Jak w bazie danych zrobic zeby mozna bylo duplikowac rekord?smile.gif
bo mam blad tongue.gif
Duplicate entry '1' for key 'PRIMARY'
nospor
Cytat
Jak w bazie danych zrobic zeby mozna bylo duplikowac rekord?
bo mam blad
Duplicate entry '1' for key 'PRIMARY'
Chyba wyraźnie masz napisane, że próbujesz zduplikować klucz główny.... Klucz główny jak sama nazwa wskazuje nie ma prawa mieć duplikatów....Albo sie zastanów co robisz i czy to ma sens, albo usun ten klucz główny skoro ci to nie przeszkadza...
zizizi
tzn ja zrobilem tak
w tabeli uzytkownicy mam kolumne o nazwie id (autonumerowanie) czyli identyfikator uzytkownika nowo zalozonego

w tabeli test mam kolumne o nazwie id_uzytkownika

chce polaczyc id (tabela uzytkownicy) z id_uzytkownika (tabela test)
chcialem zrobic relacje, ale ze nigdy tego nie robilem to wiecie tongue.gif
wiec wszedlem w tabele test/struktura/widok relacyjny i przy kolumnie id_uzytkownika wybralem id_uzytkownicy i wcisnelem zapisz, ale nie da sie duplikowac rekordow w tabeli test... chce zeby te rekordy z tabeli test odpowiadaly uzytkownikom z tabeli uzytkownicy, tak ze np kazdy w tabeli test mogl zlozyc kilka zamowien... i byly one przypisane do konkretnego uzytkownika z tabeli uzytkownicy haha.gif

refresh tongue.gif
nospor
Po pierwsze: przestan nadużywać emotikon, a szczególnie jęzora - to strasznie niekulturalne. W czasie normalnej rozmowy, no wiesz - twarzą w twarz, też pokazujesz swemu rozmówcy język??

Po drugie:nie ogarniam twego problemu. Kto lub co ci broni zapisać dane w tabeli test?
zizizi
ehh nawet nie czytasz co pisze ( ;p -- specjalnie dla ciebie)

poprostu sie pytam gdzie moge zaznaczyc opcje "duplikowanie rekordow: tak" czy cos w tym stylu, zeby moglo byc kilka rekordow o takim id.
nospor
Cytat
ehh nawet nie czytasz co pisze
Czytam ino nie rozumiem, rozumiesz?

Cytat
poprostu sie pytam gdzie moge zaznaczyc opcje "duplikowanie rekordow: tak" czy cos w tym stylu, zeby moglo byc kilka rekordow o takim id.
Nie ma takiej opcji. Już ci wyjaśniałem. Skoro ci baza pluje błędem, że duplikujesz taki a taki klucz/indeks a Tobie to zwisa, to usuń ten klucz/indeks a będziesz sobie mógł duplikować do woli.
zizizi
ok juz doszedlem, usunelem i na nowo wstawilem kolumne i juz dziala smile.gif

ale mam natomiat inny problem:
  1. $result = mysql_query("SELECT data,ilosc,realizacja,nr_zamowienia FROM test WHERE id_uzytkownika = '$id'");


no i wyswietla mi rekord ladnie wszystko pieknie, ale wyswietla mi tylko jeden a jest kilka rekordow o takim id_uzytkownika ;d

druga sprawa:

  1. if (!empty($user[id]) OR isset($user[id]))
  2. {
  3. if ($user[access] >= 1){
  4. <li > <a href="index.php?page=admin">Panel Admina</a> </li>
  5. ';
  6. }
  7. }


mozna to zapisac jakos w jednym warunku? bo mi nie wychodzi ;p
nospor
Cytat
no i wyswietla mi rekord ladnie wszystko pieknie, ale wyswietla mi tylko jeden a jest kilka rekordow o takim id_uzytkownika ;d
No a używasz pętli do wyświetlania?
zizizi
no wlasnie nie wiem jak, robie tak:

  1. $id = ''.$user[id].'';
  2. $result = mysql_query("SELECT data,ilosc,realizacja,nr_zamowienia FROM test WHERE id_uzytkownika = '$id'");
  3. if (!$result) {
  4. echo 'Could not run query: ' . mysql_error();
  5. }
  6. $row = mysql_fetch_row($result);
  7.  
  8. echo $row[0];
  9. echo $row[1];
  10. echo $row[2];
  11. echo $row[3];


nospor
Manual
http://www.php.net/manual/en/function.mysql-fetch-array.php
Masz tam pętle do wyświetlania wszystkich wyników zapytania a nie tylko jednego
zizizi
dokladniej? (jeśli mogę poprosić oczywiscie)
!*!
Cytat(zizizi @ 9.04.2013, 15:46:00 ) *
dokladniej? (jeśli mogę poprosić oczywiscie)


Przecież masz tam podany przykład. Pokaż swój kod jak to robisz.
zizizi
No i teraz elegancko pyka tym

  1. <?php
  2. mysql_connect("localhost", "mysql_user", "mysql_password") or
  3. die("Could not connect: " . mysql_error());
  4.  
  5. $result = mysql_query("SELECT id, name FROM mytable");
  6.  
  7. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  8. printf("ID: %s Name: %s", $row["id"], $row["name"]);
  9. }
  10.  
  11. ?>


No okey, narazie to wszystko, ale tak jak prosilem, nie zamykajcie tego tematu, bo fachowcy z tego forum będą nadal mi potrzebni zwłaszcza że to moja pierwsza taka troche bardziej rowinieta strona.
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.