[ASP/PHP] Online Reservaties

Plaats reactie
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Hey,

Ik ben namelijk bezig met een eindwerk voor de avondschool. Daar zou ik willen een online Reservaties maken voor een fictief hotel. Ik zou men laten kiezen op een pagina tussen de hotels, data, kortingen enzo.
Mijn vraag is nu hoe registreer ik iemand in een database online.
Ik heb al gelezen dat sommige webspace dealers dat niet ondersteunen.
Het is eigenaardig aan een E-Shop. Maar dan voor hotels.
Daarna zal ik de database sturen vanuit VB.NET, maar dat zal ik wel verder afhalen. Welke taal enzo gebruik ik best, want scripting op internet vlak is nog niet zo hoog gevorderd bij mij.

Iemand een oplossing?

Mvg,
Snakehit
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Tip: www.w3schools.com en daar de lessen over Visual Basic en ASP.
Maar er zijn zéér weinig gratis ASP-hosts te vinden. En andere voor de hand liggende combinatie is PHP/MySQL. MySQL kan je een ODBC-koppeling mee maken, dus dat zal je vanuit je VB.NET-projectje wel kunnen aanspreken.
Een reservatie-systeem kan je heel moeilijk maken, maar ook eenvoudig natuurlijk, het is afhankelijk van wat je gaat maken en hoe het werkt.
Ik weet niet wanneer je ding af moet zijn en hoeveel zin je hebt om PHP of ASP te doorgronden ...
Ik kan je natuurlijk moeilijk hier 'les' geven natuurlijk, maar als je met een ei zit kan je dat hier zonder problemen kwijt. En wees niet bang dat je domme vragen zal stellen, ik krijg er per dag wel een stuk of 5 van klasgenoten per msn/mail :roll:
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

MySQL is geen probleem heb je zowiezo nodig om databases aan te spreken en de tabel te selecteren. Het enige dat ik moet zoeken is een script om van een webform een database record in te vullen.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Code: Selecteer alles

mysql_query("INSERT INTO tabel VALUES('waarde1','waarde2');");


Zoiets, of wat bedoel je? :)
Dit is PHP fyi.
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Ik zal dit verder uitzoeken, hoe het in zijn werk gaat om een e-shop te maken. Op w3-schools zal ik wel nodige uitleg vinden zodat ik dan kan starten. Enkel twijfel ik nog van taal of beter, ik weet niet in welke taal ik dat nu moet gaan doen. PHP, ASP, ASPX of die taal PHP fyi :? [/code]
Sensei Zeon
Administrator
Administrator
Berichten: 4143
Lid geworden op: 15 sep 2002, 09:08
Locatie: Belgium, Haacht
Contacteer:

die "fyi" betekend gewoon: "for your information" :)

ik zou persoonlijk naar php gaan, maar van asp ken ik nog minder dan van php, dus is de keuze niet zo moeilijk voor mij :p
Your Sensei sends his greetz, SeNsEi Ze0n

Afbeelding
Lukse
Premium Member
Premium Member
Berichten: 662
Lid geworden op: 28 okt 2003, 20:51

As ge al VB.NET kent, is het volgens mij simpeler om ASP.NET te gebruiken.
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Hey,

Ok, ik zal vanavond uitzoekn wat ik zal gebruiken.;
Het is vakantie, de examens zijn gedaan , nu ben ik in veel te hogere sferen : :twisted: 8) :drool: dus ik zal later meer deftig antwoord geven
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Hey,
Ik heb nu al een beetje verder zitten uitzoeken, hoe en wat.
Ik ben al flink opgeschoten C:\Inetpub\wwwroot die directory heb ik nu al aangemaakt enzo. Database is klaar voor gebruik.

Code: Selecteer alles

<% naam = "Fred" %>
<% adres = "Test" %>
<%
dim strConn
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb")

dim adoCn
dim strSQL
set adoCn = Server.CreateObject("ADODB.Connection")
adoCn.Open strConn

dim adoRs
set adoRs = Server.CreateObject("ADODB.Recordset")

Set adoRs.ActiveConnection = adoCn
adoRs.LockType = 4
adoRs.CursorType = 1
adoRs.Source = "SELECT * From tblKlanten"
adoRs.Open
adoRs.AddNew
adoRs.Fields ("Klant").value = naam
adoRs.Fields ("Adres").value = adres
adoRs.Update

adoRs.Close
Set adoRs = Nothing
strConn.Close
Set strConn = Nothing
%>


Soort fout:
Microsoft JET Database Engine (0x80040E09)
Kan de gegevens niet bijwerken. De database of het object is alleen-lezen.
/index.asp, line 20

Dit is dus ene probleem om de database te lezen.
Je hebt die verschillende modes daar
- adOpenForwardOnly
- adOpenKeyset
- adOpenDynamic
- adOpenStatic

Ik heb ze allen geprobeerd door

Code: Selecteer alles

adoRs.LockType = 4
adoRs.CursorType = 1

Door die waarden aan te passen, tevergeefs
Iemand een idee?

Mvg,
Snakehit
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Je .mdb-file moet lees-en schrijf-rechten hebben (NTFS-filesystem).
Je moet de IIS-user voor jouw pc aan de machtigingen toevoegen en die de juiste rechten geven.
De IIS-user ziet er meestal uit als IUSER_computernaam .
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

meon schreef:Je .mdb-file moet lees-en schrijf-rechten hebben (NTFS-filesystem).
Je moet de IIS-user voor jouw pc aan de machtigingen toevoegen en die de juiste rechten geven.
De IIS-user ziet er meestal uit als IUSER_computernaam .


De database heeft toch automatisch rechten om upgedate te worden. Je moet enkel de goeie connectie leggen naar uw database voor welke toepassing je hem wilt gebruiken , readonly, ...

Die IIS-User toestanden begrijp ik niet zo goed :cry:
Kan je dat aub een beetje meer uitleggen. Ik zit enkel met een administrator (XP) als het dat is wat je bedoelt.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Nee, IIS gebruikt zijn eigen rechten en het zijn dus niet de de account waarmee je bent ingelogd.
IIS heeft eigenlijk nog een extra gebruiker met héél weinig rechten (voor de veiligheid). Zo heeft die gebruiker enkel LEES-rechten op je wwwroot-map. Om dus te schrijven zal je extra permissies moeten geven.
Ga naar de map waar je .mdb-bestand staat, doe rechtermuis op die database, eigenschappen. In het tabblad "Machtigingen" voeg je een user toe, zijnde IUSER_computernaam (aanpassen aan jouw situatie). Je drukt op ok en dan vink je de permissies aan die je wilt geven: lezen, schrijven, wijzigen, verwijderen, volledig beheer,...

En dat zou het moeten oplossen normaal gezien.
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Ok, het probleem blijft dit is wat ik gedaan heb.
ik ga naar de map
C:\Inetpub
, selecteer wwwroot -> eigenschappen -> delen via het web --> toevoegen -> IUSER_cappelle-pieter -> Geselecteerd: Lezen, schrijven
en OK geklikt. Probleem blijft
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Nee, niet delen via het web; "Beveiliging" heb je nodig.
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Sorry, ik vind dat nergens.
kan je dat aub een keer uitleggen?
Arrigi
Elite Poster
Elite Poster
Berichten: 824
Lid geworden op: 05 okt 2003, 23:00
Locatie: Hoogstraten
Contacteer:

Moet je dan niet in veilige modus opstarten en dan dat aanpassen?
Spock
Elite Poster
Elite Poster
Berichten: 1591
Lid geworden op: 20 feb 2004, 11:48
Locatie: St-Truiden, Brussel, Utrecht en Capetown
Contacteer:

Wil je zoiets als op www.dinersreference.com ?

Daar kan je online een tafel reserveren en gelijk je menukeuze doorsturen.
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Ja zoiets, maar minder uitgebreid dan
gewoon je moet een form invullen met
Naam
Adres
Woonplaats
Email
Welk Hotel
Aantal Personen
Van periode
Tot Periode

en dat moet je dan doorsturen naar de database.
Endie wordt dan upgedate
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Je hebt waarschijnlijk "easy sharing" op staan.

Ga naar verkenner, extra > mapopties, tabblad "weergave", "eenvoudig delen van bestanden gebruiken (aanbevolen)" uitschakelen.

Dan komt het tabblad "Beveiliging" er bij.
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Ok, hij struikelt er niet meer over.
Bedankt, volgende probleem is al veel ingewikkelder :wink:

Ik heb 2 hotels runnen. Dus hotel A en B.
Dus ik heb 2 aparte tabellen tblKlantenA en tblKlantenB

via een combobox moeten ze bepalen in welk hotel ze willen logeren.
Dus A of B
Hoe kan je het geselecteerde item weten.
Ook met een request form?
Lukse
Premium Member
Premium Member
Berichten: 662
Lid geworden op: 28 okt 2003, 20:51

Snakehit schreef:Ik heb 2 hotels runnen. Dus hotel A en B.
Dus ik heb 2 aparte tabellen tblKlantenA en tblKlantenB

En gij durft 'VB.NET Developer' in uwe signature te zetten?
Ooit van normalisatie gehoord? :wink:
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Is dit een persoonlijke aanval?
Er is een verschil tussen ASP en VB.NET
Database is totaal geen probleem en de VB.NET Toestanden ook niet.
Dit is hier in geen enkel geval ter sprake gekomen over VB.NET toestanden. Dit handelt over ASP, en dat is compleet anders gericht.

Mvg,
Snakehit
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Ok, het is afgewerkt :P

Code: Selecteer alles

Index.ASP

Code: Selecteer alles

<html>
<head>
<title>Registration CBA - Hotel</title>
</head>
<body>
<h2>Fill in the fields to complete the registration: </h2>
<form name="form1" method="post" action="http://localhost/add.asp">
<table width="400" border="1" cellspacing="0" cellpadding="4">
<tr>
<td><div align="right">Name:</div></td>
<td><input type="text" name="Klant"></td>
</tr>
<tr>
<td><div align="right">Street + Nr:</div></td>
<td><input type="text" name="Adres"></td>
</tr>
<tr>
<td><div align="right">Place:</div></td>
<td><input type="text" name="Woonplaats"></td>
</tr>
<tr>
<td><div align="right">Phonenumber:</div></td>
<td><input type="text" name="Telefoon"></td>
</tr>
<tr>
<td><div align="right">E-mail:</div></td>
<td><input type="text" name="Email"></td>
</tr>
<tr>
<td><div align="right">Count people:</div></td>
<td><input type="text" name="Aantal"></td>
</tr>
<tr>
<td><div align="right">From:</div></td>
<td><input type="text" name="Van"></td>
</tr>
<tr>
<td><div align="right">Until:</div></td>
<td><input type="text" name="Tot"></td>
</tr>
</table>
<p>
<input type="submit" name="Submit" value="Opslaan">
</p>
</form>
</body>
</html>


Code: Selecteer alles

ADD.ASP


Code: Selecteer alles

<%
Dim strCon
Dim objCon
Dim Klant, Adres, Woonplaats, Telefoon, Email, Aantal, Van, Tot, Room

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\db.mdb;Jet OLEDB:Database Password=hackandcrackme;"

Set objCon = Server.CreateObject ( "ADODB.Connection" )
objCon.Open strCon

set objAdd = Server.CreateObject ("ADODB.Recordset")
objAdd.CursorType = 2
objAdd.LockType = 3
objAdd.Open "tblKlantenCBA", objCon

Naam = request.form("Klant")
Adres = request.form("Adres")
Woonplaats = request.form("Woonplaats")
Telefoon = request.form("Telefoon")
Email = request.form("Email")
Aantal = request.form("Aantal")
Van = request.form("Van")
Tot = request.form("Tot")
Room = ("0")

objAdd.AddNew
objAdd.Fields("Klant") = Naam
objAdd.Fields("Adres") = Adres
objAdd.Fields("Woonplaats") = Woonplaats
objAdd.Fields("Telefoon") = Telefoon
objAdd.Fields("Email") = Email
objAdd.Fields("Aantal") = Aantal
objAdd.Fields("Van") = Van
objAdd.Fields("Tot") = Tot
objAdd.Fields("Kamernr") = Room
objAdd.Update

objAdd.Close
Set objAdd = Nothing
objCon.close
set objCon = Nothing
%>

<html>
<head>
<title>Registration Added</title>
</head>
<body>
<p>Registration Complete.....</p>
<p><a href="index.asp">Back</a></p>
</body></html>


Nu die ASP Verwerken via de stylesheet :wink:

Mvg,
Snakehit

[EDIT]Code nog gewijzigd
Laatst gewijzigd door Snakehit 26 jun 2004, 16:28, in totaal 1 gewijzigd.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Bah. Nu zie ik weer waarom ik PHP zoveel leuker vind.
Al lijkt me dat je enorm veel redundante code hebt.
Alleen al niet moeten declareren vind ik leuk, en variabelen in PHP zijn typeloos. Enfin ja, die worden automatisch toegewezen op basis van hun inhoud.

Ik ben eens mijn oude code (ben al effe niet meer met ASP bezig geweest) en heb gemerkt dat ik ook nergens declareer. Dat is dus niet echt nodig blijkbaar.

En wat Lukse zegt is geen persoonlijke aanval, maar een terechte opmerking. Een database op die manier opbouwen (en dat staat los van VB.net of ASP of PHP of C# of wat dan ook) is verre van efficient. Wat als er een derde hotel bij komt? Ga je dan een tabel bij maken? Natuurlijk; dat werkt allemaal wel en zo, maar naar normalisatie toe zou je op school een onvoldoende halen ;)

Ik zie dat je ergens

Code: Selecteer alles

objAdd.Fields("Klant") = Naam 
objAdd.Fields("Adres") = Adres

Doet .. euhm. Zou je dat niet beter in SQL doen?

Code: Selecteer alles

oConn.execute("INSERT INTO tabel (field 1,field 2, ...) VALUES ('val1','val2',...)")

Alles overzichtelijk in 1 operatie.
Don't fear the SQL, it's a powerful thing ;)
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

meon schreef:Een database op die manier opbouwen (en dat staat los van VB.net of ASP of PHP of C# of wat dan ook) is verre van efficient. Wat als er een derde hotel bij komt? Ga je dan een tabel bij maken? Natuurlijk; dat werkt allemaal wel en zo, maar naar normalisatie toe zou je op school een onvoldoende halen


Ik kan dat programmeren, was al de bedoeling vanaf het begin, voor hotels toevoegen en personeel enzo. Je kan toch programerren dat er een tabel moet bijkomen met volgende records en sleutel. En die dan toevoegen in de code automatisch door met loops te gaan werken en niet met namen. Zo hou je de mogelijkheid vrij om te blijven toevoegen zonder dat je iets aan de code moet veranderen.
Misschien is dit niet echt nauwkeurig maar volgens mij wel efficient.

Mvg,
Snakehit
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Volgens mij is het zo efficienter:
Tabel1:
hotels: hotel_id (int, autonummering), hotel_name (char 255), blah blah, ...

Tabel2:
klanten: klant_id (int, autonummering), klant_naam (char 255), hotel_id (int), blah blah, ...

Het is namelijk niet de bedoeling dat een database nog verandert van structuur. Een tabel dynamisch toevoegen is maw een slecht idee. Databases houden van records ;).
Da's het idee van een relationele database: relaties tussen tabellen.

//edit: typo's
Laatst gewijzigd door meon 26 jun 2004, 16:41, in totaal 2 gewijzigd.
CueBoy
Elite Poster
Elite Poster
Berichten: 1676
Lid geworden op: 23 mei 2003, 23:13
Uitgedeelde bedankjes: 1 keer

Snakehit schreef:
meon schreef:Een database op die manier opbouwen (en dat staat los van VB.net of ASP of PHP of C# of wat dan ook) is verre van efficient. Wat als er een derde hotel bij komt? Ga je dan een tabel bij maken? Natuurlijk; dat werkt allemaal wel en zo, maar naar normalisatie toe zou je op school een onvoldoende halen


Ik kan dat programmeren, was al de bedoeling vanaf het begin, voor hotels toevoegen en personeel enzo. Je kan toch programerren dat er een tabel moet bijkomen met volgende records en sleutel. En die dan toevoegen in de code automatisch door met loops te gaan werken en niet met namen. Zo hou je de mogelijkheid vrij om te blijven toevoegen zonder dat je iets aan de code moet veranderen.
Misschien is dit niet echt nauwkeurig maar volgens mij wel efficient.

Mvg,
Snakehit


Sorry, mij ff mengen : met deze argumenten ga je echt nergens komen in de bedrijfswereld hoor... (en da's misschien nog eventjes belangrijker als't school :wink: )

En efficiënt ? Durf ik te betwijfelen... want wat gebeurt er als één en dezelfde klant in alle hotels gaat logeren ?
Je gaat die mens zijn data 2x opslaan ? Is dit efficiënt ?
Wat doe je als je je klanten wilt mailen ? Iedereen dubbel ? Efficiënt ?
Wat als je klantdata moet updaten ? In alle tabellen ? Hoe ? Efficiënt ?
If you can't beat them, confuse them.
CueBoy
Elite Poster
Elite Poster
Berichten: 1676
Lid geworden op: 23 mei 2003, 23:13
Uitgedeelde bedankjes: 1 keer

meon schreef:Volgens mij is het zo efficienter:
Tabel1:
hotels: hotel_id (int, autonummering), desc (char 255), blah blah, ...

Tabel2:
klanten: klant_id (int, autonummering), naam (char 255), hotel_id (int), blah blah, ...

Het is namelijk niet de bedoeling dat een datbase nog verandert van structuur. Een tabel dynamisch toevoegen is maw een slecht idee. Databases houden van records ;)
Da's het idee van een relationele database: relaties tussen tabllen.


Meon, qua normalisatie is dit ook verkeerd.
Wat je naar mijn bescheiden mening nodig hebt is een intersectie-record : sdit is een record waar een relatie gelegd wordt tussen een hotel en een kklant, en waar dan ook nog eens specifieke data over deze relatie kan oopgeslagen worden (zoals periode van verblijf bv),
maw. (sleutels onderlijnd)

Tabel 1 : HOTELS : hotelid, descr, ...
Tabel 2 : KLANTEN : klantid, naam, adres, ...
Tabel 3 : het zgn. intersectie-record HOTELS_KLANTEN : hotelid, klantid, startdt, einddt, ...
If you can't beat them, confuse them.
Gebruikersavatar
meon
Administrator
Administrator
Berichten: 16609
Lid geworden op: 18 feb 2003, 22:02
Twitter: meon
Locatie: Bree
Uitgedeelde bedankjes: 564 keer
Bedankt: 759 keer
Contacteer:

Jipz, dat dus. Enfin, ik wilde eigenlijk gewoon even 'een relatie' aantonen, niet zozeer de oplossing geven :P

(tss, ik kan er mij niet uit praten hé? :cry: )
Ik beloof wel dat de datbase voor de nieuwe userbase er ietsje beter uit zal zijn als mijn s**** voorbeeld :P
Gebruikersavatar
Snakehit
Elite Poster
Elite Poster
Berichten: 806
Lid geworden op: 05 mei 2004, 15:37
Locatie: Izegem, Belgie
Contacteer:

Ik heb mijn database aangepast aan de noden en wensen van de anderen :P

Tabel 1: tblCP
- HotelID
- HotelName
- Description
- Location

Tabel2: tblKlanten
- KlantID
- Naam
- Adres
- ...

Tabel 3: tblHotel
- KlantID
- HotelID
- CheckIn
- CheckOut

Tabel 4: tblPersoneel
- PersID
- Naam
- Password
- Adres
- Loon
- ...

Dit zal waarschijnlijk vlotter werken, je hebt een goed punt cueboy daar van die 3de tabel. Dat is inderdaad een betere manier en vlotter. Ik zal nu mijn asp script aanpassen.
Bedankt om me vooruit te helpen.
Plaats reactie

Terug naar “Development”