Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pomozcie: problem po zalogowaniu.
Forum PHP.pl > Forum > PHP
froth
Robie zwykly formularz logowania na stronie.nastepnie po zalogowaniu pojawia sie kolejny formularz.Ale formularz lgoowania wciaz jest.Jak zrobic aby po zalogowaniu sie juz nie pokazywal.CHce aby to bylo w 1 pliku.
FastRed
Po zalogowaniu dajesz userowi zmienną sesyjną
[php:1:a817c4dc3b]<?php
$_SESSION['logged']='1';
?>[/php:1:a817c4dc3b]
później sprawdzasz:

[php:1:a817c4dc3b]<?php
if($_SESSION['logged']=='1'){
echo 'user zalogowany';
}else{
//tu dajesz formularz logowania
};
?>[/php:1:a817c4dc3b]
froth
no tak tylko ze ja to logowanie nie mam na sesjach. if($login=="login" && $haslo=="haslo")
{
// wyswietl formularz
}
tylko ze nad tym 2 formularzem widnieje formularz logowania i jakz robic by go usunac...
Dawid Pytel
No to robisz najprostszy warunek, czyli:

[php:1:c5f18f35b2]<?php

if($login!='login' || $haslo!='haslo')
{
// pierwszy formularz
}
elseif ($login=='login' && $haslo=='haslo')
{
// drugi formularz
}


?>[/php:1:c5f18f35b2]

To oczywiście najprostszy szkielet
froth
wezmy przyklad 1 formularz to formularz dzikei ktoremu sie loguje.Gdy sie zaloguje ma sie wyswietlic formularz dodawania newsa.Tak mam.Tylko ze nad formularzem dodawania newsa widnieje formularz logowania(juz po zalogowaniu) i chce zrobic zeby po zalogowaniu ten formularz znikal smile.gif)
Dawid Pytel
Sprawdziłeś wogóle co Ci napisałem questionmark.gifquestionmark.gif?

Tu masz przykład

[php:1:f36eadd63e]<?php
if($_POST[login]!='ble' || $_POST[haslo]!='bla')
{

echo '
<form method="post" action="'.$_SERVER[PHP_SELF].'">
Login: <input type="text" name="login"/><br/>
Hasło: <input type="text" name="haslo"/><br/>
<input type="submit" value="zaloguj"/>
</form>';

}
elseif ($_POST[login]=='ble' && $_POST[haslo]=='bla')
{
echo 'inny formularz';
}
?>[/php:1:f36eadd63e]


Jezeli podajesz dobre dane to znika formularz pierwszy a pojawia się drugi.
froth
tylko jak zrobic zeby dzialalo to + wyskakiwal txt gdy puste pole/pola i text gdy bledne haslo lub login
borec
Cytat
Sprawdziłeś wogóle co Ci napisałem questionmark.gifquestionmark.gif?

Tu masz przykład  

[php:1:624f9859d5]<?php
if($_POST[login]!='ble' || $_POST[haslo]!='bla')  
{  

  echo '
  <form method="post" action="'.$_SERVER[PHP_SELF].'">
  Login: <input type="text" name="login"/><br/>
  Hasło: <input type="text" name="haslo"/><br/>
  <input type="submit" value="zaloguj"/>
  </form>';
   
}  
elseif ($_POST[login]=='ble' && $_POST[haslo]=='bla')  
{  
   echo 'inny formularz';
}  
?>[/php:1:624f9859d5]


Jezeli podajesz dobre dane to znika formularz pierwszy a pojawia się drugi.


ila razy trzeba powtarzac:
$_POST[login] - NIE
$_POST['login'] - TAK

[php:1:624f9859d5]<?php

if (!$_POST['login']) {
echo '
<form method="post" action="'.$_SERVER[PHP_SELF].'">
Login: <input type="text" name="login"/><br/>
Hasło: <input type="text" name="haslo"/><br/>
<input type="submit" value="zaloguj"/>
</form>';

}
else
{

if (($_POST['login'] == "login") && ($_POST['haslo'] == "haslo")) {
echo 'inny formularz';
}
else {
echo "zly login lub haslo";
}
}
?>[/php:1:624f9859d5]
Dawid Pytel
Oto jeden ze sposobów:

[php:1:b7110d65e9]<?php

function form1() {
echo '
<form method="post" action="'.$_SERVER[PHP_SELF].'">
Login: <input type="text" name="login"/><br/>
Hasło: <input type="text" name="haslo"/><br/>
<input type="submit" name="Submit" value="zaloguj"/>
</form>';
}

if($_POST['Submit'] && ($_POST['login']!='ble' || $_POST['haslo']!='bla'))
{

// Tutaj wpisujesz serie warunkow sprawdzajacych poprawnosc pól np.

if(empty($_POST['login'])) echo 'Nie wypelniles pola login<br/>';

if(!empty($_POST['login']) && $_POST['login']!='login') {
echo 'Podany login jest niepoprawny<br/>';
}

// etc
// na koncu wyswietlasz formularz

form1();

}
elseif(!$_POST['Submit']) {

/* ten warunek jest spelniony na samym poczatku gdy nie zostal wyslany zaden formularz*/

form1();

}
elseif ($_POST['login']=='ble' && $_POST['haslo']=='bla')
{
echo 'inny formularz';
}

?>[/php:1:b7110d65e9]


To tylko przykłady 'tak na szybko'. Wszystko juz zalezy od Twojej wyobrazni. Jezeli polapanie w warunkach sprawdzajacych sprawia Ci klopot to... rozrysuj to sobie -> z pewnością pomoże smile.gif
borec
@Dawid - naucz sie uzywac tablic asocjacyjnych:

Cytat
Co wolno, a czego nie w tablicach?
Dlaczego zapis $foo[bar] jest niepoprawny?

W starych skryptach można spotkać taką składnię:  

$foo[bar] = 'coś';
echo $foo[bar];
// itd.  

Ten zapis jest niepoprawny, ale działa. Dlaczego zatem jest niepoprawny? Powód jest to, co opisano w rozdziale składnia, że pomiędzy nawiasami kwadratowymi ('[' i ']') musi znajdować się wyrażenie. Oznacza to, że można używać czegoś takiego:  

echo $arr[ foo(true) ];  

Jest to przykład użycia wartości zwracanej przez funkcję jako indeksu tablicy. php zna też stałe, więc można spotkać zastosowanie E_*.  

$opis_błędu[E_ERROR] = "Wystąpił poważny błąd";
$opis_błędu[E_WARNING] = "php wysłało ostrzeżenie";
$opis_błędu[E_NOTICE] = "To jest tylko nieformalna uwaga";  

Proszę pamiętać, że E_ERROR jest także ważnym identyfikatorem, tak jak bar w pierwszym przykładzie. Ale ostatni przykład znaczy to samo co:  

$opis_błędu[1] = "Wystąpił poważny błąd";
$opis_błędu[2] = "php wysłało ostrzeżenie";
$opis_błędu[8] = "To jest tylko nieformalna uwaga";  

ponieważ E_ERROR znaczy to samo co 1, itd.  

W takiem razie, jak to możliwe, że $foo[bar] działa? To działa, ponieważ bar, zgodnie z jego zapisem powinien być stałą. Jednakże w tym przypadku nie instnieje stała o nazwie bar. php teraz zakłada, że masz na myśli bar literalnie, czyli jako łańucuch "bar", tylko że zapomniałeś napisać cudzysłowów.  
Więc dlaczego tak jest źle?

Kiedyś w przyszłości grupa php może chcieć dodać jeszcze jedną stałą lub słowo kluczowe i wtedy będziesz miał kłopot. Dla przykładu, obecnie już nie można używać słów empty i default, gdyż są to specjalne słowa kluczowe.  

Poza tym, jeśli dotąd argumenty nie przekonują cię: ta składnia jest po prostu odrzucona i kiedyś może przestać działać.
Dawid Pytel
@ Borec: No tak, wczesniej nie przykladalem do tego uwagi chociaz zawsze w moich projektach tablice zapisywalem dobrze.

Odpowiadając na posta robiłem to zbyt szybko i nawet nie brałem tego pod uwagę. Tak więc przepraszam osoby które mogłem przez to wprowadzić w błąd smile.gif
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.