Domanda veloce. C'è una differenza traPHP true & 'true' difference
$success = true;
e
$success = 'true';
so che non e '==
' sono gli uni agli altri, ma c'è una differenza nel loro utilizzo?
MODIFICA: ho trovato che usare '===' invece di '==' quando si vede se $ successo è falso risolto il mio problema. La mia domanda ora è che dovrei usare le stringhe in un caso come il seguente, e continuare con "=="?
$User->ProcessLogin();
$loginsuccess = $User->ProcessLogin();
if ($loginsuccess == true) {
echo "<big>Success<big><br />";
echo "<p>We are now redirecting you to the member area.</p>";
echo "<meta http-equiv='refresh' content='=2;MyAccountNEW.php' />";
}
elseif ($loginsuccess == false) {
echo "<span class='sorry'><b>Sorry, your account could not be found.</span></b><div id='shopperlogin'> <img class='shopperlogintext' src='images/shopperlogin.png'>
<br />
<form method='post' action='loginNEW.php' name='loginform' id='loginform'>
<fieldset>
<label for='username'>Username:</label><input type='text' name='username' id='username' /><br />
<label for='password'>Password:</label><input type='password' name='password' id='password' /><br />
<input type='submit' name='login' id='login' value='Login' />
</fieldset>
</form></div>";
}
Ecco una parte della classe ..
function ProcessLogin() {
if (!empty($_POST['username']) && !empty($_POST['password'])) {
$username = mysql_real_escape_string($_POST['username']);
$password = md5(mysql_real_escape_string($_POST['password']));
$checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");
if(mysql_num_rows($checklogin) == 1)
{
$row = mysql_fetch_array($checklogin);
$email = $row['EmailAddress'];
$_SESSION['Username'] = $username;
$_SESSION['EmailAddress'] = $email;
$_SESSION['LoggedIn'] = 1;
$this->loggedin = true;
$success = true;
}
else {
$success = false;
}
return $success;
}
}
Puoi tenerlo molto più semplice poiché ti interessa solo se lo stato login è impostato, e non importa a che cosa è impostato. Il var $ loginsuccess sarà sempre vuoto di default, a meno che non venga restituito qualcosa (qualunque). Quindi, nella funzione ProcessLogin(), semplicemente "return true;" invece di usare la variabile $ successo. Quindi prova per: if ($ loginsuccess) {// great, ha funzionato} else {// fail}.È inoltre preferibile utilizzare il modulo originale, invece di emettere lo stesso modulo in caso di errore con codice duplicato. Quindi, quando è necessario modificare qualcosa, è sufficiente correggere il modulo originale/singolo. – Alec