Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z działaniem skryptu
Forum PHP.pl > Forum > Przedszkole
Gość_raku18
witam ponownie :-) mam problem następujący ,otórz napisałem skrypt ,niestety odsyłacze nie działają proszę o pomoc .

Kod:
Kod
[php]
<tr>
<td width="15%"><? include("include/menu_lewe.inc");?></td>
<td width="70%">
<?
    if(!isset($go)){
     include("teksty/news.txt");
  }
    else if($go==1){
    include("teksty/1.txt");
  } else if($go==2){
    include("teksty/2.txt");
  } else if($go==3){
    include("teksty/3.txt");
  } else if($go==4){
    include("teksty/4.txt");
  } else if($go==5){
    include("teksty/5.txt");
  }  else
    echo "Taka strona nie istnieje :)";    
?>
</td>
<td width="15%"><? include("include/menu_prawe.inc");?></td>
</tr>
[/php]

jest to plik o nazwie index.php


do tego pliku jest jak widać włączone menu o kodzie :
Kod
[php]<a href="index.php">strona główna</a><br>
<a href="index.php?go=1">podstrona 1</a><br>
<a href="index.php?go=2">podstrona 2</a><br>
<a href="index.php?go=3">podstrona 3</a><br>
<a href="index.php?go=4">podstrona 4</a><br>
<a href="index.php?go=5">podstrona 5</a>
[/php]

Dlaczego nie działają linki proszę o pomoc _:)
Kuziu
Może dlatego

  1. <?php
  2.  
  3. $_GET['go'];
  4.  
  5. ?>


a tak btw. lepiej nie używać plików *.inc ... gdyż można łątwo je podejrzeć ... rób lepiej wszystkie pliki *.php
Coyote
kuziu zawsze mnie wyprzedzasZ:P

---
post nic nie wnosi do dyskusji dry.gif to nie jest forum do nabijania postów.
aleksander
Gość_raku18
Jak już mówiłem jestem bardzo początkujący więc nie kumam za bardzo o co ci chodzi gdy piszesz :

  1. <?php
  2.  
  3. $_POST['go'];
  4.  
  5. ?>


Gdyby ktoś mógłby mi to jasno i w pełni wyjaśnić byłbym ogromnie wdzięczny pozdrawiam Michał.
tiraeth
poczytaj o REGISTER_GLOBALS w manualu.... serwer ma ustawione zmienne globalne na off więc musisz używać $_POST i $_GET..... ten pierwszy przy formularzach a drugi przy linkach np. index.php?go=1 => $_GET['go'] = 1
Kuziu
Dane wysyłane z formularza do skryptu php odbierane są w tablicy super globalnej $_GET

Aby sprawdzić zawartośc zmiennej 'go' wysłanej z formularza nalezy uzyć
  1. <?php
  2. $_GET['go'];
  3. ?>

W Twoim wypadku
  1. <?php
  2.  
  3. if(!isset($_GET['go'])){
  4.  
  5. ?>


I w reszcie kodu analogicznie ...
Gość_raku18
Naprawde jestem wam bardzo wdzieczny tylko z tym problem ze robie wszystko wg waszych wskazówek i dalej przy kliknieciu w ktory kolwiek link laduja mi sie newsy czyli to co pierwsze includuje :-( Pomorzcie prosze .
Gość_raku18
Naprawde jestem wam bardzo wdzieczny tylko z tym problem ze robie wszystko wg waszych wskazówek i dalej przy kliknieciu w ktory kolwiek link laduja mi sie newsy czyli to co pierwsze includuje :-( Pomorzcie prosze .
Yarecki
Zamiast $_POST['go'] powinno być $_GET['go']

Możesz też napisać to tak:
  1. <?php
  2. $site = ( !empty( $_GET['go'] ) : $_GET['go'] ? 0;
  3.  
  4. switch( $go ) {
  5.  case 0:
  6.  include( 'teksty/news.txt' );
  7.  break;
  8. case 1:
  9. include(...);
  10. break;
  11. default:
  12. break;
  13. }
  14.  
  15. ?>

Dla mnie konstrukcja switch case break jest bardziej czytelna w takim przypadku, niż if elseif.
Gość_raku18
Niestety nie pomogł widocznie jestem za tępy na to więc gdybyście mogli mi to jak łopatą do głowy to normalnie byłbym w 7 niebie :-)
Kuziu
  1. <tr>
  2. <td width=\"15%\"><? include(&#092;"include/menu_lewe.inc\");?></td>
  3. <td width=\"70%\">
  4. <? 
  5. if(!isset($_GET['go'])){
  6. switch($_GET['go']){
  7.  case 1: include(&#092;"teksty/1.txt\"); break;
  8.  case 2: include(&#092;"teksty/2.txt\"); break;
  9.  case 3: include(&#092;"teksty/3.txt\"); break;
  10.  case 4: include(&#092;"teksty/4.txt\"); break;
  11.  case 5: include(&#092;"teksty/5.txt\"); break;
  12.  default: include(&#092;"teksty/news.txt\");
  13. }
  14. }</td>
  15. <td width=&#092;"15%\"><? include(\"include/menu_prawe.inc\");?></td>
  16. </tr>


BTW. Sorki za to $_POST ... z przywyczajenia to napisałem tongue.gif

$_POST - zmienne z formularze
$_GET - zmienne z adresu
Endrjub
Moze tak:

  1. <table>
  2. <tr>
  3. <td width=\"15%\">
  4. <a href=\"index.php?go=1\">strona główna</a><br>
  5. <a href=\"index.php?go=2\">podstrona 1</a><br>
  6. <a href=\"index.php?go=3\">podstrona 2</a><br>
  7. <a href=\"index.php?go=4\">podstrona 3</a><br>
  8. <a href=\"index.php?go=5\">podstrona 4</a>
  9. </td>
  10.  
  11. <td width=\"70%\">
  12.  
  13. <?
  14.  if(isset($_GET['$go'])){
  15. switch(&#092;"$_GET['$go']\"){
  16. case('1'):
  17.  include &#092;"podstrona1.php\";
  18.  break;
  19. case('2'):
  20.  include &#092;"podstrona2.php\";
  21.  break;
  22. case('3'):
  23.  include &#092;"podstrona3.php\";
  24.  break;
  25. case('4'):
  26.  include &#092;"podstrona4.php\";
  27.  break;
  28. case('5'):
  29.  include &#092;"podstrona5.php\";
  30.  break;
  31. default: include(&#092;"news.php\");
  32. }
  33. }
  34. ?>
  35. </td>
  36. <td width=\"15%\"><? include(&#092;"include/menu_prawe.php\");?></td>
  37. </tr></table>


To powinno działać na 100%, u mnie działa.
powodzenia smile.gif

----------------------------------------------------------
Widze,że Kuziu mnie uprzedził wiec zdublowałem odpowiedz.
Ale cóz... od przybytku głowa nie boli smile.gif
Kuziu
Endrjub mój kod będzie działał równie dobrze a nawet lepiej ... bo u Ciebie nie ma default ... co przy innym adresie wyświetli pustą strone.

Dodatkowo nie wiem po co ten nawiasy przy case

oraz po co cudzysłowia podczas podawania argumentów do funkcji
Endrjub
Kuziu, zgadzam się, że Twój przykład jest troszkę lepszy, ale MÓJ TEŻ DZIAŁA, a o 'default' zapomniałem.
Przyznaje racje.
Pozdrawiam smile.gif
Gość_raku18
Witam hahahahahahhahah <lol2> Jesteście WIELCY !
tylko widzicie jest problem jeden malutki jeszcze otórz wyswietla mi sie blad w przegladarce :
  1. <tr>
  2. <td width=\"15%\"><? include(&#092;"include/menu_lewe.inc\");?></td>
  3. <td width=\"70%\">
  4. <? 
  5. if(!isset($_GET['go'])){
  6. switch($_GET['go']){
  7. case 1: include(&#092;"teksty/1.txt\"); break;
  8. case 2: include(&#092;"teksty/2.txt\"); break;
  9. case 3: include(&#092;"teksty/3.txt\"); break;
  10. case 4: include(&#092;"teksty/4.txt\"); break;
  11. case 5: include(&#092;"teksty/5.txt\"); break;
  12. default: include(&#092;"teksty/news.txt\");
  13. }
  14. }</td>
  15. <td width=&#092;"15%\"><? include(\"include/menu_prawe.inc\");?></td>
  16. </tr>



bład :
Kod
Notice: Undefined index: go in c:\program files\easyphp1-7\home\w_php\index.php on line 14


Gdybyści jeszcze tylko w tym mi pomogli co questionmark.gif :-) Dzięki
Gość_raku18
Aha w przypadku błędu to jest on w linii 6 czyli :
  1. <?php
  2. switch($_GET['go']){
  3.  
  4. ?>
Kuziu
Usuń wykrzyknik w 5 linii.

Tak w ogóle to nie wiem jak to zadziałało z tym wykrzyknikiem :|
Gość_RAku
Normalnie wszystko śmiga jak ta lala :-) Jesteście najlepsi mam nadzieje ze kiedyś też taki bede <lol> ( nie żebym się podlizywał tylko się bardzo cieszę ) Pozdrawiam Michał
Ociu
Aby ułatwić życie, przed if(!isset($go)){
daj czarodziejskie:
  1. <?php
  2. $go = $_GET['go'];
  3. ?>

pozdrawiam
Kuziu
Ta i wywali mu błąd index'u

jak już to chyba tak

  1. <?php
  2.  
  3. $go = $_GET['go'] ? $_GET['go'] : '';
  4.  
  5. ?>


ale ostatnio jest moda na nie przepisywanie zmiennych z tablic superglobalnych do zwykłych zmiennych więc tego unikamy.
Ociu
Mnie raczej chodziło, aby nie zmieniać za dużo kodu.
Gość_raku18
Ahh moi zbawiciele mam jeszcze jedna prośbe do was możeci mi powiedziec jak zrobic zeby jeden z plikow includowal mi sie automatycznie po zaladowaniu strony i dopiero potem korzystac z odsylaczy questionmark.gif HOW TO questionmark.gif :-)
dr_bonzo
Rusz troche glowa: includowales pliki po spelnieniu jakiegos tam warunku -- w zaleznosci od wartosci $_GET[ 'go' ] -- czyli zeby plik sie zawsze includowac to dajesz same include( ... ) bez zadnych warunkow.
Gość_raku18
Ale mi chodzi ni o samo includowanie tylko o taka funkcje ktora includuje automatycznie plik i potem gdy sie zmieni wartosc go to tekst includowany na poczatku zniknie i pojawi sie odpowiedni do wartosci go . Zrobilem juz samo include ale wtedy dwa teksty nakladaja mi sie na siebie :-(
dla przypomnienia kod :
  1. <body>
  2. <? include(&#092;"index2.php\");?>
  3.  
  4. <?php
  5.  include(&#092;"teksty/6.txt\"); 
  6. if(isset($_GET['wybor'])){
  7.  
  8. switch($_GET['wybor']){
  9. case 1: include(&#092;"teksty/1.txt\"); break;
  10. case 2: include(&#092;"teksty/2.txt\"); break;
  11. case 3: include(&#092;"teksty/3.txt\"); break;
  12. case 4: include(&#092;"teksty/4.txt\"); break;
  13. case 5: include(&#092;"teksty/5.txt\"); break;
  14. default: include(&#092;"teksty/6.txt\");
  15. }
  16. }
  17. ?>
  18. </body>
Gość_raku18
Przepraszam próbuje i próbuje i mi nie wychodzi czy pomożecie mi w powyrzszej kwetii??
Coyote
  1. <body>
  2. <? include(&#092;"index2.php\");?>
  3.  
  4. <?php
  5. include(&#092;"teksty/6.txt\"); 
  6. if(isset($_GET['wybor'])){
  7.  
  8. switch($_GET['wybor']){
  9. case 1: include(&#092;"teksty/1.txt\"); break;
  10. case 2: include(&#092;"teksty/2.txt\"); break;
  11. case 3: include(&#092;"teksty/3.txt\"); break;
  12. case 4: include(&#092;"teksty/4.txt\"); break;
  13. case 5: include(&#092;"teksty/5.txt\"); break;
  14. default: include(&#092;"teksty/6.txt\");
  15. }
  16. }else{
  17. include(&#092;"TwojPlik\");
  18. }
  19. ?>
  20. </body>
raku_18
Bardzo ale to bardzo dziękuje ! :-)
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.