Pagina 1 van 1
[ASP/PHP] Online Reservaties
Geplaatst: 22 jun 2004, 20:52
door Snakehit
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
Geplaatst: 22 jun 2004, 22:31
door meon
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
Geplaatst: 22 jun 2004, 22:43
door Snakehit
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.
Geplaatst: 22 jun 2004, 23:50
door meon
Code: Selecteer alles
mysql_query("INSERT INTO tabel VALUES('waarde1','waarde2');");
Zoiets, of wat bedoel je?
Dit is PHP fyi.
Geplaatst: 23 jun 2004, 07:10
door Snakehit
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]
Geplaatst: 23 jun 2004, 07:43
door Sensei Zeon
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
Geplaatst: 23 jun 2004, 09:09
door Lukse
As ge al VB.NET kent, is het volgens mij simpeler om ASP.NET te gebruiken.
Geplaatst: 23 jun 2004, 15:47
door Snakehit
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 :
dus ik zal later meer deftig antwoord geven
Geplaatst: 25 jun 2004, 12:53
door Snakehit
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
Door die waarden aan te passen, tevergeefs
Iemand een idee?
Mvg,
Snakehit
Geplaatst: 25 jun 2004, 13:22
door meon
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 .
Geplaatst: 25 jun 2004, 13:47
door Snakehit
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
Kan je dat aub een beetje meer uitleggen. Ik zit enkel met een administrator (XP) als het dat is wat je bedoelt.
Geplaatst: 25 jun 2004, 14:28
door meon
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.
Geplaatst: 25 jun 2004, 14:37
door Snakehit
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
Geplaatst: 25 jun 2004, 14:52
door meon
Nee, niet delen via het web; "Beveiliging" heb je nodig.
Geplaatst: 25 jun 2004, 15:01
door Snakehit
Sorry, ik vind dat nergens.
kan je dat aub een keer uitleggen?
Geplaatst: 25 jun 2004, 15:33
door Arrigi
Moet je dan niet in veilige modus opstarten en dan dat aanpassen?
Geplaatst: 25 jun 2004, 15:49
door Spock
Wil je zoiets als op
www.dinersreference.com ?
Daar kan je online een tafel reserveren en gelijk je menukeuze doorsturen.
Geplaatst: 25 jun 2004, 15:58
door Snakehit
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
Geplaatst: 26 jun 2004, 12:07
door meon
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.
Geplaatst: 26 jun 2004, 12:24
door Snakehit
Ok, hij struikelt er niet meer over.
Bedankt, volgende probleem is al veel ingewikkelder
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?
Geplaatst: 26 jun 2004, 12:47
door Lukse
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?
Geplaatst: 26 jun 2004, 13:08
door Snakehit
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
Geplaatst: 26 jun 2004, 13:31
door Snakehit
Ok, het is afgewerkt
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
<%
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
Mvg,
Snakehit
[EDIT]Code nog gewijzigd
Geplaatst: 26 jun 2004, 16:07
door meon
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
Geplaatst: 26 jun 2004, 16:26
door Snakehit
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
Geplaatst: 26 jun 2004, 16:38
door meon
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
Geplaatst: 26 jun 2004, 16:38
door CueBoy
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
)
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 ?
Geplaatst: 26 jun 2004, 16:43
door CueBoy
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, ...
Geplaatst: 26 jun 2004, 16:45
door meon
Jipz, dat dus. Enfin, ik wilde eigenlijk gewoon even 'een relatie' aantonen, niet zozeer de oplossing geven
(tss, ik kan er mij niet uit praten hé?
)
Ik beloof wel dat de datbase voor de nieuwe userbase er ietsje beter uit zal zijn als mijn s**** voorbeeld
Geplaatst: 26 jun 2004, 17:36
door Snakehit
Ik heb mijn database aangepast aan de noden en wensen van de anderen
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.