Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]dlaczego ten link nie dziala
Forum PHP.pl > Forum > Przedszkole
kokoszpl
Witajcie jestem tutaj nowy. Postanowilem zaczac przygode z programowaniem w PHP
Szukalem na forum rozwiazania mojego problemu znalazlem kila podobnych sorzystalem ze wszystkich ale nic mi ta nie dalo sad.gif

mam taki link:

<a href=\"index.php?page=registration&".SESID."\">rejestruj</a>\n";


Gdy klikne w ten link przegladarka laduje jakas strone ale wyswietla spowrotem strone główna.

Prosze powiedcie mi gdzie lezy problem i co jest nie tak.

Ccialbym jeszcze dodac ze po kliknieci w likn adres w pasku adresu przegladarki zmienia sie.
Oto link do strony w celu zobrazoeania : http://www.rdx.cba.pl
Burned
pokaż kod
kokoszpl
Kod
<table border=1 width=100%>
<tr><th align=center>
..:: System logowania ::..
</th></tr>
<tr><td align=left>



<?
if(!auth())
{
  include "login.frm";
  print "&raquo; <a href=\"index.php?page=registration&".SESID."\">Nowe konto</a>\n";

}
else
{
  print "&raquo; <a href=\"index.php?page=logout&".SESID."\">Wyloguj [" . $_SESSION["USER_LOGIN"] . "]</a>";
}
?>


</td></tr>
<tr><th align=center>
..:: Menu ::..
</th></tr>
<tr><td align=left>


&raquo; <a href="index.php?page=link1&<?=SESID?>">link 1</a><br>
&raquo; <a href="index.php?page=link2&<?=SESID?>">link 2</a><br>


</td></tr>
</table>


oto kod
Burned
Jak ma działać jak nie ma ani kawałka kodu, który odczytałby $_GET['page'] i podjął jakąś akcję?
bastard13
jeżeli przesyłasz zmienna SID to powinna być ona przesyłana jako pierwsza tzn.
  1. <a href=\"index.php?moja_sesja=".SESID."&page=registration\">

więcej na ten temat:
http://www.php.net/manual/pl/session.idpassing.php
A poza tym czy masz gdzieś odczytywanie $_GET'a?
Wrzuć cały kod.
kokoszpl
index.php

Kod
<?
  ob_start();

  include "session.php";
?>

<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<title>
  ..:: Logowanie na stronie www ::..
</title>
</head>

<body>

<table border=1 width=100%>

<!-- naglowek -->
<tr><td colspan=2>
  <h1>Moja strona www</h1>
</td></tr>
<!-- koniec -->


<!-- lewa strona -->
<tr><td width=25% height=450 valign=top>
  <?
    include "left.php";
  ?>
</td>
<!-- koniec -->


<!-- prawa strona -->
<td valign=top>
  <?
  if($page=="") $page="link1";
  if(!file_exists($page.".php"))
  {
     include "default.php";
  }
  else
  {
    include_once $page.".php";
  }

ob_start();

?>
</td></tr>
<!-- koniec -->

</table>


<!-- stopka -->
<center><small>Wykonał Mariusz Kacki, e-mail: <a href="mailto:robokator@wp.pl">robokator@wp.pl</a></small></center>
<!-- koniec -->


</body>
</html>


left.php
Kod
<table border=1 width=100%>
<tr><th align=center>
..:: System logowania ::..
</th></tr>
<tr><td align=left>



<?
if(!auth())
{
  include "login.frm";
  print "&raquo; <a href=\"index.php?page=registration&".SESID."\">Nowe konto</a>\n";

}
else
{
  print "&raquo; <a href=\"index.php?page=logout&".SESID."\">Wyloguj [" . $_SESSION["USER_LOGIN"] . "]</a>";
}
?>


</td></tr>
<tr><th align=center>
..:: Menu ::..
</th></tr>
<tr><td align=left>


&raquo; <a href="index.php?page=link1&<?=SESID?>">link 1</a><br>
&raquo; <a href="index.php?page=link2&<?=SESID?>">link 2</a><br>


</td></tr>
</table>


login.php
Kod
<table border=1 width=100%>
<tr><th align=center>
..:: System logowania ::..
</th></tr>
</table>


<?
if(!auth())
{
  print "<p class=error align=center>Złe hasło lub login.</p>";
}
else
{
  print "<p class=ok align=center>Witaj {$_SESSION["USER_LOGIN"]}, udało się Tobie poprawnie zalogować.</p>";
}
?>


registration.php
Kod
<table border=1 width=100%>
<tr><th align=center>
..:: Rejestracja ::..
</th></tr>
</table>


<?
$result = False;
if (isset($_POST['submit']))

{
  if(!$login || !$passwd)
  {
    echo "<p class=error align=center>Wszystkie pola są obowiązkowe.</p>\n";
  }
  elseif(!eregi("^[_[:alnum:]-]{1,10}$",$login))
  {
    echo "<p class=error align=center>Nieprawidłowy login.</p>\n";
  }
  elseif(!eregi("^[_[:alnum:]-]{3,10}$",$passwd))
  {
    echo "<p class=error align=center>Niepoprawne hasło.</p>\n";
  }
  elseif(user_exists($login))
  {
    echo "<p class=error align=center>Login \"$login\" jest już zajęty.</p>\n";
  }
  else
  {
    $result = True;
    // formatuje wprowadzone dane
    $login = strtolower($login);
    add_user($login, md5($passwd));

    // informacjie o nowym koncie
    echo "<p class=ok align=center>Konto zostało utworzone.</p>\n";      
    echo "Jeśli zapomnisz hasło to koniec :-), wszystkie hasła są kodowane. ";
    echo "Możesz teraz się zalogować i przetestować konto.";  
  }
}

if(!$result)
{
  // usówa tagi html z formularza
  $login  = htmlentities(substr($_POST["login"], 0, 255));
  include "registration.frm";
}
?>


sesion.php
Kod
<?
# start sesji
session_start();

# biblioteka z funkcjiami
include "func.php";

# logowanie, wylogowanie itp
switch ($page)
{
  case "login"  :
                  $login  = htmlentities(substr($_POST["login"], 0, 255));
                  $passwd = htmlentities(substr($_POST["passwd"], 0, 255));
                  login($login, md5($passwd));
                  break;
  
  case "logout" : logout();
                  break;
}
?>



gdzie mam wstawic $_GET['page']
Burned
W indeksie zamiast $page.
Dlaczego dzieje się tak a nie inaczej możesz przeczytać np tu: http://www.egrafik.pl/kurs-php/transition....ter_globals.php
kokoszpl
Bylbym wdzieczny jakbys dal wskazówka zaniast którego $page mam wstawic to GET
Rozumiem ze w pliku index.php
Burned
zamiast każdego $page, albo ewentualnie gdzieś na początku daj
  1. $page = $_GET['page'];
bastard13
Oprócz tego to nie wiem czy jednak w index.php nie powinieneś wrzucić start_session, bo z tego co pamietam, to ta funkcja powinna być wywołana przed wszystkim, w tym przed includami.
A kod, o którym pisze Burned wklej gdzieś w index.php przed include ze stronami to nie będziesz musiał wklejać go na każdej stronie.
darko
Pytanie, co to jest: SESID ?
kokoszpl
Dziekuje panowie juz moge przelaczac stronki.

Pojawil sie natomiast problem z logowaniem i rejestracja.

Rejestracja przebiegac powinna tak: Podajemy dane uzytkownika, system powinien je zapisac do pliku o nazwie "user.dat", ale tego nie robi - plik sie nie zmienia.


kod w pliku registration.php

Kod
<table border=1 width=100%>
<tr><th align=center>
..:: Rejestracja ::..
</th></tr>
</table>


<?
$result = False;
if (isset($_POST["submit"]))

{
  if(!$login || !$passwd)
  {
    echo "<p class=error align=center>Wszystkie pola są obowiązkowe.</p>\n";
    echo "1 \n";
  }
  elseif(!eregi("^[_[:alnum:]-]{1,10}$",$login))
  {
    echo "<p class=error align=center>Nieprawidłowy login.</p>\n";
echo "2 \n";
  }
  elseif(!eregi("^[_[:alnum:]-]{3,10}$",$passwd))
  {
    echo "<p class=error align=center>Niepoprawne hasło.</p>\n";
echo "3 \n";
  }
  elseif(user_exists($login))
  {
    echo "<p class=error align=center>Login \"$login\" jest już zajęty.</p>\n";
echo "4 \n";
  }
  else
  {
    $result = True;
    // formatuje wprowadzone dane
    $login = strtolower($login);
    add_user($login, md5($passwd));

    // informacjie o nowym koncie
    echo "<p class=ok align=center>Konto zostało utworzone.</p>\n";      
    echo "Jeśli zapomnisz hasło to koniec :-), wszystkie hasła są kodowane. ";
    echo "Możesz teraz się zalogować i przetestować konto.";  
  }
}

if(!$result)
{
  // usówa tagi html z formularza
  $login  = htmlentities(substr($_POST["login"], 0, 255));
  include "registration.frm";
}
?>


kod w formularzu registration.frm

Kod
<FORM action="index.php?p=registration&<?=SID?>" method="post">
<INPUT type="hidden" name="page" value="registration">
<INPUT type="hidden" name="<?=SESSION_NAME()?>" value="<?=SESSION_ID()?>">


<TABLE border=0 cellspacing=0 align=center>


<tr><td align=right>
<b>login</b>
</td><td>
<INPUT type="text" name="login" value="<?=$login?>">
</td></tr>


<tr><td align=right>
<b>hasło</b>
</td><td>
<INPUT type="password" name="passwd" value="<?=$passwd?>">
</td></tr>


<tr><td colspan=3 align=center>
<INPUT type="submit" name="submit" value="Rejestruj">
</td></tr>

</TABLE>
</FORM>

<!-- legenda -->
<b>Legenda:</b><p>
<b>Login</b> - może zawierać znaki alfanumeryczne, znaki podkreślenia i myślniki.
Wielkość liter nie ma znaczenia, a liczba znaków zawiera się w przedziale od 1 do 15.<br><br>

<b>Hasło</b> - pamiętaj, małe litery i duże litery to zupełnie różne litery :-),
liczba znaków od 3 do 15, reszta jak wyżej.<br><br>



Pomózcie prosze mi zrozumiec jak to ma dzialac.
Jezeli w tych kodach jest blad to prosze o wskazanie i eytlumaczenie na czym on polega.


Dorzuce jeszcze plik login.php

Kod
<table border=1 width=100%>
<tr><th align=center>
..:: System logowania ::..
</th></tr>
</table>


<?
if(!auth())
{
  print "<p class=error align=center>Złe hasło lub login.</p>";
}
else
{
  print "<p class=ok align=center>Witaj {$_SESSION["USER_LOGIN"]}, udało się Tobie poprawnie zalogować.</p>";
}
?>


i plik login.frm
Kod
<form action="index.php" method="post">
<input type="hidden" name="page" value="login">
<input type="hidden" name="<?=SESSION_NAME()?>" value="<?=SESSION_ID()?>">

Login<br>
<input type="text" name="login" value="<?=$_POST["login"]?>">
<br>

Hasło<br>
<input type="password" name="passwd" value="">
<input type="submit" name="submit" value="Loguj">

</form>
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.