UI dialog, a efekt 'shake'. Czy jedno z drugim idzie w parze ?

0

Witam,

mam taki kod, niedługi oraz postarałem się napisać jak najprzejrzyściej:
http://jsfiddle.net/mYJuU/10/
a tu log.php

$polaczenie=mysql_connect("localhost","root",""); /* Nawiązanie połączenia z bazą */
mysql_select_db("example",$polaczenie); /* Wybranie odpowiedniej bazy danych */

$login = $_POST['login'];
$haslo = $_POST['haslo'];


$query=("SELECT * FROM `uzytkownicy` WHERE `login` ='$login' AND `haslo` = '$haslo' ") or die('zle zap');
$ile = mysql_query($query);


if (mysql_num_rows($ile) > 0){                        
   echo 1;//$login.'ZALOWOWANY'.$haslo;                                
}
else{
  echo 0;//'niezalogowany';
}

Problem jest tego typu, że skrypt strasznie powoli działa :/ jak wpiszę błędne dane do logowania to mija ponad 1 sek (około 1,06sek) i dopiero działą effect: "shake". To jest wyjątkowo za długo :( Jak usuwam funkcję $.post() i dodaję zmienną

var zmienna =1; //lub 0

to skrypt działa błyskawicznie :) W czym może leżeć problem ? Proszę o poradę :( Może źle stosuję efekt 'shake'

Czy może lepiej użyć metody tj. .show() ??

1

Mam nadzieję, że jakoś te dane z formularza post walidujesz, prawda? A hasło jest haszowane, tak?
Inaczej można wpisać w pole hasła np.' OR id=1 -- lub coś podobnego i boom.
Btw, a problem jest pewnie w tym, że serwer tak powoli odpowiada...

0

To nie jest żaden problem :p Na razie uczę się jQuery, a nie PHP ;) także olewam SQL Injection i md5 (czemu? a bo nie w tym rzecz)

0

Sprawdzenie hasła tyle trwa. Z tego co widze stosujesz efekt, jeżeli hasło jest niepoprawne. No ale ono nie sprawdzi Ci się natychmiast po pacnięciu przycisku potwierdzającego - request leci do serwera, tam się sprawdza, zwraca wynik.
A czemu tak długo przetwarza Ci się zapytanie po stronie serwera - nie wiem, ale tym się zajmij.

0

Zobaczcie: http://turystyczne-suwalki.pl/log/

Faktycznie, macie rację :/ przerzuciłem teraz na OVH i zobaczcie sami.

Zainstalowałem windows 8 + XAMPP jest możliwe, że taka mieszanka może zwalniać działanie apache ?

1

Wklej to na początek pliku, który obsługuje żądanie:

class debug {
    private $i = 0;
    private $time = 0;
    public function __construct() {
        $this->time=microtime(true);
    }
    public function point() {
        $i = ++$this->i;
        $time = round(microtime(true) - $this->time,4);
        echo "Punkt nr: #$i, czas: $time\n";
    }
}

$oDebug = new debug();

Potem co parę linii wklejaj to:

$oDebug->point();

W javascripcie zaraz po otrzymaniu żądania zrób sobie alert(data); i zobacz co Ci tam wyszło - sprawdź, czy w którymś kroku nie zauważysz dużej różnicy w czasie. Sprawdź też ile łącznie się skrypt wykonuje (czyli test z ostatniej linijki) - wartość 0.1 np. to już dużo.
Sprawdź też (to już "na czuja", ew debuggerem typu Firebird) czy trwa to długo, jeżeli w Twoim pliku obsługującym żądanie będzie na samym początku die('0');.
Jeżeli nawet na die('0'); będzie wolno - spróbuj przygotować czysty plik HTML, w którym będzie jeden znak - 0, i w javascript zmień ścieżkę. W ten sposób sprawdzisz czy to ogólnie sam tryb PHP nie wywołuje takich problemów.

A ja oczywiście napiszę, że absolutnie ODRADZAM zawsze i wszędzie korzystanie z paczek serwerów (typu XAMPP) - pojęcie o konfiguracji serwera warto mieć, a instalując paczkę Cię to nie interesuje, w dodatku paczki często sprawiają dziwaczne problemy i ogólnie mają tendencje do działania dość losowego.

0
dzek69 napisał(a):

Wklej to na początek pliku, który obsługuje żądanie:
A ja oczywiście napiszę, że absolutnie ODRADZAM zawsze i wszędzie korzystanie z paczek serwerów (typu XAMPP) - pojęcie o konfiguracji serwera warto mieć, a instalując paczkę Cię to nie interesuje, w dodatku paczki często sprawiają dziwaczne problemy i ogólnie mają tendencje do działania dość losowego.

Czyli co najlepiej zrobić w takim przypadku ?? Zainstalować np Ubuntu i na nim postawić realny serwer ? Czy masz coś zupełnie innego na myśli ?

Lub Windows : http://forum.dobreprogramy.pl/howto-apache-php-mysql-t372118.html

To masz na myśli ? tak?

0

Tak, zainstalować na Windows MySQL (z instalki jest ok), potem Apache 2.2 (z instalki), potem PHP (z ZIPa, wybrać wersję thread-safe, instalować np. w C:\php), poczytać o konfiguracji tego wszystkiego właśnie z tutoriali (unikaj jednak tych co każą przenosić plik php.ini do C:\Windows -- bez sensu) oraz konfiguracji dot. bezpieczeństwa (wszelakie magic quotes i inne badziewia od razu wyłączamy, jeżeli jakimś prawem były włączone). Uwaga - nie jest to takie proste jak zainstalowanie paczki, ale odpłaci się w przyszłości.

Póki co - badaj temat co u Ciebie zawadza. Chyba, że Ci to nie przeszkadza, że lokalnie zmula.

0

Przetestowałem tak jak pisałeś, wychodzi na to, łączenie się z bazą danych tyle trwa, próbowałem tak i tak i tyle samo czasu zabiera samo łączenie :/ Czyli chyba wina XAMPPa ??

 
$polacz = new mysqli("localhost", "root", "", "suwalki");
 die('0');
$polaczenie=mysql_connect("localhost","root",""); 
0

Bawiłem się XAMPPem nic nie udało mi się zrobić, instaluję Apache/PHP/MySQL. Mam nadzieję, że się uda

0

Jeszcze mam takie pytanie. Czy ogólnie taki dialog do logowania jest dobry ?? Ponieważ raz, że boję się, że ktoś mój skrypt może zostać zaatakowany np XSS czy CSRF, czy same przesyłanie żądanie nagłówka w Ajaxie ?? ale tu coś znalazłem w google i myślę, że poradzę sobie. A dwa mam problem teraz z tym dialogiem, tego typu, że nie wiem jak napisać logowanie, a dokładnie jak przekierować na inną podstronę po zalogowaniu się user'a ?? zawsze używałem

 
if($log == "admin"){
 header("location: admin.php");
}else{
 header("location: user.php");
}

Jednak jeśli używam do logowania jQuery i zapytanie idzie przez ajax'a do bazy danych to skrypt w pliczku php sprawdza mi czy dana osoba jest w bazie i czy pasuje hasło, ale nie przekieruje usra na inną podstronę, jedynie może dać zwrócony kod przez echo

0
header();

już mam z głowy :) jednym zapytaniem do google załatwiła sprawę :)

window.location = 'panel.php'; 

, zaraz jeszcze zabezpieczę kod przed atakami i mam w ładnym stylu napisany system logowania, który jest zalążkiem mojego projektu :) Może będzie trzeba wrzucić gotowe rozwiązanie na forum do oceny :) pozdrawiam i dziękuję za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1