Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] przeniesienie na inną stronę
Forum PHP.pl > Forum > Przedszkole
em-ba
Witam, chciałbym aby po prawidłowym zalogowaniu przeniosło mnie na strona1.php. Wyczytałem biggrin.gif , że powinienem użyć tego:
  1. <?php
  2. header('location: strona1.php');
  3. ?>


a więc tak robiłem.. problem jest z tym, że zwraca mi parsse error: Parse error: syntax error, unexpected T_ELSE
Pomyslalem, że wstawiam to w nieodpowiednim miejscu, więc probowałem zamieścić ten kod gdzie indziej ale za każdym razem jest tak samo

Będę wdzięczny za pomoc..

  1. <?php
  2. $polaczenie = @mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5. if($_SESSION['zalogowany'] == 0)
  6. {
  7. echo '<form id="LOGOWANIE" method="post" action="index.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  8. <div>
  9. Login:<br />
  10. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  11. Hasło:<br />
  12. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  13. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  14. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  15. </div>
  16. </form>';
  17.  
  18. if (isset($_POST['login']) && isset($_POST['haslo']))
  19. {
  20.  $login = $_POST['login'];
  21.  $haslo = $_POST['haslo'];
  22.  $haslo= md5($haslo);
  23.  
  24.  $sql = "SELECT id FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  25.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  26.  
  27.  if(mysql_num_rows($result) == 1) //tutaj wstawiam - parse error
  28.  {
  29. echo "zostałeś zalogowany jako: $login";
  30.  $_SESSION['zalogowany'] = 1;
  31.  $_SESSION['czas'] = time();
  32.  return true; //tu również nie działa - nie przenosi
  33.  } else {  
  34. echo "Twoje dane nie zgadzają się!";
  35.  }
  36. }
  37. } else {
  38.  echo "dane po zalogowaniu";
  39. }
  40.  
  41. $a = 15;
  42. if ($_SESSION['zalogowany'] == 1)
  43. {
  44. if (time() - $_SESSION['czas'] > $a)
  45. {
  46. $_SESSION['zalogowany'] = 0;
  47. echo "Sesja zakończona. Nieczynność dłuższa niż $a <br /><a href='index.php'>Odśwież</a>";
  48. }
  49. }
  50. ?>
Grzyw
Na pewno wkleiłeś cały skrypt? W edytorze wygląda czysto.
Błąd, który Ci wyskoczył, jest błędem składki. Gdzieś musisz mieć literówkę wewnątrz kodu warunku IF
adameq
Policz dobrze wszystkie nawiasy { } i zakonczenia ;
em-ba
tak, to jest cały kod.. bez meta.. ale to chyba jest nieistotne..

jak wklejam tu: //to nie przenosi
  1. <?php
  2. {
  3. echo "zostałeś zalogowany jako: $login";
  4.  $_SESSION['zalogowany'] = 1;
  5.  $_SESSION['czas'] = time();
  6.  return true;
  7.  header('location: strona1.php');
  8.  }
  9. ?>



a jak tu: //to wyrzuca Parse error: syntax error, unexpected T_ELSE odnośnie linijki z else.. (chyba nie powinienem wstawiać tak bezpośrednio po funkcji if..)
  1. <?php
  2. if(mysql_num_rows($result) == 1)
  3.  header('location: strona1.php');
  4.  {
  5. echo "zostałeś zalogowany jako: $login";
  6.  $_SESSION['zalogowany'] = 1;
  7.  $_SESSION['czas'] = time();
  8.  return true;
  9.  } else {
  10. echo "Twoje dane nie zgadzają się!";
  11.  }
  12. ?>
phpion
Cytat(em-ba @ 25.01.2008, 16:43:15 ) *
jak wklejam tu: //to nie przenosi
  1. <?php
  2. {
  3. echo "zostałeś zalogowany jako: $login";
  4.  $_SESSION['zalogowany'] = 1;
  5.  $_SESSION['czas'] = time();
  6.  return true;
  7.  header('location: strona1.php');
  8.  }
  9. ?>

Nie przenosi bo wcześniej używasz instrukcji return, która zwraca wartość i kończy działanie funkcji. Przenieś header przed linijkę "return true;" i powinno śmigać (o ile nie masz byka gdzie indziej).

// EDIT:
i wywal to echo bo skoro chcesz przekierować na inną stronę to i tak user nie zobaczy napisu, a tylko nabawisz się problemów z tak popularnym "...headers already sent..." biggrin.gif
em-ba
adameq ..policzyłem je ale to nie to sad.gif

phpion

zrobiłem jak napisałeś i wywala mi:

Warning: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\eb\index.php:14) in c:\usr\krasnal\www\eb\logow.php on line 49

przy czym 14 - to odwołanie do stylów css
a 49 to fragment z header
phpion
smile.gif To przez to, że na początku wysyłasz już <meta> itd.
Daj na samym początku pliku:
  1. <?php
  2. ?>

Np.
  1. <?php
  2. ?>
  3. <html>
  4. ...

Przed ob_start() nie możesz mieć nic - ani żadnego znaku, ani spacji.
em-ba
zrobiłem tak i wciąż ten sam błąd, a skrypt przerobiłem jak zalecałeś..

  1. <?php
  2. {
  3.  echo &#092;"zostałeś zalogowany jako: $login\";
  4.  $_SESSION['zalogowany'] = 1;
  5.  $_SESSION['czas'] = time();
  6.  header('location: strona1.php');
  7.  return true;
  8.  }
  9. ?>


//EDIT:
a czy form action nie ma na to wpływu??
phpion
Masz to ob_start()? Jeśli tak to pokaż jak - wklej CAŁY plik.
em-ba
proszę biggrin.gif
  1. <?php
  2. ?>
  3.  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  6.  
  7. <head>
  8. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1250" />
  9. <title>trr :: </title>
  10. <meta name="Author" content="" />
  11. <meta name="keywords" content="" />
  12. <meta name="description" content="trr :: " />
  13. <link href="style.css" rel="stylesheet" type="text/css" />
  14. </head>
  15. <body>
  16.  
  17. <?php
  18. $polaczenie = @mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  19. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  20.  
  21. if($_SESSION['zalogowany'] == 0)
  22. {
  23. echo '<form id="LOGOWANIE" method="post" action="index.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  24. <div>
  25. Login:<br />
  26. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  27. Hasło:<br />
  28. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  29. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  30. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  31. </div>
  32. </form>';
  33.  
  34. if (isset($_POST['login']) && isset($_POST['haslo']))
  35. {
  36.  $login = $_POST['login'];
  37.  $haslo = $_POST['haslo'];
  38.  $haslo= md5($haslo);
  39.  
  40.  $sql = "SELECT id FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  41.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  42.  
  43.  if(mysql_num_rows($result) == 1) {
  44.  echo "zostałeś zalogowany jako: $login";
  45.  $_SESSION['zalogowany'] = 1;
  46.  $_SESSION['czas'] = time();
  47.  header('location: strona1.php');
  48.  return true;
  49.  }
  50. }
  51. } else {
  52.  echo "dane po zalogowaniu";
  53. }
  54.  
  55. $a = 10;
  56.  if ($_SESSION['zalogowany'] == 1)
  57.  {
  58. if (time() - $_SESSION['czas'] > $a)
  59. {
  60.  $_SESSION['zalogowany'] = 0;
  61. echo "Sesja zakończona. Nieczynność dłuższa niż $a <br /><a href='index.php'>Odśwież</a>";
  62. }
  63.  }
  64. ?>
  65.  
  66. </body>
  67. </html>


<a href="index.php"> </a href='index.php'></br ></br >
potreb
Session_start powinno być po ob_start();
Nie wiem po co zwracasz return true; bo tutaj nie jest porzebne.
Jeżeli wpiszesz poprawnie dane przeniesie cie na inną stronę za 2 sekundy mozesz ustawic sobie np 5 lub wcale wstawiajac zamiast refresh location

  1. <?php
  2. mysql_connect ('localhost', 'root', '') or die ("nie udało sie połączyć");
  3. mysql_select_db('test2') or die ("Nie mozna zlokalizowac bazy danych");
  4. if($_SESSION['zalogowany'] == 0)
  5. {
  6. echo '<form id="LOGOWANIE" method="post" action="aaa.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  7. <div>
  8. Login:<br />
  9. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  10. Hasło:<br />
  11. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  12. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  13. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  14. </div>
  15. </form>';
  16.  
  17. if (isset($_POST['login']) && isset($_POST['haslo']))
  18. {
  19.  $login = $_POST['login'];
  20.  $haslo = md5($_POST['haslo']);
  21.  $sql = "SELECT id FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  22.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  23.  
  24.  if(mysql_num_rows($result) == 1) //tutaj wstawiam - parse error
  25.  {
  26. echo "zostałeś zalogowany jako: $login";
  27.  $_SESSION['zalogowany'] = 1;
  28.  $_SESSION['czas'] = time();
  29.  header ('refresh: 2 index.php');
  30.  
  31.  } else {  
  32. echo "Twoje dane nie zgadzają się!";
  33.  }
  34. }
  35. } else {
  36.  echo "dane po zalogowaniu";
  37. }
  38.  
  39. $a = 5;
  40. if ($_SESSION['zalogowany'] == 1)
  41. {
  42. if (time() - $_SESSION['czas'] > $a)
  43. {
  44. $_SESSION['zalogowany'] = 0;
  45. echo "Sesja zakończona. Nieczynność dłuższa niż $a <br /><a href='index.php'>Odśwież</a>";
  46. }
  47. }
  48. ?>
em-ba
ok potreb- zrobiłem jak pisałeś

i teraz: jak wchodze na serv to zamiast panel logowania wyświetla mi: dane po zalogowaniuSesja zakończona. Nieczynność dłuższa niż 5
Odśwież

dopiero jak nacisnę odśwież to jest panel

a jak sie zaloguje to dalej jest ten sam błąd odnośnie header
potreb
Bo masz ustawioną nieczyność na 5 sekund:
Two plik ma tak wyglądać:
  1. <?php
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  5.  
  6. <head>
  7. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1250" />
  8. <title>trr :: </title>
  9. <meta name="Author" content="" />
  10. <meta name="keywords" content="" />
  11. <meta name="description" content="trr :: " />
  12. <link href="style.css" rel="stylesheet" type="text/css" />
  13. </head>
  14. <body>
  15. <?php
  16. $polaczenie = @mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  17. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  18.  
  19. if($_SESSION['zalogowany'] == 0)
  20. {
  21. echo '<form id="LOGOWANIE" method="post" action="index.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  22. <div>
  23. Login:<br />
  24. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  25. Hasło:<br />
  26. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  27. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  28. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  29. </div>
  30. </form>';
  31.  
  32. if (isset($_POST['login']) && isset($_POST['haslo']))
  33. {
  34.  $login = $_POST['login'];
  35.  $haslo = $_POST['haslo'];
  36.  $haslo= md5($haslo);
  37.  
  38.  $sql = "SELECT id FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  39.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  40.  
  41.  if(mysql_num_rows($result) == 1) {
  42.  echo "zostałeś zalogowany jako: $login";
  43.  $_SESSION['zalogowany'] = 1;
  44.  $_SESSION['czas'] = time();
  45.  header ('refresh: 2 index.php'); 
  46.  }
  47. }
  48. } 
  49. else {
  50.  
  51. $intTimeoutSeconds = 600; //wartosc podana w sekundach czyli zostaniesz wylogowany po 10 minutach jezeli nie
     byles aktywny
  52.  
  53. if(isset($_SESSION['intLastRefreshTime']))
  54. {
  55. if(($_SESSION['intLastRefreshTime']+$intTimeoutSeconds)<time())
  56. {
  57. session_destroy(); //tu ci kasuje sesje
  58. header('location: index.php');
  59.  
  60.  
  61. }
  62. }
  63. $_SESSION['intLastRefreshTime'] = time();
  64. }
  65.  
  66.  
  67. ?>
  68.  
  69. </body>
  70. </html>
em-ba
dzieki za kod, ale..
teraz jak już mi podesłałeś gotowy kod, a coś jest nie tak dalej to naprawdę nie wiem co źle robie.. sad.gif
zacznę od tego, że po przejściu na localhost nie mam panela logowania :-(

//próbowałem zmieniać index.php na logow.php ale to tez nie zadziałało..

oto plik index.php:
  1. <?php
  2. ?>
  3.  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  6.  
  7. <head>
  8. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1250" />
  9. <title>trr :: </title>
  10. <meta name="Author" content="" />
  11. <meta name="keywords" content="" />
  12. <meta name="description" content="trr :: " />
  13. <link href="style.css" rel="stylesheet" type="text/css" />
  14. </head>
  15. <body>
  16.  
  17. <div id="top">
  18. <div id="NAGLOWEK">naglowek</div>
  19.  
  20. <div id='inf'>
  21. <?php include("logow.php"); ?>
  22. </div>
  23. </div>
  24. </div>
  25.  
  26. </body>
  27. </html>


a oto jest plik logow.php
  1. <?php
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  5.  
  6. <head>
  7. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1250" />
  8. <title>trr :: </title>
  9. <meta name="Author" content="" />
  10. <meta name="keywords" content="" />
  11. <meta name="description" content="trr :: " />
  12. <link href="style.css" rel="stylesheet" type="text/css" />
  13. </head>
  14. <body>
  15. <?php
  16. $polaczenie = @mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  17. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  18.  
  19. if($_SESSION['zalogowany'] == 0)
  20. {
  21. echo '<form id="LOGOWANIE" method="post" action="index.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  22. <div>
  23. Login:<br />
  24. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  25. Hasło:<br />
  26. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  27. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  28. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  29. </div>
  30. </form>';
  31.  
  32. if (isset($_POST['login']) && isset($_POST['haslo']))
  33. {
  34.  $login = $_POST['login'];
  35.  $haslo = $_POST['haslo'];
  36.  $haslo= md5($haslo);
  37.  
  38.  $sql = "SELECT id FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  39.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  40.  
  41.  if(mysql_num_rows($result) == 1) {
  42.  echo "zostałeś zalogowany jako: $login";
  43.  $_SESSION['zalogowany'] = 1;
  44.  $_SESSION['czas'] = time();
  45.  header ('refresh: 2 index.php');
  46.  }
  47. }
  48. } 
  49. else {
  50.  
  51. $intTimeoutSeconds = 600; //wartosc podana w sekundach czyli zostaniesz wylogowany po 10 minutach jezeli nie
     byles aktywny
  52.  
  53. if(isset($_SESSION['intLastRefreshTime']))
  54. {
  55. if(($_SESSION['intLastRefreshTime']+$intTimeoutSeconds)<time())
  56. {
  57. session_destroy(); //tu ci kasuje sesje
  58. header('location: index.php');
  59.  
  60.  
  61. }
  62. }
  63. $_SESSION['intLastRefreshTime'] = time();
  64. }
  65.  
  66.  
  67. ?>
  68.  
  69. </body>
  70. </html>
potreb
plik index.php:
  1. <?php
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  5. <head>
  6. <meta http-equiv="content-type" content="text/html; charset=WINDOWS-1250" />
  7. <title>trr :: </title>
  8. <meta name="Author" content="" />
  9. <meta name="keywords" content="" />
  10. <meta name="description" content="trr :: " />
  11. <link href="style.css" rel="stylesheet" type="text/css" />
  12. </head>
  13. <body>
  14.  
  15. <div id="top">
  16. <div id="NAGLOWEK">naglowek</div>
  17. <div id='inf'>
  18. <?php include("logow.php"); ?>
  19. </div>
  20. </div>
  21. </div>
  22.  
  23. </body>
  24. </html>


plik logow.php:
  1. <?php
  2. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5. if($_SESSION['zalogowany'] == 0)
  6. {
  7. echo '<form id="LOGOWANIE" method="post" action="index.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  8. <div>
  9. Login:<br />
  10. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  11. Hasło:<br />
  12. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  13. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  14. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  15. </div>
  16. </form>';
  17.  
  18. if (isset($_POST['login']) && isset($_POST['haslo']))
  19. {
  20.  $login = $_POST['login'];
  21.  $haslo = $_POST['haslo'];
  22.  $haslo= md5($haslo);
  23.  
  24.  $sql = "SELECT id FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  25.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  26.  
  27.  if(mysql_num_rows($result) == 1) {
  28.  echo "zostałeś zalogowany jako: $login";
  29.  $_SESSION['login'] = $login;
  30.  $_SESSION['zalogowany'] = 1;
  31.  $_SESSION['czas'] = time();
  32.  header ('location: index.php');
  33.  }
  34. }
  35. } 
  36. else {
  37. echo "Zostałeś zalogowany jako ".$_SESSION['login']."<br><a href='index.php?log=wyloguj'>wyloguj</a>";
  38. }
  39.  
  40. $intTimeoutSeconds = 600; //wartosc podana w sekundach czyli zostaniesz wylogowany po 10 minutach jezeli nie
     byles aktywny
  41.  
  42. if(isset($_SESSION['intLastRefreshTime']))
  43. {
  44. if(($_SESSION['intLastRefreshTime']+$intTimeoutSeconds)<time())
  45. {
  46. session_destroy(); //tu ci kasuje sesje
  47. header('location: index.php');
  48.  
  49.  
  50. }
  51. }
  52. $_SESSION['intLastRefreshTime'] = time();
  53.  
  54. if ($_GET['log'] == "wyloguj") {
  55. session_destroy(); //tu ci kasuje sesje
  56. header('location: index.php');
  57. }
  58.  
  59. ?>
em-ba
uff, dzięki za pomoc, teraz mam to o co mi chodziło

zmieniłem location i jest ok.
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.