Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykonywanie błędu ale nie w pliku.
Forum PHP.pl > Forum > PHP
Mazur_pl
Witam, wiem że nazwa tematu nie typowa ale nie wiedziałem jak to lepiej nazwać .
Więc mam takie pytanie. Mam plik index.php gdzie mam powiedzmy formularz logowania (action="login.php") .

W login.php mam coś takiego że jak nie podasz dobrych danych to wyświetla błąd . Ale wtedy nie wyświetla go już normalnie w index.php tylko w login.php sad.gif . Dlatego mam pytanie czy mogę jakoś zrobić aby w login.php tylko sprawdzało poprawność , a jeżeli jest wszystko dobrze zalogowało , a jeżeli nie to wyskoczył błąd ale nie w login.php , a w index.php . Proszę o pomoc smile.gif.

Drugie pytanie czy mogę użyć try { } captch jako interpretera błędów ?

Pozdrawiam .
starach
1. Jaki jest kod ?
2. Jeśli twój kod pluje wyjątkami to możesz je w ten sposób wyłapywać.
Mazur_pl
Index.php:
  1. .......
  2. <?php
  3. if($_SESSION['user_pass'] && $_SESSION['user_name']) {
  4. echo("Witaj <b>" . $_SESSION['user_name'] . "</b><br />");
  5. echo("Data: " . $_SESSION['data'] . "<br />gg: " . $_SESSION['gg'] . "<br />");
  6. echo('<a href="wyloguj.php">Wyloguj</a><br />');
  7. if($_SESSION['level'] == ADMIN) {
  8. echo('Jestes Administratorem!! biggrin.gif');
  9. }
  10. } else {
  11.  
  12. echo('<form action="login.php" method="POST">');
  13. echo('Login: <input type="text" name="user_name"><br />');
  14. echo('Haslo: <input type="password" name="user_pass"><br />');
  15. echo('<input type="submit" value="zaloguj">');
  16. echo('</form>');
  17.  
  18. }
  19.  ?>
  20. .....

Login.php:
  1. <?php
  2.  
  3. define("db_host", "localhost");
  4. define("db_user", "Mazur");
  5. define("db_pass", "");
  6. define("db_name", "admin");
  7.  
  8. mysql_connect(db_host, db_user, db_pass);
  9. mysql_select_db(db_name);
  10.  
  11. $user_name = mysql_real_escape_string(trim($_POST['user_name']));
  12. $user_pass = mysql_real_escape_string(trim(md5($_POST['user_pass'])));
  13.  
  14.  
  15. $wynik = mysql_query("SELECT * FROM users WHERE user_name = "$user_name" AND user_pass = "$user_pass";");
  16.  
  17. if($user_name && $user_pass) {
  18.  
  19.  if($row = mysql_fetch_array($wynik)) {
  20.  
  21.  $userdata['level'] = $row['level'];
  22.  
  23.  $_SESSION['user_name'] = $row['user_name'];
  24.  $_SESSION['user_pass'] = $row['user_pass'];
  25.  $_SESSION['level'] = $row['level'];
  26.  $_SESSION['data'] = $row['data'];
  27.  $_SESSION['gg'] = $row['gg'];
  28.  
  29.  header("Location: index.php");
  30.  
  31.  } else {
  32.  echo('Blad logowania');
  33.  }
  34.  } elseif($_POST['user_name']) {
  35.  
  36.  echo('Wypelnij wszystkie pola!');
  37.  
  38.  } elseif($_POST['user_pass']) {
  39.  
  40.  echo('Wypelnij wszystkie pola!');
  41.  
  42.  } else {
  43.  echo('Wypelnij wszystkie pola!');
  44.  }
  45. ?>
starach
Możesz na przykład przekierować na index.php?msg=zly_login
a w index.php sprawdzić czy $_GET['msg'] ma wartość zly_login
jet tak to wyświetlić odpowiedni komunikat oczywiście to co prześlesz w zmiennej i jak ją nazwiesz jest twoją sprawą.

Tak swoją drogą to masz całkowicie skopane instrukcje warunkowe w Login.php zastanów się nad kolejności i sprawdź w manualu funkcje empty() i isset()
Mazur_pl
Zaznaczam że chodzi ci o } elseif($_..... .
Zmienie to .
Wiem co to empty() i isset() smile.gif .

Co do tematu to mógłbyś pokazać w kodzie o co chodzi bo nie za bardzo rozumiem jak to zrobić :| .
starach
header("Location: index.php");

} else {
header("Location: index.php?msg=login_error");
}
index.php
if(isset($_GET['msg']){
if($_GET['msg'] == 'login_error')
{
echo 'login jest niepoprawny';
}
}
Mazur_pl
Dzięki :] .
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.