kostenloser Webspace werbefrei: lima-city


Datum date()

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    Moin :biggrin:,

    Also folgendes Problem ich mal das mal was gebastelt, so siehsts aus:

    if ($eingabefehler == 'false') {
    $idpruf = $db->query("SELECT klamm, zeit FROM equinox_".$pageconfig['install_nr']."_sperr WHERE klamm ='".$_POST['klammid']."' and zeit >='".time()."'");
    	$sperre = mysql_fetch_array($idpruf);
    	if ($sperre['zeit'] != 99999999999) {
      $fehler['farbe']['klammid'] = 'style="border-color: #ff0000;"';
      		$eingabefehler = 'true';
    	print '<font color="#FF4500">Die Klamm-ID <u>'.$_POST['klammid'].'</u> ist noch bis zum <b>'.date("d.m.Y - H:i:s", $sperre['zeit']).'</b> f&uuml;r eine Neuanmeldung gesperrt!<br></font>';
    }
    }

    Wie man vll. schon gesehen hat gehts um eine Sperrung ;)!

    Wenn jemand seinen Account löscht darf er sich nach 30 Tagen erst wieder anmelden ist ja alles Schon und gut aber:

    Er zeigt das Datum an 1.1.1970 anstatt das heutige datum + der Zeit die in der Datenbank steht die sieht ungefähr so 25645121235 aus. Und anstattdessen gibt er mir wie gesagt 1.1.1970 01:00:00 das aus.

    Hilfe, vll. sogar mit nem Codeschnipsel?

    MFG, Sam

    Beitrag zuletzt geändert: 25.1.2009 15:43:59 von shezcrazy
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo shezcrazy,

    Also dein Code müsste schon funktionieren, sofern in der Variable $sperre['zeit'] wirklich der UNIX-Timestamp steht.

    Gib dir evtl mal mit print den Inhalt von $sperre['zeit'] aus.
    print $sperre['zeit'];


    Du kannst auch noch probieren mit print_r das ganze $sperre Array auszugeben.
    print_r($sperre);
    oder leichter lesbar:
    print '<pre>'.print_r($sperre, 1).'</pre>';


    Beispiel code:
    <?php
    
    $sperre['zeit'] = 1232897209;     //25.01.2009 - 16:26:49
    
    print 'Datum: '.date("d.m.Y - H:i:s", $sperre['zeit']);
    
    ?>

    Ausgabe:
    Datum: 25.01.2009 - 16:26:49


    Sofern date 01.01.1970 - 01:00:00 ausgibt, dann steht in $sperre['zeit'] entweder 0 oder kein gültiger UNIX-Timestamp.
  4. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    dussel schrieb:

    Gib dir evtl mal mit print den Inhalt von $sperre['zeit'] aus.
    print $sperre['zeit'];



    Da zeigt er Garnichts an! :o


    Du kannst auch noch probieren mit print_r das ganze $sperre Array auszugeben.
    print_r($sperre);
    oder leichter lesbar:
    print '<pre>'.print_r($sperre, 1).'</pre>';



    Hier auch nicht!!


    Beispiel code:
    <?php
    
    $sperre['zeit'] = 1232897209;     //25.01.2009 - 16:26:49
    
    print 'Datum: '.date("d.m.Y - H:i:s", $sperre['zeit']);
    
    ?>

    Ausgabe:
    Datum: 25.01.2009 - 16:26:49




    Das zeigt er =p


    Sofern date 01.01.1970 - 01:00:00 ausgibt, dann steht in $sperre['zeit'] entweder 0 oder kein gültiger UNIX-Timestamp.



    Das steht in der Zeit spalte:

    123546789

    Und so wirds automatisch reingeschrieben:

    $sperrzeit = time()+(86400*30);
    $sperren = $db->query("INSERT INTO equinox_".$pageconfig['install_nr']."_sperr (klamm,zeit) VALUES ('".$_POST['klammid']."','".$sperrzeit."')");


    Beitrag zuletzt geändert: 25.1.2009 17:05:18 von shezcrazy
  5. Ja, dann gibt es ein problem mit der mySQL abfrage.

    Probier mal die Letze Fehlermeldung anzuzeigen:
    http://de.php.net/manual/de/function.mysql-error.php

    print mysql_error();


    Natürlich nach dem mysql_fetch_array bzw nach dem $db->querry aufruf
  6. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    Parse error: parse error in blablabla on line 3

    <?
    $idpruf = $db->query("SELECT klamm, zeit FROM equinox_1_sperr WHERE klamm = 323565 and zeit >='".time()."'");
    	$sperre = mysql_fetch_array($idpruf) or die mysql_error();
      
    print_r($sperre);
    ?>


    Beitrag zuletzt geändert: 25.1.2009 17:17:47 von shezcrazy
  7. Hallo,

    die benötigt ( )

    $sperre = mysql_fetch_array($idpruf) or die(mysql_error());
  8. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    Er zeigt jetzt keinen Fehler, dafür hat er die Seite aber nicht zu ende geladen.
    Also ein Mysql error?
  9. shezcrazy schrieb:
    Er zeigt jetzt keinen Fehler, dafür hat er die Seite aber nicht zu ende geladen.
    Also ein Mysql error?

    Kannst du nochmal deinen aktuellen Code posten und evtl. auch die Seite, wo man es sich ansehen kann?
    Bist du dir sicher, dass die if-Bedingungen immer greifen und er nicht (warum auch immer) in dem von dir weggelassenen else-Bereich reinkommt?

    Gruß
    Karlja
  10. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    Es gibt keine Seite wo man es sehen kann, da auf dem Webspace es nicht funktioniert hat (wegen dem Fehler) habe ich dann Xamp runtergeladen und versuche grad die ganze Zeit das Problem zu lösen >.<

    if ($eingabefehler == 'false') {
    $idpruf = $db->query("SELECT klamm, zeit FROM equinox_".$pageconfig['install_nr']."_sperr WHERE klamm ='".$_POST['klammid']."' and zeit >='".time()."'");
    	$sperre = mysql_fetch_array($idpruf);
    	if ($sperre['zeit'] != 99999999999) {
      $fehler['farbe']['klammid'] = 'style="border-color: #ff0000;"';
      		$eingabefehler = 'true';
    	print '<font color="#FF4500">Die Klamm-ID <u>'.$_POST['klammid'].'</u> ist noch bis zum <b>'.date("d.m.Y - H:i:s", $sperre['zeit']).'</b> f&uuml;r eine Neuanmeldung gesperrt!<br></font>';
    }
    }
  11. Wie ist denn das Feld deiner Datenbank definiert, in dem du die Zeit speicherst? Die von dir genannte Zahl "123546789" steht nämlich für den 30.11.1973 - 22:33:09. Evtl. hast du das Feld zu klein definiert, so dass diese Zeiten deutlich in der Vergangenheit liegen?

    Kannst du zudem mal die else-Teile deiner if-Bedingungen füllen, um zu schauen, ob er in einem dieser Teile landet?

    Gruß
    Karlja
  12. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    Schau hier der Code von der Zeit eintragung:

    $klammid = $db->query("SELECT 'klamm_id' FROM equinox_".$pageconfig['install_nr']."_userkonten WHERE uid = '".$_SESSION['uid']."'");
    
    $sperrzeit = time()+(86400*30);
    $sperren = $db->query("INSERT INTO equinox_".$pageconfig['install_nr']."_sperr (klamm,zeit) VALUES ('".$_POST['klammid']."','".$sperrzeit."')");
    if ($_POST['updaten']) {
    $sperren;
    header("location:".$mainconfig['seitenurl'].'/index.php?logout=true');
    }


    Nächste Datei in der Anmeldung steht folgendes:

    http://www.shezcrazy.kilu.de/anmeldung.txt

    Beitrag zuletzt geändert: 26.1.2009 17:41:57 von shezcrazy
  13. shezcrazy schrieb:
    Schau hier der Code von der Zeit eintragung:

    $klammid = $db->query("SELECT 'klamm_id' FROM equinox_".$pageconfig['install_nr']."_userkonten WHERE uid = '".$_SESSION['uid']."'");
    
    $sperrzeit = time()+(86400*30);
    $sperren = $db->query("INSERT INTO equinox_".$pageconfig['install_nr']."_sperr (klamm,zeit) VALUES ('".$_POST['klammid']."','".$sperrzeit."')");
    if ($_POST['updaten']) {
    $sperren;
    header("location:".$mainconfig['seitenurl'].'/index.php?logout=true');
    }

    Den Code habe ich gesehen, allerdings steht dort nicht, wie das Feld in der Datenbank definiert wurde. Ich gehe davon aus, dass dieses Feld zu klein ist und somit die letzte Ziffer des Datums abschneidet.

    Gruß
    Karlja
  14. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    opps du meinst den MYSQL Code?

    CREATE TABLE IF NOT EXISTS `equinox_1_sperr` (
    `klamm` int(7) NOT NULL default '0',
    `zeit` bigint(11) NOT NULL default '0',
    PRIMARY KEY (`uid`)
    ) ENGINE=MyISAM;
  15. shezcrazy schrieb:
    opps du meinst den MYSQL Code?

    CREATE TABLE IF NOT EXISTS `equinox_1_sperr` (
    `klamm` int(7) NOT NULL default '0',
    `zeit` bigint(11) NOT NULL default '0',
    PRIMARY KEY (`uid`)
    ) ENGINE=MyISAM;

    An dieser Stelle müsste mal jemand drüberschauen, der sich mit den Feldgrößen in MySQL gut auskennt.

    Ich bin dieses Problem meist umgangen, indem ich das MySQL eigene Date/Time Format genutzt und bei der Ausgabe mit UNIX_TIMESTAMP es umgewandelt habe bzw. beim Einfügen geht es mit TIMESTAMP oder UTC_TIMESTAMP.

    Gruß
    Karlja
  16. shezcrazy schrieb:
    opps du meinst den MYSQL Code?

    CREATE TABLE IF NOT EXISTS `equinox_1_sperr` (
    `klamm` int(7) NOT NULL default '0',
    `zeit` bigint(11) NOT NULL default '0',
    PRIMARY KEY (`uid`)
    ) ENGINE=MyISAM;


    Für Zeit und Datum gibt es das Format date. bigint zu verwenden funktioniert nicht.
  17. deutscher schrieb:
    shezcrazy schrieb:
    opps du meinst den MYSQL Code?

    CREATE TABLE IF NOT EXISTS `equinox_1_sperr` (
    `klamm` int(7) NOT NULL default '0',
    `zeit` bigint(11) NOT NULL default '0',
    PRIMARY KEY (`uid`)
    ) ENGINE=MyISAM;


    Für Zeit und Datum gibt es das Format date. bigint zu verwenden funktioniert nicht.

    Als Unix-Timestamp kann man auch eine Version von Integer verwenden, allerdings weiß ich nicht, welche Größe hier benötigt wird. Letztendlich ist der Unix-Timestamp ja nur die Sekunden seit 1970 und somit eine recht große Zahl. Über die Sinnhaftigkeit diese Zahl zu speichern lässt sich streiten und man müsste bezogen auf den Anwendungsfall den Speicherverbrauch und die Performance gegenüberstellen... was allerdings wohl den Rahmen sprengen würde.

    Gruß
    Karlja
  18. karlja schrieb:
    deutscher schrieb:
    shezcrazy schrieb:
    opps du meinst den MYSQL Code?

    CREATE TABLE IF NOT EXISTS `equinox_1_sperr` (
    `klamm` int(7) NOT NULL default '0',
    `zeit` bigint(11) NOT NULL default '0',
    PRIMARY KEY (`uid`)
    ) ENGINE=MyISAM;


    Für Zeit und Datum gibt es das Format date. bigint zu verwenden funktioniert nicht.

    Als Unix-Timestamp kann man auch eine Version von Integer verwenden, allerdings weiß ich nicht, welche Größe hier benötigt wird. Letztendlich ist der Unix-Timestamp ja nur die Sekunden seit 1970 und somit eine recht große Zahl. Über die Sinnhaftigkeit diese Zahl zu speichern lässt sich streiten und man müsste bezogen auf den Anwendungsfall den Speicherverbrauch und die Performance gegenüberstellen... was allerdings wohl den Rahmen sprengen würde.

    Gruß
    Karlja


    Vielleicht kann man bigint verwenden, besonders viel Sinn macht es aber nicht...

    Mögliche Zahlen in MySQL-Feldern (Integer):

    - tinyint: -127 bis +128 oder 0 bis 255 (unsigned)
    - smallint: -32.768 bis +32.767 od. 0 bis 65.535
    - mediumint: -8.388.608 bis +8.388.607 od. bis rund 16 Mio.
    - int: -2,1 Milliarden bis +2,1 Milliarden od. 0 bis 4,3 Milliarden
    - bigint: -263 Mrd. bis +263 Mrd. od. 0 bis 264 Mrd.-1
  19. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    deutscher schrieb:
    karlja schrieb:
    deutscher schrieb:
    shezcrazy schrieb:
    opps du meinst den MYSQL Code?

    CREATE TABLE IF NOT EXISTS `equinox_1_sperr` (
    `klamm` int(7) NOT NULL default '0',
    `zeit` bigint(11) NOT NULL default '0',
    PRIMARY KEY (`uid`)
    ) ENGINE=MyISAM;


    Für Zeit und Datum gibt es das Format date. bigint zu verwenden funktioniert nicht.

    Als Unix-Timestamp kann man auch eine Version von Integer verwenden, allerdings weiß ich nicht, welche Größe hier benötigt wird. Letztendlich ist der Unix-Timestamp ja nur die Sekunden seit 1970 und somit eine recht große Zahl. Über die Sinnhaftigkeit diese Zahl zu speichern lässt sich streiten und man müsste bezogen auf den Anwendungsfall den Speicherverbrauch und die Performance gegenüberstellen... was allerdings wohl den Rahmen sprengen würde.

    Gruß
    Karlja


    Vielleicht kann man bigint verwenden, besonders viel Sinn macht es aber nicht...

    Mögliche Zahlen in MySQL-Feldern (Integer):

    - tinyint: -127 bis +128 oder 0 bis 255 (unsigned)
    - smallint: -32.768 bis +32.767 od. 0 bis 65.535
    - mediumint: -8.388.608 bis +8.388.607 od. bis rund 16 Mio.
    - int: -2,1 Milliarden bis +2,1 Milliarden od. 0 bis 4,3 Milliarden
    - bigint: -263 Mrd. bis +263 Mrd. od. 0 bis 264 Mrd.-1


    Wäre lieb wenn ihr mir einen kleinen Codeschnipsel anfertigt wie es nun aussehen soll. Da ich grad echt verwirrt bin :P
    (Mysql ist auf Date umgestellt)

    Karlja könntest du mir vll. nen Codeschnipsel mit dem eintragen und dem auslesen machen? ;P

    Ich bin mit date nicht so vertraut!

    Beitrag zuletzt geändert: 26.1.2009 20:33:11 von shezcrazy
  20. Hi,

    das Feld sollte im Format DATETIME vorliegen, damit auch die Stunden, Minuten und Sekunden mitberücksichtigt werden können.

    Zum Eintragen:
    $klammid = $db->query("SELECT 'klamm_id' FROM equinox_".$pageconfig['install_nr']."_userkonten WHERE uid = '".$_SESSION['uid']."'");
    $sperrzeit = time()+(86400*30);
    $sperren = $db->query("INSERT INTO equinox_".$pageconfig['install_nr']."_sperr (klamm,zeit)
    	VALUES ('".$_POST['klammid']."',DATE_FORMAT(".$sperrzeit.",'%Y-%m-%d %H:%i:%s'))");
    if ($_POST['updaten']) {
    	$sperren; header("location:".$mainconfig['seitenurl'].'/index.php?logout=true');
    }


    Und zum Auslesen:
    if ($eingabefehler == 'false') {
    	$idpruf = $db->query("SELECT klamm, UNIX_TIMESTAMP(zeit) FROM equinox_".$pageconfig['install_nr']."_sperr WHERE klamm ='".$_POST['klammid']."' and UNIX_TIMESTAMP(zeit) >= UNIX_TIMESTAMP()");
    	$sperre = mysql_fetch_array($idpruf);
    	if ($sperre['zeit'] != 99999999999) {
    		$fehler['farbe']['klammid'] = 'style="border-color: #ff0000;"';
    		$eingabefehler = 'true';
    		print '<font color="#FF4500">Die Klamm-ID <u>'.$_POST['klammid'].'</u> ist noch bis zum <b>'.date("d.m.Y - H:i:s", $sperre['zeit']).'</b> f&uuml;r eine Neuanmeldung gesperrt!<br></font>';
    	}
    }

    Denk bitte dran, dass du die Zeile mit der if-Bedingung entsprechend änderst. Ich würde hier auf das Datum setzen, dass maximal in DATETIME abgespeichert werden kann (9999-12-31 23:59:59) oder das minimale Datum (1000.01.01 00:00:00).

    Gruß
    Karlja
  21. Autor dieses Themas

    shezcrazy

    Kostenloser Webspace von shezcrazy, auf Homepage erstellen warten

    shezcrazy hat kostenlosen Webspace.

    dann gibt er mir das hier:

    Falscher SQL-Query: INSERT INTO equinox_1_sperr (klamm,zeit) VALUES (Resource id #17,DATE_FORMAT(1235650189,'%Y-%m-%d %H:%i:%s'))
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!