If ...else..do nothing... php

TerraX10

Mitglied
Hi,

Hab mal eine kleine frage^^
Ich hab ne kleine abfrage gemacht in der ich überprüfe wann die einzelnen user ihre passwörter das letzte mal geändert haben und wann sie es wieder tun müssen...

Nun zu meinem problem...
Wenn die Abfrage eingeschaltet ist wird der user dessen passwort zu alt ist eben dazu gezwungen sein passwort zu ändern... und wenn in der Datenbank noch kein eingetragens Datum für einen user drinn steht (standart : 0000-00-00 00:00:00) benutzt er das eben genannte datum und will das der user sein passwort ändert... Das aber möchte ich VERMEIDEN...

Gibt´s nicht in php irgend nen befehl das wenn die spalte "null" ist, die abfrage ignoriert wird?
Hier mein script ....
PHP:
$strtotime1 = strtotime ("now");
$strtotime2 = strtotime($AppUI->user_pass_date);

	 $result = ($strtotime1 - $strtotime2)/(3600*24);


$var = $_GET["a"];

	if ($var != "chpwd"){
				
		if ($result >= dPgetSysVal('PasswordIntervall')){
			header("Location: http:// test.project.com/a=chpwd");
			exit();

		}
	}
 
Normale Vergleiche mit NULL sind immer FALSE

NULL == NULL
ergibt FALSE

PHP:
if(is_null($variable)){
     //TODO: Im Fall von NULL
}
 
Kannst du nicht das Alter bereits bei der SQL Abfrage mit datediff ermitteln

SQL:
SELECT datediff(now(), dein_datum) AS alter_pwd FROM deine_tabelle

und den IF-Block mit diesem Wert füttern!?
 
Zuletzt bearbeitet:
wie genau meinst das jetz tombe?

Eigentlich wollte ich nur fragen obs einfach was gibt, womit das wenn meine spalte "NULL" ist einfach nicht zum Passwort ändern gezwungen wird.. z.b irgendwie so..

PHP:
if ($result >= 9000000000){
			header("Location: http://dotproject.lotas.de/index.php?m=public&a=chpwd&dialog=1&user_id=");
			exit();

			 if ($strtotime2 == NULL ){
				do nothing 

                    }
 
Okay hab ne ganz einfache Lösung gefunden...

Trotzdem danke


Wens intressiert:

PHP:
	if ($AppUI->user_pass_date == "0000-00-00 00:00:00")
				{
				//Do Nothing
				}
				
				else if ($result >= 90 ) {
				header("Location: http://dotproject.test.com/index.php?a=chpwd");
				exit();
		}

sowas meinte ich :D
 
Zuletzt bearbeitet:
Hi,

So vllt:
PHP:
if($variable == NULL) {
  
}

auf null wird immer mit '===' geprüft! Dieser Operator bewirkt, dass auch der Datentyp gleich sein muss. Denn
  1. null zeigt an, dass die Variable keinen Wert besitzt. Die 0 (Null als Zahl) oder ein leerer String bzw. leeres Array ist ein Wert.
  2. PHP Castet null in den jeweils anderen Datentyp.

Folgende Bedingungen ergeben true, auch wenn die Variablen nicht null sind!
PHP:
$string = "";
$int = 0;
$float = 0.0e10;
$array = array();

if ($string == null) {
    echo "\$string ist null!? ";
    if ($string === null) {
        echo "Ja!";
    } else {
        echo "Nein!";
    }
    echo "\n";
}
if ($int == null) {
    echo "\$int ist null!? ";
    if ($int === null) {
        echo "Ja!";
    } else {
        echo "Nein!";
    }
    echo "\n";
}
if ($float == null) {
    echo "\$float ist null!? ";
    if ($float === null) {
        echo "Ja!";
    } else {
        echo "Nein!";
    }
    echo "\n";
}
if ($array == null) {
    echo "\$array ist null!? ";
    if ($array === null) {
        echo "Ja!";
    } else {
        echo "Nein!";
    }
    echo "\n";
}
/*
 * Ausgabe:
 * $string ist null!? Nein!
 * $int ist null!? Nein!
 * $float ist null!? Nein!
 * $array ist null!? Nein!
 */

Die Variablen sind zwar leer bzw. beinhalten 0 (Null als Zahl), sind aber dennoch nicht null.

NULL == NULL
ergibt FALSE

In PHP ergibt das immer true. In MySQL ergäbe das NULL.

Mehr Informationen dazu sind im PHP-Handbuch im Absatz Vergleichs-Operatoren zu finden.

Gruß Kyôya Stefan
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück