przegladanie tablicy o indeksach typu string
przegladanie tablicy o indeksach typu string
no wlasnie jak to sie robi?
ja potrzebuje to do skryptu logowania i zrobilem cos takiego:
[php]
<html>
<head>
<?php
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$lnptable = array("2c58719eb675c9ece8b332cbc9c022d7"=>"a1e05ee2564dbf16b04f09a23d482d06", ...); // i tu kolejne hashe
$limit = count ($lnptable);
for ($i=1; $i<=$limit; $i++)
{
$current = current ($lnptable);
$key = key ($lnptable);
if ($login == $current && $pass == $key)
{
print ("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=panel.php?login=".$login."&pass=".$pass."\">);
break;
}
else
{
next ($lnptable);
}
}
?>
</head>
<body>
<div align=center>
Logowanie w toku...
</div>
</body>
</html>
[/php]
tyle ze wyskakuje mi blad w ostatniej linijce. czy ktos moze mi powiedziec lub chodziaz wytlumaczyc lopatologicznie jak to sie robi i/lub gdzie ja robie blad?
z zalozenia nie chce wykorzystywac sql'a
dopisek: aha i jeszcze wyskakujacy blad to parse
ja potrzebuje to do skryptu logowania i zrobilem cos takiego:
[php]
<html>
<head>
<?php
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$lnptable = array("2c58719eb675c9ece8b332cbc9c022d7"=>"a1e05ee2564dbf16b04f09a23d482d06", ...); // i tu kolejne hashe
$limit = count ($lnptable);
for ($i=1; $i<=$limit; $i++)
{
$current = current ($lnptable);
$key = key ($lnptable);
if ($login == $current && $pass == $key)
{
print ("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=panel.php?login=".$login."&pass=".$pass."\">);
break;
}
else
{
next ($lnptable);
}
}
?>
</head>
<body>
<div align=center>
Logowanie w toku...
</div>
</body>
</html>
[/php]
tyle ze wyskakuje mi blad w ostatniej linijce. czy ktos moze mi powiedziec lub chodziaz wytlumaczyc lopatologicznie jak to sie robi i/lub gdzie ja robie blad?
z zalozenia nie chce wykorzystywac sql'a
dopisek: aha i jeszcze wyskakujacy blad to parse
Re: przegladanie tablicy o indeksach typu string
[php]
<?PHP
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$lnptable =array("2c58719eb675c9ece8b332cbc9c022d7"=>"a1e05ee2564dbf16b04f09a23d482d06");
// i tu kolejne hashe
foreach ($lnptable as $key=>$value)
{
if ($login==$value&&$pass==$key)
{
print ("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=panel.php?login=".$login."&pass=".$pass."\">");
break;
}
else
{
}
}
?>[/php]
<?PHP
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$lnptable =array("2c58719eb675c9ece8b332cbc9c022d7"=>"a1e05ee2564dbf16b04f09a23d482d06");
// i tu kolejne hashe
foreach ($lnptable as $key=>$value)
{
if ($login==$value&&$pass==$key)
{
print ("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=panel.php?login=".$login."&pass=".$pass."\">");
break;
}
else
{
}
}
?>[/php]
Re: przegladanie tablicy o indeksach typu string
pardon, nie dziala. skrypt w tej postaci:
[php]
<html>
<head>
<?php
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$lnptable = array ("2c58719eb675c9ece8b332cbc9c022d7" => "a1e05ee2564dbf16b04f09a23d482d06");
foreach ($lnptable as $key => $value)
{
if ($login == $value && $pass == $key)
{
print ("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=panel.php?login=".$login."&pass=".$pass."\">);
break;
}
}
?>
</head>
<body>
<div align=center>
Logowanie w toku...
</div>
</body>
</html>
[/php]
i po pisaniu odpowiedniego loginu i hasla wypisuje parse error w linii 24.
[php]
<html>
<head>
<?php
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$lnptable = array ("2c58719eb675c9ece8b332cbc9c022d7" => "a1e05ee2564dbf16b04f09a23d482d06");
foreach ($lnptable as $key => $value)
{
if ($login == $value && $pass == $key)
{
print ("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=panel.php?login=".$login."&pass=".$pass."\">);
break;
}
}
?>
</head>
<body>
<div align=center>
Logowanie w toku...
</div>
</body>
</html>
[/php]
i po pisaniu odpowiedniego loginu i hasla wypisuje parse error w linii 24.
Re: przegladanie tablicy o indeksach typu string
Jakbys zrobil tak jak napisalem to by dzialalo...
a dokladniej chodzi mi o linijke 12, pomiedzy > a ) musisz dac "
Przez to wlasnie jest ten blad.
Proponuje abys zaczal robic w jakims programie ktory odpowiednio kod koloruje, wtedy latwo takie bledy wychwycic.
a dokladniej chodzi mi o linijke 12, pomiedzy > a ) musisz dac "
Przez to wlasnie jest ten blad.
Proponuje abys zaczal robic w jakims programie ktory odpowiednio kod koloruje, wtedy latwo takie bledy wychwycic.
Re: przegladanie tablicy o indeksach typu string
hmmm tak ten blad sam zauwazylem troszke wczesniej ale chodzi o to ze jest jeszcze jeden, dzieki ktoremu wartosc warunku jest false zamiast true, dzieki czemu cala petla nic nie robi, dzieki czemu metatag nie zostaje dopisany.
Re: przegladanie tablicy o indeksach typu string
u mnie to dziala dobrze, zreszta zobacz sam:
- tak to wyglada
- a tak dziala
Tylko zmienilem z _POST na _GET zeby mozna bylo podac dane linkiem.
Kod: Zaznacz cały
http://webmaster.ixadixa.site.pl/skrypty/php/logowanie1o.phpKod: Zaznacz cały
http://webmaster.ixadixa.site.pl/skrypty/php/logowanie1.phpTylko zmienilem z _POST na _GET zeby mozna bylo podac dane linkiem.
Re: przegladanie tablicy o indeksach typu string
To chyba idiotyzm, ale spróbuj ująć warunki w nawiasy:if((.........) && (........)) ........
Re: przegladanie tablicy o indeksach typu string
mala poprawka, niezdazylem wyedytowac mojego posta bo juz ktos cos powiedzial, wynik dzialania zobaczysz po wpisaniu takiego linka;
Kod: Zaznacz cały
http://webmaster.ixadixa.site.pl/skrypty/php/logowanie1.php?login=l&pass=p
Re: przegladanie tablicy o indeksach typu string
w morde jeza nic juz z tego nie kumam - skrypt sypie sie wtedy, kiedy wpisuje wlasne hashe - nie ma znaczenia jakie, tylko kiedy je zmieniam z tych co sa od "p" i "l" - to jest jakas paranoja - sprawdzalem chyba z 10 razy i jestem na 100% pewien ze hashe wprowadzam poprawnie. a hashy tez probowalem pare.
albo jest cos o czym nie wiem, albo mam jakis wybrakowany serwer, albo to jest jakis konspiracyjny spisek przegladarki i serwera...
albo jest cos o czym nie wiem, albo mam jakis wybrakowany serwer, albo to jest jakis konspiracyjny spisek przegladarki i serwera...
Re: przegladanie tablicy o indeksach typu string
problem juz rozwiazany.... wielkie dzieki dla Jakuba za pomoc i umozliwienie dojscia do bledu, ktorym bylo.... zamienienie wartosci $key i $value w warunku if miejscami ....
dobra to teraz mam jeszcze dwa pytania:
1) Jak zformulowac warunek zebym mogl cos tam wyswietlic jak mi podane haslo i login nie spasuja dla zadnych w tablicy?
2) Czy jest jakis prosty sposob aby uzyskac tylko indeks pozycji w tablicy znajac tylko nazwe tablicy i wartosc pozycji o szukanym indeksie ?
dobra to teraz mam jeszcze dwa pytania:
1) Jak zformulowac warunek zebym mogl cos tam wyswietlic jak mi podane haslo i login nie spasuja dla zadnych w tablicy?
2) Czy jest jakis prosty sposob aby uzyskac tylko indeks pozycji w tablicy znajac tylko nazwe tablicy i wartosc pozycji o szukanym indeksie ?
Re: przegladanie tablicy o indeksach typu string
Odpowiedź na pierwsze pytanie:
[php]<?php
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$lnptable
=array("2c58719eb675c9ece8b332cbc9c022d7"=>"a1e05ee2564dbf16b04f09a23d482d06");
// i tu kolejne hashe
$success=false;
foreach ($lnptable as $key=>$value)
{
if (($login==$key) && ($pass==$value))
{
$success=true;
if(!headers_sent())
{
header("Location: panel.php?login=".$login."&pass=".$pass);
exit;
}
else
{
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=panel.php?login=".$login."&pass=".$pass."\">";
break;
}
}
}
if(!$success)
die("Błędna nazwa użytkownika lub hasło");
?>[/php]
Odpowiedź na drugie pytanie:
[php]<?php
$i=0;
foreach($a as $k=>$v) if(($k==$x) && ($v==$y)) break; else i++;
if($i==count($a))
//Nie znaleziono takiego klucza...
else
//Klucz znaleziono, jegu numer jest w $i
?>[/php]
[php]<?php
$login = md5($_POST['login']);
$pass = md5($_POST['pass']);
$lnptable
=array("2c58719eb675c9ece8b332cbc9c022d7"=>"a1e05ee2564dbf16b04f09a23d482d06");
// i tu kolejne hashe
$success=false;
foreach ($lnptable as $key=>$value)
{
if (($login==$key) && ($pass==$value))
{
$success=true;
if(!headers_sent())
{
header("Location: panel.php?login=".$login."&pass=".$pass);
exit;
}
else
{
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=panel.php?login=".$login."&pass=".$pass."\">";
break;
}
}
}
if(!$success)
die("Błędna nazwa użytkownika lub hasło");
?>[/php]
Odpowiedź na drugie pytanie:
[php]<?php
$i=0;
foreach($a as $k=>$v) if(($k==$x) && ($v==$y)) break; else i++;
if($i==count($a))
//Nie znaleziono takiego klucza...
else
//Klucz znaleziono, jegu numer jest w $i
?>[/php]
-
Wojciech Kocjan
- Zaczyna działać

- Posty: 427
- Rejestracja: sob gru 14, 2002 10:51 am
Re: przegladanie tablicy o indeksach typu string
A czy nie lepiej zrobic to calkiem inaczej (prosciej):
[php]<?php
$login = $_POST['login'];
$pass = md5($_POST['pass']);
$lnptable=array();
$lnptable['login1']="hash1";
$lnptable['login2']="hash2";
if ($lnptable["$login"]=="$pass") {
// wyslij headera do panel.php
}
elseif (empty($lnptable["$login"])) {
echo 'Podany uzytkownik nie istnieje';
}
else {
echo 'Bledne haslo';
}
?>[/php]
A login i pass usera przechowuj w sesji, zamiast podawac do metoda GET w pliku panel.php - o wiele wygodniej.
[php]<?php
$login = $_POST['login'];
$pass = md5($_POST['pass']);
$lnptable=array();
$lnptable['login1']="hash1";
$lnptable['login2']="hash2";
if ($lnptable["$login"]=="$pass") {
// wyslij headera do panel.php
}
elseif (empty($lnptable["$login"])) {
echo 'Podany uzytkownik nie istnieje';
}
else {
echo 'Bledne haslo';
}
?>[/php]
A login i pass usera przechowuj w sesji, zamiast podawac do metoda GET w pliku panel.php - o wiele wygodniej.
Re: przegladanie tablicy o indeksach typu string
Geniusz w prostocie........ że też na to nie wpadłem 
