Strona 1 z 1

przegladanie tablicy o indeksach typu string

: ndz sty 11, 2004 4:48 pm
autor: Dreen
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

Re: przegladanie tablicy o indeksach typu string

: pn sty 12, 2004 11:26 am
autor: Cobretti
[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

: pn sty 12, 2004 3:17 pm
autor: Dreen
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.

Re: przegladanie tablicy o indeksach typu string

: pn sty 12, 2004 6:58 pm
autor: Cobretti
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.

Re: przegladanie tablicy o indeksach typu string

: pn sty 12, 2004 7:40 pm
autor: Dreen
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

: pn sty 12, 2004 8:04 pm
autor: Cobretti
u mnie to dziala dobrze, zreszta zobacz sam:

Kod: Zaznacz cały

http://webmaster.ixadixa.site.pl/skrypty/php/logowanie1o.php
- tak to wyglada

Kod: Zaznacz cały

http://webmaster.ixadixa.site.pl/skrypty/php/logowanie1.php
- a tak dziala

Tylko zmienilem z _POST na _GET zeby mozna bylo podac dane linkiem.

Re: przegladanie tablicy o indeksach typu string

: pn sty 12, 2004 8:22 pm
autor: wixor
To chyba idiotyzm, ale spróbuj ująć warunki w nawiasy:if((.........) && (........)) ........

Re: przegladanie tablicy o indeksach typu string

: pn sty 12, 2004 8:31 pm
autor: Cobretti
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

: pn sty 12, 2004 8:47 pm
autor: Dreen
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...

Re: przegladanie tablicy o indeksach typu string

: śr sty 14, 2004 6:40 pm
autor: Dreen
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 ?

Re: przegladanie tablicy o indeksach typu string

: czw sty 15, 2004 5:00 pm
autor: wixor
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]

Re: przegladanie tablicy o indeksach typu string

: czw sty 15, 2004 5:43 pm
autor: Wojciech Kocjan
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.

Re: przegladanie tablicy o indeksach typu string

: pt sty 16, 2004 5:10 pm
autor: wixor
Geniusz w prostocie........ że też na to nie wpadłem :cry: