Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tablica
Forum PHP.pl > Forum > Przedszkole
zdandro
Witam wszystkich.

Mam wrecz banalne pytanie - mowie od razu smile.gif Banalne dla tych, ktorzy znaja odpowiedz... A wiec chodzi o tablice - znane sa mi petle for, foreach itd... i uzywanie ich jest banalnie proste. Jednak to nie dziala.

A wiec mam taka tablice:
  1. $_array = $array ("exp1"=>"content1",
  2. "exp2"=>"content2" );

Jest sporo funkcji szukajacych podanych wyrazen w tablicy (in_array, array_key_exists itp...)

A wiec mam wyrazenie:
  1. $_expression = array_key_search("exp1", $_array);

Zwraca to exp1 z tablicy - jak na tej podstawie okreslic zawartosc pola "obok" (content1)?

Dzieki za kazda odpowiedz

nospor
Nie ma takiej metody jak array_key_search() smile.gif


Może napisz słowami co chcesz zrobic
wiiir
nie rozumiem co masz na mysli "pole obok" i nie wiem jak działa twoja funkcja "array_key_search" bo z taka w php sie nie spotkalem Oo
zdandro
Sorry, ale napisalem to w pospiechu, pozniej napisalem poprawnie nazwe funkcji: array_key_exists($key, $searcharray) a nie array_key_search.


A pole "obok" to zawartosc tablicy node + 1:

                 node1 node2

$array = desc1 content1
              desc2 content2



Jak wiec majac desc1 odczytac zawartosc content1...
sazian
  1. $_expression=(isset($_array['exp1']))?$_array['exp1']:NULL;

o to chodzi questionmark.gif
wookieb
  1. $_array = array("exp1"=>"content1",
  2. "exp2"=>"content2" );
  3.  
  4. $keys = array_keys($_array);
  5. $key = array_search('exp1', $keys);
  6. if ($key !== false) {
  7. $key++;
  8. echo $keys[$key];
  9. }
zdandro
Niestety nie... Zgodnie z tym co napisales pobiera wartosc noda wyzej o 1 (nastepny wiersz):
  1. $_array = $array ("exp1"=>"content1",
  2. "exp2"=>"content2" );


Podajac za exp wartos exp1 zrwoci exp2 a nie content1 (co powinien)
wookieb
Dude my się nie rozumiemy :/
  1. $_array['exp1'];

zdandro
hehehe, teoretycznie tak:) a praktycznie nie wiem jak sie do tego zabrac - odpadaja petle (jezeli je zastosuje aplikacja nie dziala jak powinna) wiec musi to byc oparte na statycznym algorytmie
sazian
ale co ci nie działa questionmark.gif
pokarz jakiś konkretny niedziałający kod
zdandro
Dobra - sami tego chcieliscie:)
A wiec mam formularz html:
  1. <form action="Logmein.php" method="POST" enctype="content/type">
  2. <div id="logoCntcForm"><img src="/Img/Logo.png"/></div>
  3. <div id="writingLogo"></div>
  4. <div style="padding-top: 25px; padding-left:25px;"><img src="../Img/enterPass.png" /></div>
  5. <input id="inputLogin" type="password" name="Passwd" size="7" /><br />
  6. <input id="Submit_login" type="image" src="/Img/submitCntc.png" onclick="return check_login(this.form);" />
  7. </form>


Teraz skryt Logmiein.php
  1. require($_SERVER["DOCUMENT_ROOT"] . "/MainFiles/essential.inc.php");
  2.  
  3. $password = $_POST["Passwd"];
  4.  
  5. if ( !isset($password) )
  6. {
  7. include 'MainFiles/wrongPass.inc.php';
  8. }
  9. elseif ( empty($password) )
  10. {
  11. include 'MainFiles/wrongPass.inc.php';
  12. }
  13. else
  14. {
  15. include("MainFiles/essential.inc.php");
  16.  
  17. foreach( $login as $pwd => $dir )
  18. {
  19. if ( $pwd == $_POST['Passwd'] )
  20. {
  21. $res1 = 1;
  22. }
  23. else
  24. {
  25. $res = 9999; // set a value to 9999 (number of nodes in an xml file)
  26. }
  27. }
  28. if ( $res1 == 1 )
  29. {
  30. setcookie( "visit",md5( $password ), time()+1200 );
  31. header("Location: $serverName$dir");
  32. }
  33.  
  34. if ( $res == 9999 ) //
  35. {
  36. include 'MainFiles/wrongPass.inc.php';
  37. }
  38.  
  39. }


Ten plik odpowiada ze pzreniesienie uzytkownika zgodnie z podanym haslem z pliku essential.inc.php:

  1. $serverName = "http://127.0.0.1/";
  2. $login = array ('sk13'=> 'clients/sa/',
  3. 'stev16'=>'clients/ste/',
  4. 'bar24'=>'clients/bart/',
  5. 'grta294'=>'clients/gran/',
  6. 'es16'=>'clients/eas/');


I to DZIALA. Ustawia plik cookie jak nalezy z wartoscia md5(haslo).

Teraz plik index.php dla poszczegolnego katalogu:
  1. <?php
  2.  
  3. require($_SERVER["DOCUMENT_ROOT"] ."/MainFiles/essential.inc.php");
  4.  
  5. $cookie = $_COOKIE['visit'];
  6.  
  7. foreach ( $login as $getPassFile=>$passMd5 )
  8. {
  9. $md5Var = md5($getPassFile);
  10.  
  11. if ( $md5Var == $cookie )
  12. {
  13. $result = 1;
  14. }
  15. else
  16. {
  17.  
  18. }
  19. }
  20.  
  21. if ( $result == 1 )
  22. {
  23. ?>
  24.  
  25. Secret Content of the page
  26.  
  27. <?php
  28. }
  29. else
  30. echo "get lost";
  31. ?>


I teraz dziala tylko dla 1 uzytkownika (sk13) bo pozniej zgodnie z dzialaniem petli wartosc $pwd jest zmienna i raz zgadza sie ze wzorcem a raz nie i skrypt glupieje.
Mam nadzieje ze zrozumiale to napisalem ;/
sazian
dziwny ten twój kod biggrin.gif
Cytat(zdandro @ 20.10.2010, 15:45:56 ) *
  1. foreach( $login as $pwd => $dir )
  2. {
  3. if ( $pwd == $_POST['Passwd'] )
  4. {
  5. $res1 = 1;
  6. }
  7. else
  8. {
  9. $res = 9999; // set a value to 9999 (number of nodes in an xml file)
  10. }
  11. }
  12.  

a nie wystarczy sprawdzić tego if'em questionmark.gif
  1. if(isstet($login[$_POST['Passwd']])){
  2. $res1 = 1;
  3. $dir=$login[$_POST['Passwd']];
  4. }
  5. else
  6. {
  7. $res = 9999;
  8. $dir='';
  9. }
  10.  

zdandro
Moze i dziwny. Na poczatku byl inny ale pozniej zaczalem go rozbudowywac/dodawac/odejmowac funkcje i to jest to co z niego pozostalo worriedsmiley.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.