Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]wejście na daną stronę po wpisaniu odpowiedniego hasła
Forum PHP.pl > Forum > Przedszkole
przemo.
Witam,

Mam taki problem. Próbuje zrobić coś takiego, że użytkownik, który wchodzi na moją stronę w zależności od tego jakie hasło wpisze wchodzi na odpowiednią stronę. Próbowałem za pomocą skryptów logowania zrobić, ale pojęcie o PHP mam słabe i dochodzę do momentu takiego, że moge za pomocą "form action" zrobić tylko jedno hasło czyli można wejśc na tylko jedną stronę.
Mam nadzieję, że dobrze wszystko objasniłem ?

Pozdrawiam
zordon
  1. switch($haslo){
  2.  
  3. case 'haslo1':
  4. header('Location: strona1.php');
  5. break;
  6.  
  7. case 'haslo2':
  8. header('Location: strona2.php');
  9. break;
  10.  
  11. // ...
  12.  
  13. }
pedro84
No ale z czym masz problem? Po prostu sprawdzasz jakie hasło użytkownik podał, potem przekierowujesz (albo zapisujesz w sesji) odpowiednie hasło i sprawdzasz za pomocą if.
przemo.
dzięki , zaraz przetestuje

A jednak wychodzi moja nie wiedza.
Mam w tej chwili skrypt który wygląda następująco ...
Mam sobie pliczek logowanie.php w którym użytkownik wpisuje login i hasło i który przekierowuje na inny plik
Kod
<html>
<head>
<title>
Logowanie
</title>
<style type="text/css">
.style1 {
    text-align: center;
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    font-size: large;
    color: #00FF00;
}
</style>
</head>
<body bgcolor= #E5E5E5>
<img src="images/Header.jpg" height="139" width="500">
<p class="style1">Logowanie</p>
<center>
<form action='pln.php' method='POST'>
<table border='5'>
<tr>
<td>
Login :
</td>
<td>
<input type='text' name='login' value="uczestnik">
</td>
</tr>
<tr>
<td>
Hasło :
</td>
<td>
<input type='password' name='pass' >
</td>
</tr>
<tr>
<td>
</td>
<td>
<center>
<input type='submit' value='Loguj' >
</center>
</td>
</tr>
</table>
</form>
<form action='Dok+Firmowe.php' method='POST'>
</form>

p.s.<br/>
Dla każdego skryptu pole "Login" jest takie samo i brzmi: "uczestnik"
</center>
</body>
</html>


I chciałbym aby w zależności od wpisanego hasła przekierowywał na inna stronę.

przykładowy plik po wpisaniu hasła:

Kod
<?php
//Logowanie by jan64 (c) 2008
//nie usuwaj copyright
//licencja freeware
//nie odpowiadam za działanie tego skryptu
//oraz za jego wykorzystanie
//urzywasz go na własną odpowiedzialność
//haslo
$passf = "maszyna";
//login
$loginf = "uczestnik";
//nie modyfikuj tego co poniżej
$godz = date("Y-m-d");
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$ip = $_SERVER['REMOTE_ADDR'];
$login = $_POST[login];
$pass = $_POST[pass];

if ($login == $loginf) {
if ($pass == $passf) {
$namee = "||Dostęp do danych uzyskał $ip $host w dniu  $godz||";
$gmernglir = fopen ("rejestr.txt", "a+");
fwrite ($gmernglir, $namee);
echo "<center>";
echo "Twój IP: $ip";
echo "<br>";
echo "Twój HOST: $host";
echo "<br>";
echo "Dziś jest : $godz";
echo "<br>";
echo "<br>";
echo "<hr>";
} else {
$namee = "||Próba dostępu do danych zle haslo dostęp do danych próbował uzyskać $ip $host w dniu  $godz||";
$gmernglir = fopen ("rejestr.txt", "a+");
fwrite ($gmernglir, $namee);
echo "<center>";
echo"Zle haslo";
echo "<br>";
echo "<br>";
echo "<hr>";
exit;
}
} else {
$namee = "||Próba dostępu do danych zly login dostęp do danych próbował uzyskać $ip $host w dniu  $godz||";
$gmernglir = fopen ("rejestr.txt", "a+");
fwrite ($gmernglir, $namee);
echo "<center>";
echo "Zly Login";
echo "<br>";
echo "<br>";
echo "<hr>";
exit;
}
?>
<?php
ob_start();
$start=microtime();
// kod do liczenia czasu ładowania strony
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en">
<head>
<meta name="google-site-verification" content="SjeA7I3D3FLedx8MwB2oC-tMTH7EmmJsGxNUe71RLBY" />
    
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
    <title>Ekspert</title>

    <script type="text/javascript" src="script.js"></script>
<style type="text/css">
.style1 {
    text-align: center;
}
</style>
</head>
<body bgcolor= #E5E5E5>
<div class="style1">
<img src="images/Header.jpg" height="139" width="500" />
<p class="style5">Dziękujemy za skorzystanie ze szkolenia naszej firmy. Poniżej do ściągnięcia zamieszczamy materiały dla Państwa.</p>
<div class="style6">
    <span class="style7">1.<a href="PLN.pdf">Skrypt PLN</a></span> </div><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
    <?php
ob_start();
include("licznik.php");
?>
</div>
</body>
</html>


I jak to najlepiej scalić ?

________________________________________________________________________________
____________________________________________________
Doszedłem do takiego momentu

Mam problem tego typu, że po zalogowaniu na daną stronę mam biały ekran zamiast strony docelowej ...
plik logowanie.php:
Kod
<? if (isset($_POST['haslo'])) {
$haslo = $_POST['haslo'];

if  ($haslo == 'materialy_pln')
{
@header ('Location: pln.php');
}

else {
echo 'Nie udalo sie zalogowac.';
}
if  ($haslo == 'materialy_waluty')
{
@header ('Location: waluty.php');
}
else {
echo 'Nie udalo sie zalogowac.';
}

if  ($haslo == 'materialy_dokumenty')
{
@header ('Location: Dok+Firmowe.php');
}
else {
echo 'Nie udalo sie zalogowac.';
}
}
?>


i przykladowo pln.php
Kod
<form action="logowanie.php" method="post">
    <div class="style1">
<font size="5"> Podaj hasło:</font><br>
<input name='pass' type="password">
<input type="submit" VALUE="OK">
</div>
</form>


i ponieżej treść strony ...
piotrooo89
proszę o prawidłowe bbcode.
djbarca
nie analizowałem tego w całości ale być może:

Cytat
<input name='pass' type="password">


a potem deklarujesz haslo :
$haslo = $_POST['haslo'];



jak masz ten kod:

Cytat
if (isset($_POST['haslo'])) {
...
}

dopisz sobie warunek else


Cytat
if (isset($_POST['haslo'])) {
...
} else { echo "brak zmiennej haslo"; }


i będziesz wiedział czy to na pewno to
pedro84
Po prostu w momencie sprawdzania hasła dodać switch, nic trudnego.
djbarca

dlaczego w pliku logowanie.php masz 2x form
dalej.. jeśli opcja login zawsze jest taka sama i nigdzie nie sprawdzasz jej poprawności to wyrzuć ją
najprościej jak chcesz zrobić przekierowanie w zależności od wpisanego hasła to:

logowanie.php
  1. <form action='zarzadzaj.php' method='POST'>
  2. Login :<input type='text' name='login' value="uczestnik">
  3. Hasło :<input type='password' name='pass' >
  4. <input type='submit' value='Loguj' >
  5. </form>



i plik np: zarzadzaj.php

  1. $array = array('materialy_pln' => 'pln.php', 'materialy_waluty' => 'waluty.php');
  2.  
  3. $haslo = $_POST['pass'];
  4. if (!empty($haslo) && in_array(array_keys($array),$haslo))
  5. {
  6. header ("location: {$array[$haslo]}");
  7. }

w palca pisane wiec moglem sie gdzies pomylic
przemo.
dzięki , próbuje wszystkiego ...

Djbarca - wyskakuje mi : Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/przemo1/domains/ekspert-szkolenia.eu/public_html/zarzadzaj.php on line 13

ta linia to: if (!empty($haslo) && in_array(array_keys($array),$haslo))
thek
Lepiej sprawdź jaka jest kolejność parametrów dla in_array. Czy in_array( $tablica, $szukany ) czy może in_array( $szukany, $tablica ) winksmiley.jpg
djbarca
fakt .. moj blad..
  1. if (!empty($haslo) && in_array($haslo,array_keys($array)))
  2.  
  3.  
  4. albo
  5.  
  6.  
  7. if (!empty($haslo) && array_key_exists($haslo, $array))
  8.  
Ociu
Było milion razy na forum. Poszukaj.
przemo.
to ja spróbuje jeszcze od innej strony. Teraz mam taki błąd:
Kod
Warning: Cannot modify header information - headers already sent by (output started at /home/przemo1/domains/ekspert-szkolenia.eu/public_html/zarzadzaj.php:11) in /home/przemo1/domains/ekspert-szkolenia.eu/public_html/zarzadzaj.php on line 17


i problem polega na tym, że dodałem ob_start(); oraz ob_end_flush(); . Zmieniłem też kodowanie z UTF-8 na Latin2 i dalej mam to samo ...

EDIT:
dzieki za wszystko , poradziłem sobie smile.gif, źle wstawiłem ob_start (), ...
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.