Avatar billede techboy992 Praktikant
18. april 2013 - 02:58 Der er 20 kommentarer og
1 løsning

Validate om en key fra database er udloebet

Jeg har et database felt med dato 0000-00-00 format hvordan kan jeg checke om datoen er ikke udloebet og faa det i en variable
hvis udloebet $date='false'; hvis stadig er dage tilbage $date='ok'

saa jeg kan lave en check som dette
if ($code23==$licensecode AND $domain23==$domain AND $date=='ok' AND $status=='ok' ){
    echo "ok";
}

else {
    echo "false";
}
18. april 2013 - 07:12 #1
Spørgsmål til spørgsmålene:  Først og fremmest, hvad vil det sige, at en dato er udløbet?  Er en dato udløbet, hvis den er tidligere end en bestemt dato (for eksempel at datoer ældre end 1 januar 2013 er udløbet) eller er en dato udløbet hvis den er mere end et bestemt antal dage gammel (for eksempel hvis man tegner et abonnement på 30 dage)?  Og så:  Hvilket database system bruger du?  mysql, mssql, ?  Yderligere:  Hvad er datatypen på dato feltet?  Forhåbenligt DATE eller sådan noget (det er da vel ikke en tekststreng?)
Avatar billede techboy992 Praktikant
18. april 2013 - 13:05 #2
Den skal udloebe paa den dag som den slutter.
hvis muligt sende en email 5 dage foer den udloeber men mail script har jeg, men kunne vaere fedt hvis kunne maile en advarsel ud 5 dage foer, den afslutter.
18. april 2013 - 13:40 #3
Vi kommunikerer slet ikke.  Det er nok mig der ikke er smart nok.  For at få de oplysninger jeg tror er nødvendige for mig for at kunne hjælpe stillede jeg tre konkrete spørgsmål.  På to af spørgsmålene så jeg ikke noget svar.  På det tredje spørgsmål, hvornår en dato er udløbet, svarer du at 'den skal udløbe på den dag som den slutter.'  Det bliver jeg ikke klogere af.  Hvad er forskellen på at en dato udløber og at den slutter?  Og jeg forstår stadig ikke hvordan du ved om en dato er udløbet/sluttet.

Jeg skal slutte her for at undlade at spilde mere af din tid.  Så må vi håbe du får indlæg fra nogen der kan forstå dig.
Avatar billede olebole Juniormester
18. april 2013 - 15:04 #4
<ole>

Mon ikke, det er noget i denne stil:

$mysqli = new mysqli('localhost', 'username', 'password', 'database');
if (mysqli_connect_errno()) {
    die('Kunne ikke forbinde');
}

$sql = 'SELECT * FROM tabel_navn WHERE DATE_SUB(CURDATE, INTERVAL 5 DAY) < dato_kolonne';
$res = $mysqli->query($sql);
if ($mysqli->errno) {
    die('Some shit hit the fan: ' . $mysqli->error);
}

while ($row=$res->fetch_assoc()) {
    // Send mail til bruger
}

$res->free();
$mysqli->close();

/mvh
</bole>
Avatar billede techboy992 Praktikant
18. april 2013 - 15:10 #5
Database felt type: date
Felt navn er expire.

date er en forud bestemt dato hvis dato er idag er den ikke udloebet, er den igaar er den udloebet.

Jeg bruger mysql, og kode maa meget gerne vaere mysqli til udtraek fra databasen.

Undskyld var lidt traet da jeg svarede tilbage havde arbejdet i 36 timer paa det tidspunkt
Avatar billede techboy992 Praktikant
18. april 2013 - 15:20 #6
Tak ole det er saa mail funktionen :)

Mangler saa kun checkket om lisens er udloebet eller ej.
Til check naar en side loader og kalder hjem til lisens serveren for check af en lisens.
Avatar billede olebole Juniormester
18. april 2013 - 15:23 #7
Denne sætning kan jeg ikke få sammenhæng i: "date er en forud bestemt dato hvis dato er idag er den ikke udloebet, er den igaar er den udloebet."

Du er nødt til at udtrykke dig meget klart - også for én, som ikke præcist ved, hvad du tænker. Ellers bliver det en meget lang tråd (læs: quiz)  *o)
Avatar billede olebole Juniormester
18. april 2013 - 15:27 #8
"Mangler saa kun checkket om lisens er udloebet eller ej.
Til check naar en side loader og kalder hjem til lisens serveren for check af en lisens."


Det forstår jeg ikke
Avatar billede techboy992 Praktikant
18. april 2013 - 15:38 #9
Hvis dato  der er forudbestemt i databasen er paseret vil sige dato igaar den 2013-04-17 den er udloebet.

Idag har vi den 2013-04-18, det er ikke dato skift endnu, saa den er stadig gyldig, saa skal vaere $date='ok'

vi overgaar til 2013-04-19 klokken 0:00:00:01
er klokken 0:00:00:01 2013-04-19 er den udloebet. og skal vaere $date='false'.

Haaber det giver mening, hvad jeg mener.
Avatar billede techboy992 Praktikant
18. april 2013 - 15:40 #10
sorry 2013-04-20  er den udloebet og skal vaere date='false'
Avatar billede techboy992 Praktikant
18. april 2013 - 15:49 #11
Men er mest ude efter et exempel for ok og false, har soegt i et stykke tid efter en kode, men uden held for det jeg gerne vil.

proever lige en gang til her og er om jeg kan lave det uden fejl:

Dato i gaar: 2013-04-17, udloebet date='false'.

vi har idag har vi 2013-04-18 dagen er ikke omme endnu da klokken ikke er 2013-04-19 00:00:00:01 saa date='ok'.

i morgen har vi 2013-04-19 den er ogsaa gyldig date='ok'  2014-01-01 er date='ok'.
Avatar billede olebole Juniormester
18. april 2013 - 15:58 #12
Har du prøvet koden?
Avatar billede techboy992 Praktikant
18. april 2013 - 16:15 #13
Jeg vil proeve den her efter jeg har sovet lidt, kan ikke rigtig overskue code lige nu arbejdede 36 timer igaar og sovet 3 timer saa vil vil proeve at faa lidt soevn, foer jeg gaar igang med at saette den ind og teste den, saa jeg ikke laver fejl :), men plejer jo at virke fint naar du har lavet noget :).
Avatar billede olebole Juniormester
18. april 2013 - 16:21 #14
Vi venter  *o)
Avatar billede techboy992 Praktikant
19. april 2013 - 08:55 #15
Hej Ole

hvad er date_sub i koden ??
Avatar billede techboy992 Praktikant
19. april 2013 - 09:09 #16
tror jeg fandt ud af den part
$license="XEUia5nmscMijQSxFRzZ5vYPs3asDGjXoz4p6DAz";
$sql = 'SELECT * FROM apt WHERE $license(CURDATE, INTERVAL 5 DAY) < exspire';

Kom med en anden fejl efter jeg satte den ind

Some shit hit the fan: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') < exspire' at line 1


[qoute]<?php
$mysqli = new mysqli('localhost', 'techhost_apt', '8210Sofie0128', 'techhost_apt');
if (mysqli_connect_errno()) {
    die('Kunne ikke forbinde');
}

$license="XEUia5nmscMijQSxFRzZ5vYPs3asDGjXoz4p6DAz";
$sql = 'SELECT * FROM apt WHERE $license(CURDATE, INTERVAL 5 DAY) < exspire';
$res = $mysqli->query($sql);
if ($mysqli->errno) {
    die('Some shit hit the fan: ' . $mysqli->error);
}

while ($row=$res->fetch_assoc()) {
    // Send mail til bruger
    echo "sending email";
}

$res->free();
$mysqli->close();[/qoute]
Avatar billede techboy992 Praktikant
19. april 2013 - 10:26 #17
Endte med at bruge dette script for dato validation af udloebet

$result= mysqli_query($con, "SELECT * FROM apt where licensecode='".$code24."' AND domain23='".$domain24."'");
while ($row=mysqli_fetch_array($result))
$expire=$row["expire"];
   
    $enddate = $expire;
    $todays_date = date("Y-m-d");
    strtotime($enddate);
   
    if ($enddate < $todays_date) {
        $date='false';
    }
    else {
        $date='ok';
    }

Men vil gerne have det med mail til at virke ogsaa :)
Avatar billede olebole Juniormester
19. april 2013 - 14:50 #18
Sorry, der manglede en parentes:

$sql = 'SELECT * FROM tabel_navn WHERE DATE_SUB(CURDATE(), INTERVAL 5 DAY) < expire';

Den udvælger de, der er udløbet. Så er det bare at sende e-mailen
Avatar billede techboy992 Praktikant
19. april 2013 - 15:16 #19
Tak ole, det virker fint nu saa skal bare have mit mail script ind i den , og fundet ud hvad jeg skal skrive :)

Vil du have point denne gang ?? :)
Avatar billede olebole Juniormester
19. april 2013 - 15:21 #20
Selvtak - og ellers tak. Du lægger bare selv et accepteret svar  =)
Avatar billede techboy992 Praktikant
19. april 2013 - 15:24 #21
Endte med at bruge dette script for dato validation af udloebet

$result= mysqli_query($con, "SELECT * FROM apt where licensecode='".$code24."' AND domain23='".$domain24."'");
while ($row=mysqli_fetch_array($result))
$expire=$row["expire"];
 
    $enddate = $expire;
    $todays_date = date("Y-m-d");
    strtotime($enddate);
 
    if ($enddate < $todays_date) {
        $date='false';
    }
    else {
        $date='ok';
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester