Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]wejście na daną stronę po wpisaniu odpowiedniego hasła
przemo.
post 11.05.2010, 09:32:58
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 2.02.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
zordon
post 11.05.2010, 09:40:31
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  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. }
Go to the top of the page
+Quote Post
pedro84
post 11.05.2010, 09:41:28
Post #3





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
przemo.
post 12.05.2010, 10:12:08
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 2.02.2006

Ostrzeżenie: (0%)
-----


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


Ten post edytował przemo. 12.05.2010, 10:42:42
Go to the top of the page
+Quote Post
piotrooo89
post 12.05.2010, 10:38:26
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




proszę o prawidłowe bbcode.


--------------------
Go to the top of the page
+Quote Post
djbarca
post 12.05.2010, 10:48:58
Post #6





Grupa: Zarejestrowani
Postów: 231
Pomógł: 1
Dołączył: 22.04.2007
Skąd: Rypin

Ostrzeżenie: (0%)
-----


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

Ten post edytował djbarca 12.05.2010, 11:16:45
Go to the top of the page
+Quote Post
pedro84
post 12.05.2010, 11:01:05
Post #7





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

Ostrzeżenie: (0%)
-----


Po prostu w momencie sprawdzania hasła dodać switch, nic trudnego.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
djbarca
post 12.05.2010, 11:18:54
Post #8





Grupa: Zarejestrowani
Postów: 231
Pomógł: 1
Dołączył: 22.04.2007
Skąd: Rypin

Ostrzeżenie: (0%)
-----



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
Go to the top of the page
+Quote Post
przemo.
post 12.05.2010, 11:30:46
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 2.02.2006

Ostrzeżenie: (0%)
-----


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))
Go to the top of the page
+Quote Post
thek
post 12.05.2010, 11:34:20
Post #10





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Lepiej sprawdź jaka jest kolejność parametrów dla in_array. Czy in_array( $tablica, $szukany ) czy może in_array( $szukany, $tablica ) winksmiley.jpg


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
djbarca
post 12.05.2010, 11:37:17
Post #11





Grupa: Zarejestrowani
Postów: 231
Pomógł: 1
Dołączył: 22.04.2007
Skąd: Rypin

Ostrzeżenie: (0%)
-----


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.  


Ten post edytował djbarca 12.05.2010, 11:38:30
Go to the top of the page
+Quote Post
Ociu
post 12.05.2010, 11:56:13
Post #12





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Było milion razy na forum. Poszukaj.
Go to the top of the page
+Quote Post
przemo.
post 12.05.2010, 12:50:06
Post #13





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 2.02.2006

Ostrzeżenie: (0%)
-----


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 (), ...

Ten post edytował przemo. 12.05.2010, 12:50:26
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 14:01