Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Panel Logowania nie wyświetla strony
Forum PHP.pl > Forum > Przedszkole
Pudi
Witam mam taki problem, otóż mam kod:
CODE
<?php
$nick = $_SESSION['nick'];
$haslo = $_SESSION['haslo'];
if ((empty($nick)) AND (empty($haslo))) {
echo"<form method='POST' action='login.php'>";
echo"<table cellpadding='0' cellspacing='0' width='180'>";
echo"<tr><td><br></td></tr>";
echo"<tr><td width='50'>Login:</td><td><input type='text' name='login' maxlength='32'></td></tr>";
echo"<tr><td width='50'>Hasło:</td><td><input type='password' name='haslo' maxlength='32'></td></tr>";
echo"<tr><td align='center' colspan='2'><input type='submit' value='Zaloguj'><br></td></tr>";
echo"</table>";
echo"</form>";

exit;
}
$user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));
if (empty($user[id]) OR !isset($user[id])) {
echo '<br>Nieprawidłowe logowanie.<br>';
exit;
}
// tresc dla zalogowanego uzytkownika
echo 'Witaj '.$user[nick].'<br>';
echo '<a href="edytujprofil.php">Edytuj Profil</a><br>';
echo '<a href="dodajfilm">Dodaj Filmik</a>';
echo '<br><a href="wyloguj.php">Wyloguj mnie</a>';

?>

i jak jest się wylogowanym ucina stronę po prostu jej nie wyświetla pokaże to na obrazku

czyli dokładnie chodzi o to żeby jak jest się wylogowanym tylko pokazywało formularz i reszte strony i jak jest się zalogowanym to pokazywało panel i resztę strony

z góry dziękuje i pozdrawiam
zend
Mógłbyś dokładniej opisać problem?
Pudi
Cytat(zend @ 28.03.2010, 23:42:50 ) *
Mógłbyś dokładniej opisać problem?

Dokładnie chodzi o to ze mam kod strony i jak jest wylogowany Użytkownik to nie wyświetla mu Menu z wyszukiwarką i stopką co jest pod kodem z logowaniem ale za to jak jest się zalogowanym wszystko działa idealnie
zend
To Ci działało? Bo jest były błędy
  1. <?php
  2. $nick = $_SESSION['nick'];
  3. $haslo = $_SESSION['haslo'];
  4. if ((empty($nick)) AND (empty($haslo))) {
  5. echo"<form method='POST' action='login.php'>";
  6. echo"<table cellpadding='0' cellspacing='0' width='180'>";
  7. echo"<tr><td><br></td></tr>";
  8. echo"<tr><td width='50'>Login:</td><td><input type='text' name='login' maxlength='32'></td></tr>";
  9. echo"<tr><td width='50'>Hasło:</td><td><input type='password' name='haslo' maxlength='32'></td></tr>";
  10. echo"<tr><td align='center' colspan='2'><input type='submit' value='Zaloguj'><br></td></tr>";
  11. echo"</table>";
  12. echo"</form>";
  13.  
  14. }
  15. $user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));
  16. if (empty($user['id']) OR !isset($user['id'])) {
  17. echo '<br>Nieprawidłowe logowanie.<br>';
  18. }
  19. // tresc dla zalogowanego uzytkownika
  20. echo 'Witaj '.$user['nick'].'<br>';
  21. echo '<a href="edytujprofil.php">Edytuj Profil</a><br>';
  22. echo '<a href="dodajfilm">Dodaj Filmik</a>';
  23. echo '<br><a href="wyloguj.php">Wyloguj mnie</a>';
  24.  
  25. ?>

A poza tym nie podałeś zawartości login.php bądź czegoś w tym stylu, bo w tym co jest nie ma nic co by sie "Szukaj" nazywało więc nic dziwnego że Ci się nie wyświetla, bo tego nie ma w tym skrypcie
mortus
exit zatrzymuje wykonywanie skryptu, więc wszystko co jest pod tym, nie zostanie przetworzone/wyświetlone.

Musisz inaczej skonstruować warunki, nie korzystając z exit.
Pudi
podaje login.php
CODE
<?php include("includy/config.php"); ?>
<?php
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$haslo = addslashes($haslo);
$login = addslashes($login);
$login = htmlspecialchars($login);

if ($_GET['login'] != '') { //jezeli ktos przez adres probuje kombinowac
exit;
}
if ($_GET['haslo'] != '') { //jezeli ktos przez adres probuje kombinowac
exit;
}

$haslo = md5($haslo); //szyfrowanie hasla
if (!$login OR empty($login)) {
echo '<p class="alert">Wypełnij pole z loginem!</p>';
exit;
}
if (!$haslo OR empty($haslo)) {
echo '<p class="alert">Wypełnij pole z hasłem!</p>';
exit;
}
$istnick = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM `uzytkownicy` WHERE `nick` = '$login' AND `haslo` = '$haslo'")); // sprawdzenie czy istnieje uzytkownik o takim nicku i hasle
if ($istnick[0] == 0) {
echo 'Logowanie nieudane. SprawdĽ pisownię nicku oraz hasła.';
} else {

$_SESSION['nick'] = $login;
$_SESSION['haslo'] = $haslo;

header("Location: index.php");
}
?>

o tutaj dla tego co ze nie ma szukaj bo jest szukaj ale w innym kodzie:
CODE
<td valign="top">
<table border="0" width="207" cellpadding="0" cellspacing="0" align="center">
<tr><td class="topm2" colspan="3"></td></tr>
<tr><td class="tlotab"></td><td class="tlom">
<div class="menu">
<?php include("includy/login.php"); ?>

</div>
</td><td class="tlotab"></td></tr>
<tr><td class="dolm" colspan="3"></td></tr>
</table>

<div class="przerwa"></div>

<table border="0" width="207" cellpadding="0" cellspacing="0" align="center">
<tr><td class="topm3" colspan="3"></td></tr>
<tr><td class="tlotab"></td><td class="tlom">
<div class="menu">
Wpisz słowo/frazę któr&#261 chcesz wyszukać... <BR>
<center><input type='text' class='textbox' size="20"><BR><input type='submit' name='login' value='Szukaj!' class='login'></center>
</div>
</td><td class="tlotab"></td></tr>
<tr><td class="dolm" colspan="3"></td></tr>
</table>
mortus
Przecież już Ci pisałem. Funkcja exit kończy wykonywanie skryptu. Prosty test:
plik index.php
  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. include 'in.php';
  5. ?>
  6. <p>A tutaj akapit w html-u.</p>
i plik in.php
  1. <?php
  2. echo 'koniec działania pliku in.php';
  3. ?>
Kod html, z pliku index.php nie zostanie wyświetlony. Nie możesz używać funkcji exit w swoim kodzie.
Pudi
Cytat(mortus @ 29.03.2010, 13:58:12 ) *
Przecież już Ci pisałem. Funkcja exit kończy wykonywanie skryptu. Prosty test:
plik index.php
  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. include 'in.php';
  5. ?>
  6. <p>A tutaj akapit w html-u.</p>
i plik in.php
  1. <?php
  2. echo 'koniec działania pliku in.php';
  3. ?>
Kod html, z pliku index.php nie zostanie wyświetlony. Nie możesz używać funkcji exit w swoim kodzie.

No dobrze rozumiem nie moze być "exit;" ale jak to innaczej zrobić by było dobrze questionmark.gif?
mortus
Użyj konstrukcji
  1. if(warunek) {
  2. // kod do wykonania
  3. } elseif(inny warunek) {
  4. // inny kod do wykonania
  5. } else {
  6. // kod do wykonania wówczas, gdy nie ma warunków
  7. }
Należy właściwie zdefiniować warunki, tzn. po co definiować warunek, dla którego nic się nie wykona? Opcjonalnie można definiować i wyświetlać komunikaty błędów, ale na razie nie mam czasu, żeby to szczegółowo opisać. Dopiero wieczorem będę miał czas.
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.