Avatar billede Kaspercp Nybegynder
30. juli 2012 - 22:03 Der er 10 kommentarer

PHP on/off funktion

Hej eksperter.

Jeg har fået mig en lille opgave omkring et booking system.

Jeg skal have lavet en knap i kontrolpanelet til det booking system jeg har lavet, hvor jeg i kontrolpanelet kan trykke på en knap, hvor systemet så går off, sådan at den i stedet for at vise formen på selve siden, viser den en tekst, hvor der står, at det ikke er muligt at booke et bord, f.eks., og den skal selvfølgelig forblive off, indtil der trykkes på knappen igen.

Det skal være så brugervenligt som overhovedet muligt, så det er let at forstå, at man bare skal trykke på den knap, og så er formen på siden off, indtil der trykkes på knappen igen, hvor formen på siden så kommer on igen.

Er der nogen som kan hjælpe mig med det.
- har aldrig lavet noget der ligner det her, så er pænt blank på det område (:

Kender godt til php, så den helst vilde forklaring behøves ikk, men kode fra jer, vil være perfekt, da jeg ikke har nogen idé om, hvordan jeg lige skal stille det op.

Er der spørgsmål er i velkommen til at spørge ;)
Avatar billede Kaspercp Nybegynder
30. juli 2012 - 22:06 #1
Kan sætte en forklaring op:

Kasper har et personligt møde som han skal til, udenfor arbejdsregi. Han ønsker dog stadig at restauranten kan holde åbent, men da han ikke er i den, kan den ikke indeholde dens fulde kapacitet, så derfor ønsker han kun at de kunder som kommer ind af hoveddøren har mulighed for at spise der. Så derfor skal kan kunne åbne en kalender i systemet, vælge sig en dato, samt et 'til' og 'fra' klokkeslet og klikke på en knap, som aktiverer nedlukning af bookingsystemet fra den valgte dato og tidspunkt.

Kaldes vidst et lukning-modul i nogen samhæng.
Avatar billede swiatecki Novice
30. juli 2012 - 22:55 #2
En løsning kunne være at gemme et sæt af værdier med hhv. start og slut-tidspunkt og så ved eksekvering af scriptet tjekke, om hvorvidt det nuværende tisdpunkt er i et gemt interval. Hvis du kender PHP (og antagelsesvist noget database) så burde det ikke være det store
Avatar billede Six Nybegynder
30. juli 2012 - 22:56 #3
Du kan vel i grunden bare holde en variabel i din DB.

If(SysIO == "on") {
include("form.php");
} else (
include("lukket.php");
}

Og så huske i din form motor at tjekke for om SysIO er on også, så folk ikke bare kan gå direkte til formen via direkte link. Det kan man nu også kode sig ud af.

Men det er vel i princippet det eneste der skal til?
Avatar billede Six Nybegynder
30. juli 2012 - 23:03 #4
Du kan bruge en funktion som denne: (fundet på stackoverflow)

function check_date_is_within_range($start_date, $end_date, $todays_date)
{

  $start_timestamp = strtotime($start_date);
  $end_timestamp = strtotime($end_date);
  $today_timestamp = strtotime($todays_date);

  return (($today_timestamp >= $start_timestamp) && ($today_timestamp <= $end_timestamp));

}

Og bruge den således:
if(check_date_is_within_range('2012-06-26 10:00:00', '2012-06-26 12:00:00', date("Y-m-d G:i:s"))){
    include("lukket.php"); //In Range nuværende dato og tidspunkt ligger mellem de tidspunkter Kasper har valgt at holde booking lukket
} else {
    include("form.php"); //Not in range
}

Hverken testet eller noget, men det leder dig i den rigtige retning ;)
Avatar billede Kaspercp Nybegynder
31. juli 2012 - 20:38 #5
#fjappe: Ser rigtig godt ud, men det er jo kun php'en, hvordan skal jeg sætte det op i forhold til min side, altså f.eks. i kontrolpanelet, hvad skal jeg have der, og hvad skal der være i selve booking formen, hvor der jo skal stå booking lukket, hvis systemet er off ?
Avatar billede Six Nybegynder
31. juli 2012 - 20:47 #6
Nu ved jeg jo ikke hvordan din side er lavet og sat op :)

Med den løsning her vil der, alt efter hvad du smider i lukket.php, ikke være en form, når booking er lukket. Du kan evt. bare echo "Booking lukket mellem @dato1 og @dato2 grundet $begrundelse"

Men jeg er ikke helt sikker på hvad du mener, så forklar nærmere, hvis det ikke giver mening det jeg skriver.
Avatar billede Kaspercp Nybegynder
01. august 2012 - 20:35 #7
Skal lige se om jeg kan forklare mig på det her.

Vi tager lige selve bestillings-siden først:

Du ser en form
- f.eks.:
<form action="">
<input type="text">
<input type="text">
<input type="text">
</form>
- osv.
Den bliver udfyld som er indlysende.

Men går man ind og lukker for formen, skal den bare skrive:

Booking lukket mellem xx.xx - xx.xx

Her må du gerne vise mig, hvordan jeg evt. kan echo det fra databasen, eller hvordan det nu skal komme ud.


Kontrolpanelet:

Hvis jeg skal lukke systemet:
Skal der være sådan et form, hvor jeg kan udfylde den periode, hvor jeg ikke er tilstede, og så trykke på luk systemet som f.eks. submit knap.

Når det slut tidspunkt, hvor jeg er tilbage igen, er nået, skal systemet åbne sig selv igen.


Var det en lidt bedre forklaring på det hele, du er velkommen til at spørge om mere, hvis du mangler information ;)

Håber du kan hjælpe mig her.

Igen skal jeg kun bruge alt der har med PHP at gøre, men html'en må du også gerne lige forklare mig, ud fra det som du laver i php, så jeg ved nogenlunde hvor det høre til henne ;)
Avatar billede Six Nybegynder
02. august 2012 - 23:10 #8
Jeg vender lige tilbage til den, når jeg får tid til lige at skrive et virkende eksempel til dig. Måske i løbet af i morgen. Ellers nok først søndag desværre, hvis ikke andre er trådt til.
Avatar billede Kaspercp Nybegynder
03. august 2012 - 07:12 #9
Det er også helt iorden, at du ikke lige kan lave det nu og her, men glæder mig da til at se, hvad du kommer med for en løsning her senest søndag.
- Jeg takker mange gange for din hjælp på forhånd :D
Avatar billede Kaspercp Nybegynder
06. august 2012 - 18:05 #10
Havde du en mulig løsning på mit problem ??
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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