Powrót   Forum CDRinfo.pl > Różne > Off topic

Off topic Forum poświęcone wszelkim innym tematom.



Witaj Nieznajomy! Zaloguj się lub Zarejestruj

Zarejestrowani użytkownicy mają dostęp do dodatkowych opcji, lepszej wyszukiwarki oraz mniejszej ilości reklam. Rejestracja jest całkowicie darmowa!

Odpowiedz na post
 
Opcje związane z dyskusją Tryby wyświetlania
Stary 11.07.2006, 15:26   #1
gallus
gÓru
 
Avatar użytkownika gallus
 
Data rejestracji: 20.12.2003
Lokalizacja: Zbąszynek
Posty: 5,986
gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Łączenie skryptów php

hey

Mam mały problem posiadam dwa gotowe skrypty, które chciałbym umieścić w jednym pliku
Pierwszy skrypt odpowiada za logowanie do strony, a drugi za wyświetlanie katalogów/plików na serwerze problem jest taki, że jeżeli umieściłbym obydwa skrypty w różnych plikach to możliwe byłoby pominięcie logowania przez wpisanie adresu skryptu drugiego.
No i teraz pojawia się problem - jak połączyć obydwa skrypty tak aby znajdowały się w jednym pliku i przejście do przeglądana katalogów/plików było możliwe dopiero po wpisaniu prawidłowych danych

Skrypt 1
Kod PHP:
<?php
   
if (!isset($PHP_AUTH_USER)) {
      
header('WWW-Authenticate: Basic realm="Tajne miejsce"');
      
header('HTTP/1.0 401 Unauthorized');
      exit;
   } else if (isset(
$PHP_AUTH_USER)) {
      
$plik "/sciezka/do/hasla.txt";
      
$fp fopen($plik"r");
      
$zawartosc fread($fpfilesize($plik));
      
fclose($fp);

      
$linia explode("\n"$zawartosc);

      
$i 0;

      while(
$i <= sizeof($linia)) {
         
$dane explode(":"$linia***91;$i***93;);
         if ((
$dane***91;0***93; == "$PHP_AUTH_USER") && ($dane***91;1***93; == "$PHP_AUTH_PW")) {
            
$auth 1;
            break;
         } else {
            
$auth 0;
         }
         
$i++;
      }

      if (
$auth == "1") {
         echo 
"<p>Zalogowałeś się!</p>";
         exit;
      } else {

         
header('WWW-Authenticate: Basic realm="Tajne miejsce"');
         
header('HTTP/1.0 401 Unauthorized');
         echo 
'Brak dostępu';
         exit;
      }
   }
?>
Skrypt2
Kod PHP:
<?
/*
Directory Listing Script - Version 2
====================================
Script Author: Ash Young <ash@evoluted.net>. www.evoluted.net
Layout: Manny <manny@tenka.co.uk>. www.tenka.co.uk

REQUIREMENTS
============
This script requires PHP and GD2 if you wish to use the 
thumbnail functionality.

INSTRUCTIONS
============
1) Unzip all files 
2) Edit this file, making sure everything is setup as required.
3) Upload to server
4) ??????
5) Profit!

CONFIGURATION
=============
Edit the variables in this section to make the script work as
you require.

Start Directory - To list the files contained within the current 
directory enter '.', otherwise enter the path to the directory 
you wish to list. The path must be relative to the current 
directory.
*/
$startdir = '.';

/* .... wkleiłem tylko początek, jeżeli będzie potrzebne więcej to wkleję całość ;)
*/
__________________

gallus jest offline   Odpowiedz cytując ten post

  #ads
CDRinfo.pl
Reklamowiec
 
 
 
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
 

CDRinfo.pl is online  
Stary 11.07.2006, 15:37   #2
if22
:}
 
Avatar użytkownika if22
 
Data rejestracji: 18.04.2003
Posty: 427
if22 zaczyna zdobywać reputację <1 - 49 pkt>
A nie mo***380;na zrobi***263; jakiego***347; if-a ***380;eby dopiero po podaniu loginu i has***322;a wrzyca***322; do dalszej cz***281;***347;ci kodu.

if ( login == jestOK and pass == jestOK) {
i tutaj kod od uploadu
}
else {
b***322;***261;d
}


Da si***281; to zrobi***263; w dw***243;ch plikach, wrzucasz w pliku gdzie masz upload j***261;***347; zmienn***261; kt***243;r***261; ustawiasz w pliku z logowaniem i sprawdzasz j***261; w uploadzie czy jest poprawna, mo***380;na to zrobi***263; r***243;wnie***380; na sesjach.


php.net/docs
__________________
:}
if22 jest offline   Odpowiedz cytując ten post
Stary 11.07.2006, 15:46   #3
Bartez
Team Member
Zlotowicz
 
Avatar użytkownika Bartez
 
Data rejestracji: 18.10.2002
Lokalizacja: malopolska
Posty: 4,177
Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>
Kod:
<?php
   if (!isset($PHP_AUTH_USER)) {
      header('WWW-Authenticate: Basic realm="Tajne miejsce"');
      header('HTTP/1.0 401 Unauthorized');
      exit;
   } else if (isset($PHP_AUTH_USER)) {
      $plik = "/sciezka/do/hasla.txt";
      $fp = fopen($plik, "r");
      $zawartosc = fread($fp, filesize($plik));
      fclose($fp);

      $linia = explode("\n", $zawartosc);

      $i = 0;

      while($i <= sizeof($linia)) {
         $dane = explode(":", $linia[$i]);
         if (($dane[0] == "$PHP_AUTH_USER") && ($dane[1] == "$PHP_AUTH_PW")) {
            $auth = 1;
            break;
         } else {
            $auth = 0;
         }
         $i++;
      }

      if ($auth != "1") {

         header('WWW-Authenticate: Basic realm="Tajne miejsce"');
         header('HTTP/1.0 401 Unauthorized');
         echo 'Brak dostępu';
         exit;
      } 
   }
?>
A w drugim pliku na początku:
Kod:
require_once('sciezka/do/logowania.php');
Powinno zadziałać
__________________
Pozdrawiam
Bartez

Ranking dysków twardych
Bartez jest offline   Odpowiedz cytując ten post
Stary 11.07.2006, 16:42   #4
gallus
gÓru
 
Avatar użytkownika gallus
 
Data rejestracji: 20.12.2003
Lokalizacja: Zbąszynek
Posty: 5,986
gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Wielkie dzi***281;ki faktycznie dzia***322;a!
Niestety nie wiem dlaczego jest problem z logowaniem, tzn loguje si***281; tylko na ostatni na li***347;cie login/has***322;o - czyli np. wygl***261;da to tak
Cytat:
login1:haslo1
login2:haslo2
login3:haslo3
to dzia***322;a tylko na login3:haslo3 a na pozosta***322;e nie
__________________


Ostatnio zmieniany przez gallus : 11.07.2006 o godz. 16:44
gallus jest offline   Odpowiedz cytując ten post
Stary 11.07.2006, 17:58   #5
pawelblu
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP
 
Avatar użytkownika pawelblu
 
Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>
Mnie ciekawi dlaczego ta petla kreci sie od 0 do sizeof($linia) wlacznie, skoro $linia[sizeof($linia)] jest chyba poza zakresem (o ile to dziala tak jak w C).

Ja bym jeszcze na poczaku dal po $i=0; rowniez $auth=0, bo pewnie po naprawieniu warunku petli trzeba bedzie sie zabezpieczyc przed tym, ze petla sie nie obroci ani razu.

A dlaczego nie dziala - nie wiem. Moze break w php dziala jakos dziwnie

EDIT:
BTW - ten plik nie ma na koncu nowej linii? Bo jezeli tak, to tez Ci sie wywali pod koniec (jak petla nie odnajdzie hasla i dojdzie do konca).

EDIT2:
Hmm, a moze jeszcze sprawdz czy dobrze sie przekopiowaly klamerki ...

Ostatnio zmieniany przez pawelblu : 11.07.2006 o godz. 18:12
pawelblu jest offline   Odpowiedz cytując ten post
Stary 11.07.2006, 18:29   #6
gallus
gÓru
 
Avatar użytkownika gallus
 
Data rejestracji: 20.12.2003
Lokalizacja: Zbąszynek
Posty: 5,986
gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Forum chyba obcina ostatni***261; pust***261; linijk***281;, ale sam j***261; wstawi***322;em, a co do skopiowania to chyba wszystko ok...

Po dostawieniu po $i=0; $auth=0, pojawi***322;a si***281; jedynie bia***322;a strona
__________________


Ostatnio zmieniany przez gallus : 11.07.2006 o godz. 18:33
gallus jest offline   Odpowiedz cytując ten post
Stary 11.07.2006, 18:38   #7
pawelblu
Recydywista - Wielokrotny
Zlotowicz
CDRinfo VIP
 
Avatar użytkownika pawelblu
 
Data rejestracji: 17.01.2003
Lokalizacja: Wawa
Posty: 5,265
pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>pawelblu niedługo stanie się sławny ;) <50 - 149 pkt>
chodzilo mi o to czy plik /sciezka/do/hasla.txt nie ma na koncu nowej linii.

Tak czy inaczej powinno dzialac z tego co widze ...

EDIT... zreszta zeby zrobic debuggowanie to trzeba w roznych miejscach powypisywac na ekran rozne rzeczy, wiec powypisuj sobie w roznych miejscach wartosci roznych zmiennych i bedziesz wiedzial co jest nie tak.

Ostatnio zmieniany przez pawelblu : 11.07.2006 o godz. 18:43
pawelblu jest offline   Odpowiedz cytując ten post
Stary 14.07.2006, 22:31   #8
gallus
gÓru
 
Avatar użytkownika gallus
 
Data rejestracji: 20.12.2003
Lokalizacja: Zbąszynek
Posty: 5,986
gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Witam po raz kolejny
Ma mały problem ze skryptem, który napisałem po kilku godzinach spędzonych przy kursach php... skrypt ten ma porównywać login i hasło znajdujące się w bazie danych z danymi wprowadzanymi do formularza.
Niestety mój skrypt nie działa i wydaje mi się, że wiem dlaczego ale nie wiem jak to poprawić...

prawdopodobnie w poniższym fragmęcie tkwi błąd ponieważ karzę nim szukać w bazie danych ze zmiennych co chyba jest nie wykonalne... więc może zna ktoś jakiś lepszy sposób na porównanie tych danych?
Kod:
$user1 == "SELECT name FROM users WHERE name='$userA'";
$pass1 == "SELECT pass FROM users WHERE pass='$passA'";
Skrypt w całości...
Kod PHP:
<html>
<form method="POST" action="login.php">
    <p align="center"><input type="text" name="login" size="20"></p>
    <p align="center"><input type="text" name="pass" size="20"></p>
    <p align="center"><input type="submit" value="Prześlij" name="B1"></p>
</form>
</html>

<?
// !!! zaincludowac conectdb.php !!!
    $user="root";
    $pass="krasnal";
    $db="baza_plyt";
    mysql_connect("localhost", $user, $pass)
    or die('Polaczenie z baza nieudane');
    mysql_select_db($db)
    or die('Nie mogę wybrać bazy: '.mysql_error());


// Odczyt wyslanego loginu i hasla
$userA=$_POST***91;'login'***93;;
$passA=$_POST***91;'pass'***93;;

// Odczyt loginu i hasla z bazy
$user1 == "SELECT name FROM users WHERE name='$userA'";
$pass1 == "SELECT pass FROM users WHERE pass='$passA'";
mysql_query($user1);
mysql_query($pass1);


// sprawdzanie bledow MySQL
// w XXX podajesz zmienna ktora masz zamiar sprawdzic
// a w miejscu ZZZ tresc zapytania
/*
if (!$XXX=@mysql_query("ZZZ'"))
echo 'Bład zapytania MySQL, odpowiedź serwera: '.mysql_error();
else { }
*/



if(($userA=='$user1')&&($passA=='$pass1')) 
{echo ("bla bla bla OK");}
else{echo ("zle haslo");} 

mysql_close;
?>
Dzięki
__________________

gallus jest offline   Odpowiedz cytując ten post
Stary 15.07.2006, 00:00   #9
Bartez
Team Member
Zlotowicz
 
Avatar użytkownika Bartez
 
Data rejestracji: 18.10.2002
Lokalizacja: malopolska
Posty: 4,177
Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>Bartez jest świetnie znany wszystkim <550 - 649 pkt>
Kod PHP:
<html>
<form method="POST" action="login.php">
    <p align="center"><input type="text" name="login" size="20"></p>
    <p align="center"><input type="text" name="pass" size="20"></p>
    <p align="center"><input type="submit" value="Prze***347;lij" name="B1"></p>
</form>
</html>

<?
// !!! zaincludowac conectdb.php !!!
    $user="root";
    $pass="krasnal";
    $db="baza_plyt";
    mysql_connect("localhost", $user, $pass)
    or die('Polaczenie z baza nieudane');
    mysql_select_db($db)
    or die('Nie mog***281; wybra***263; bazy: '.mysql_error());


// Odczyt wyslanego loginu i hasla
$userA=$_POST***91;'login'***93;;
$passA=$_POST***91;'pass'***93;;

// Odczyt loginu i hasla z bazy
$user1 == "SELECT name,pass FROM users WHERE name='{$userA}' AND pass='{$passA}'";
$query = mysql_query($user1);

//sprawdzamy, czy zapytanie zwrocilo jakis wynik (powinien byc 1 rekord)
if(mysql_num_rows($query) > 0)
{
//    Login i/lub haslo poprawne, zrob cos
}
else
{
    //login i/lub haslo bledne
}


mysql_close();
__________________
Pozdrawiam
Bartez

Ranking dysków twardych
Bartez jest offline   Odpowiedz cytując ten post
Stary 15.07.2006, 00:28   #10
gallus
gÓru
 
Avatar użytkownika gallus
 
Data rejestracji: 20.12.2003
Lokalizacja: Zbąszynek
Posty: 5,986
gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>gallus jak się przyłoży ma szansę zostać specem <150 - 249 pkt>
Jeszcze co***347; nie gra...
Cytat:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\test\login.php on line 29
a baza w PhpMyAdmin-ie wygl***261;da tak
__________________

gallus jest offline   Odpowiedz cytując ten post
Odpowiedz na post


Twoje uprawnienia:
Nie możesz rozpoczynać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz umieszczać załączników
Nie możesz edytować swoich postów

BB codeWłączone
EmotikonkiWłączone
Kody [IMG]Włączone
Kody HTML są Wyłączone

Teleport


Wszystkie czasy w strefie CET. Aktualna godzina: 08:06.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.