tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 2 Beitrag von Kyôya
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
451
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    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-Code:
    $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();

            }
        } 
     

  2. #2
    jannicars jannicars ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    219
    So vllt:
    PHP-Code:
    if($variable == NULL) {
      

    Wenn die Variable leer ist sonst noch
    PHP-Code:
    if(empty($variable)) {


     

  3. #3
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Normale Vergleiche mit NULL sind immer FALSE

    NULL == NULL
    ergibt FALSE

    PHP-Code:
    if(is_null($variable)){
         
    //TODO: Im Fall von NULL

     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  4. #4
    Avatar von tombe
    tombe tombe ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2004
    Ort
    Möglingen (BaWü)
    Beiträge
    3.109
    Kannst du nicht das Alter bereits bei der SQL Abfrage mit datediff ermitteln

    Code sql:
    1
    
    SELECT datediff(now(), dein_datum) AS alter_pwd FROM deine_tabelle

    und den IF-Block mit diesem Wert füttern!?
    Geändert von tombe (14.12.11 um 16:34 Uhr) Grund: Alias geändert.
     
    Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.

    Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.

  5. #5
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Zitat Zitat von Yaslaw Beitrag anzeigen
    Normale Vergleiche mit NULL sind immer FALSE

    NULL == NULL
    ergibt FALSE
    Habe ich dich jetzt falsch verstanden?
    NULL == NULL ergibt doch immer true.
    Test: http://codepad.org/Bzo4yerK
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  6. #6
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    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-Code:
    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 

                        

     

  7. #7
    TerraX10 TerraX10 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    63
    Okay hab ne ganz einfache Lösung gefunden...

    Trotzdem danke


    Wens intressiert:

    PHP-Code:
        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
    Geändert von TerraX10 (14.12.11 um 18:00 Uhr)
     

  8. #8
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Zitat Zitat von ComFreek Beitrag anzeigen
    Habe ich dich jetzt falsch verstanden?
    NULL == NULL ergibt doch immer true.
    Test: http://codepad.org/Bzo4yerK
    Vielleicht war er gerade bei SQL

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    mysql> SELECT if(NULL = NULL, 'ja', 'nein');
    +-------------------------------+
    | if(NULL = NULL, 'ja', 'nein') |
    +-------------------------------+
    | nein                          |
    +-------------------------------+
    1 row in set (0.00 sec)
     

  9. #9
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    Hi,

    Zitat Zitat von jannicars Beitrag anzeigen
    So vllt:
    PHP-Code:
    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-Code:
    $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.

    Zitat Zitat von Yaslaw Beitrag anzeigen
    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
    Geändert von Kyôya (14.12.11 um 22:29 Uhr)
    ComFreek und jannicars bedanken sich. 
    Oracle Certified MySQL 5 Professional Developer
    Zend Certified PHP 5.3 Engineer

    Vorträge, Webinare, etc im Mayflower - Blog

  10. #10
    jannicars jannicars ist offline Mitglied Gold
    Registriert seit
    Jun 2011
    Beiträge
    219
    Zitat Zitat von Kyôya Beitrag anzeigen
    Hi,

    Zitat Zitat von jannicars Beitrag anzeigen
    So vllt:
    PHP-Code:
    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.
    Und täglich lernt man was neues, danke Dir!
     

  11. #11
    Fragenfrager Fragenfrager ist offline Mitglied Bronze
    Registriert seit
    Apr 2007
    Beiträge
    46
    Nachtrag:
    Mit dem Eintrag
    SET ANSI_NULLS OFF
    vor der Abfrage ist es möglich, auch NULL-Werte abzufragen, zB.
    Code :
    1
    2
    
    SET ANSI_NULLS OFF
    SELECT * from myTable WHERE eingeloggt = NULL

    Setzt Du ANSI_NULLS OFF so kannst Du = und <> mit NULL Abfragen.
    Das funktioniert mWn nur bei SQL
     

  12. #12
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    Zitat Zitat von Fragenfrager Beitrag anzeigen
    Nachtrag:
    Mit dem Eintrag
    SET ANSI_NULLS OFF
    vor der Abfrage ist es möglich, auch NULL-Werte abzufragen, zB.
    Code :
    1
    2
    
    SET ANSI_NULLS OFF
    SELECT * from myTable WHERE eingeloggt = NULL

    Setzt Du ANSI_NULLS OFF so kannst Du = und <> mit NULL Abfragen.
    Das funktioniert mWn nur bei SQL
    Du kannst in (My)SQL, aber auch mit IS NULL auf NULL prüfen:
    Code mysql:
    1
    
    SELECT * FROM table WHERE eingeloggt IS NULL;

    Gruß Kyoya Stefan
     
    Oracle Certified MySQL 5 Professional Developer
    Zend Certified PHP 5.3 Engineer

    Vorträge, Webinare, etc im Mayflower - Blog