Forum CDRinfo.pl

Forum CDRinfo.pl (https://forum.cdrinfo.pl/)
-   Off topic (https://forum.cdrinfo.pl/f5/)
-   -   Łączenie skryptów php (https://forum.cdrinfo.pl/f5/laczenie-skryptow-php-66517/)

gallus 15.07.2006 00:28

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
http://img206.imageshack.us/img206/8022/sql7ph.png

Bartez 15.07.2006 00:00

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();


gallus 14.07.2006 22:31

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 :)

pawelblu 11.07.2006 18:38

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.

gallus 11.07.2006 18:29

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 ;)

pawelblu 11.07.2006 17:58

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 ...

gallus 11.07.2006 16:42

Wielkie dzi***281;ki :piwo: 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 :|

Bartez 11.07.2006 15:46

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ć ;)

if22 11.07.2006 15:37

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

gallus 11.07.2006 15:26

Łą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($fp, filesize($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ść ;)
*/



Wszystkie czasy w strefie CET. Aktualna godzina: 09:48.

Powered by vBulletin® Version 3.9.0 LTS
Copyright ©2000 - 2026, vBulletin Solutions Inc.