pawel5251
31.10.2017, 22:59:52
Witam , mam mały dość irytujący problem z if'em , mianowicie odbieram wartości od ajaxa ze skryptow php i robie sprawdzenie aby wstawic odpowiednie wartosci w diva pomimo spelnienia warunku if wywala zawsze else. Robilem debug w konsoli i poprzez alert.
if (msg === "zalogowano") {
$("#login-message").html('<div class="alert alert-success">Zalogowano pomyślnie!</div>');
} else {
$("#login-message").html('<div class="alert alert-danger">Niepoprawne dane logowania bądź konto nie zostało jeszcze aktywowane!</div>');
}
Pomimo tego że w konsoli widnieje "zalogowano" to i tak dostaje else. Ma ktoś jakiś pomysł ? Z góry dzięki
trueblue
31.10.2017, 23:08:16
A nie umieszczasz czasem tego warunku poza wywołaniem Ajaxa? Czyli nie wywołuje się kiedy żądanie ajaxowe odniesie sukces, lecz poza nim.
pawel5251
31.10.2017, 23:28:58
Nie , ajax dostaje odpowiedź od skryptu php i w funkcji success mam to sprawdzenie i tylko tam
To wygląda dosłownie tak jak by if nie ogarniał że ma spełniony warunek jak dla mnie
viking
31.10.2017, 23:49:21
W linii przed ifem daj console.log(msg) i podaj wynik.
pawel5251
1.11.2017, 09:44:41
Tak jak już mówiłem, jak dam console.log przed ifem to dostaje z php poprawne wartości albo success albo error w zależności od tego czy podalem poprawne dane logowania czy nie. Tak samo po warunkach console log ma dobre wartości , cos jest nie tak w samym if'ie czego totalnie nie ogarniam
viking
1.11.2017, 09:48:24
Wklej te wartości albo daj screena.
trueblue
1.11.2017, 09:48:31
A wartość msg nie ma czasem spacji lub jakiegoś białego znaku?
pawel5251
1.11.2017, 20:32:06
loginController.php
class formController{
public static function userLogin
($userLogin,$pass){ $userPass= sha1
(md5($pass));
$dbcon = pageController::dbcon();
mysqli_set_charset($dbcon,"utf8");
$checkLogin = $dbcon->query("SELECT * FROM users WHERE login='$userLogin' AND password = '$userPass'");
if($checkLogin->num_rows==1){
$_SESSION['loggedIn'] = $userLogin;
return "zalogowano";
}
else{
return "error";
}
}
public static function userRegister
(){
}
public static function userPassForgot
(){
}
}
?>
handler.php
<?php
require_once($_SESSION['maindir']. 'controller\loginController.php');
include_once($_SESSION['maindir']. 'controller\engineController.php');
$lrc = new formController();
if($_POST['form']=='loguj'){
echo $lrc->userLogin($_POST['login'],$_POST['haslo']); }
?>
Screen ze strony po kliknięciu w zaloguj :

console.log przed if'em , alert w else
lepsza rozdzielczosc zdjecia :
https://image.ibb.co/mQNAAw/Przechwytywanie.png
trueblue
1.11.2017, 20:52:14
Wygląda na to, że jednak wpuszczasz biały znak - enter przed stringiem.
pawel5251
1.11.2017, 20:59:33
A możesz jeszcze wytłumaczyć w którym miejscu go wpuszczam ? Bo ja tego ni cholery nie ogarniam
trueblue
1.11.2017, 21:03:01
Tego nie wiem, ale jeśli w konsoli nic więcej drukujesz, to tak to wygląda.
Pokaż dla pewności wynik w konsoli z:
console.log(JSON.stringify(msg));
pawel5251
1.11.2017, 21:06:50
Faktycznie wstawia \r\n przed zalogowano tylko nie mam pojęcia dlaczego

Lepsza rozdzielczosc :
https://image.ibb.co/bVn8fw/Przechwytywanie.png
trueblue
1.11.2017, 21:11:48
W pliku handler.php lub innym masz prawdopodobnie enter przed otwarciem <?php
pawel5251
1.11.2017, 21:28:02
Problem w tym że właśnie w żadnym z plików includowanych i używanych w logowaniu nie ma entera przed rozpoczęciem znaczników php ale nadal szukam gdzie mogl sie wcisnac ten enter
Pyton_000
1.11.2017, 21:37:46
przenos session_start() po każdym include i odpalaj skrypt. Jak dostaniesz błąd że headers sent to szukaj w tym pliku
PS. W plikach PHP nie zaleca się zamykania plików przez ?> (właśnie przez to m.in mogą pojawiać się takie kwiatki
pawel5251
1.11.2017, 21:40:16
Kolega wyżej zniszczył mi mózg , usunięcie zakmnięć ?> rozwiązało problem. Do zamknięcia , koledze browara stawiam
Pyton_000
1.11.2017, 21:44:20
Ja chyba w stopkę zacznę wypisywać kto mi borwary wisi
Spoko że pomogło. Czasami banalne rozwiązania daja najwięcej.
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.