Form, databaza, može bez ili savet?

2

Form, databaza, može bez ili savet?

offline
  • ... i pozdravite Vašu mamu...
  • Mi smo sve podigli u ovom gradu.
  • Pridružio: 20 Mar 2006
  • Poruke: 3894

@Inenad: Nisam se pozvao na to. Embarassed Ja sam samo kopirao tvoj kod, napravio par izmena za vrednosti i zatvorio kod ?>... Isprobaću ga još jednom. Hvala ti puno za trud i pomoć. Wink

@karlos: Odlično, sve šljaka samo tako! To je ono što sam tražio! Jedina zamerka je što izbacuje noviju poruku ispod stare, odnosno stara poruka je na vrhu, a novija ispod nje. Jel bi moglo ovo da se isprogramira da idu obrnutim redom? Da idu obaveštenja od najnovijih pa do najstarijih od gore prema dole?

I da pitam, pošto nema opcije izmene posta, da li je moguće napraviti opciju brisanja? Pošto će biti obaveštenja koja vremenom zastare i ne treba da ih bude gomila tu... A kad sam kod vremena, nadam se da nije strašno napraviti da izbaci vreme obaveštenja pored naslova recimo? Mislim da je to samo jedan mali kodić, moram da ga potražim na netu, ali me zanima, da li ga samo stavim kod ispisa Naslova i to je to?

Response.Write ("<b>Naslov:</b> " & Naslov & " todaysDate,0<br>")

Recimo ovako nekako?

A što se tiče .dat fajla... Skontao sam da su različiti, ali ja mislio to tako treba... Embarassed



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Nema na cemu, pretpostavio sam ja Smile nego mozes i ti prepraviti taj kod da radi kao moj php, tj. da prvo procita fajl, izbrise, napravi novi, napise prvo ovo novo sto si upravo doda, pa onda staro, tj. da se prikazuje u obrnutom redu Smile to moj kod radi.



offline
  • Pridružio: 25 Maj 2007
  • Poruke: 114
  • Gde živiš: Novi Sad, Sombor

Evo ga kod. Znaci, ima opcija brisanje, ima datum kad je poruka napisana, najnovija poruka je na vrhu, postoji maksimalno 20 poruka ( mada se ovaj broj moze povecati proizvoljno - dok ima memorije). Kad se unese 21. poruka, tada se najstarija poruka brise automatski, tako da se uvek pamti samo 20 najnovijih poruka.

Za one koji zele da vide kod:
<html><head><title>Formular</title></head> <body> <%    Dim FSO    Dim MyFile    Dim Datum(20)    Dim ImeAsistenta(20)    Dim Naslov(20)    Dim Obavestenje(20)    Dim Dopuna_ImeAsistenta    Dim Dopuna_Naslov    Dim Dopuna_Obavestenje    Dim Broj_Poruka    Dim Broj_Brisanje        'Ako smo pritisnuli taster    If Request.QueryString("OP")="Unos" Then       'Datum na serveru       Datum(20)=FormatDateTime(Date, 1)       'Ucitava iz forme podatke       ImeAsistenta(20)=Request.Form("ImeAsistenta")       Naslov(20)=Request.Form("Naslov")       Obavestenje(20)=Request.Form("Obavestenje")       'Ako su sva polja popunjena       If ImeAsistenta(20)<>"" And Naslov(20)<>"" And Obavestenje(20)<>"" Then          'Zamenjuje ENTER, tj. novi red sa <br>. Ovo je obavezno, jer moze doci do grekse          Obavestenje(20)=Replace(Obavestenje(20),chr(13)+chr(10),"<br>")          Call Ucitavanje_Fajla          Call Snimanje_Fajla       Else          'Ako nisu sva polja unesena, ispisuje poruku i prosledjuje unesene podatke nazad u formu, da se ne bi moralo ponovo unositi          Response.Write ("<br><center><font face='Verdana' size='3' color='#ff0000'>Gre&#353ka ! Niste uneli sve podatke !</font></center><br><br>")          Dopuna_ImeAsistenta=ImeAsistenta(20)          Dopuna_Naslov=Naslov(20)          Dopuna_Obavestenje=Obavestenje(20)       End If    'Ako smo pritisnuli "Brisanje"    ElseIf Request.QueryString("OP")="Brisanje" Then       Broj_Brisanje=Request.QueryString("BROJ")*1       Call Ucitavanje_Fajla       Call Snimanje_Fajla2    End If    Call Ucitavanje_Fajla    Call Ispis            Sub Ucitavanje_Fajla       Dim i       Set FSO = Server.CreateObject("Scripting.FileSystemObject")       Set MyFile = FSO.OpenTextFile(server.MapPath(".") & "\obavestenja.txt",1, true)       i=0       Do While MyFile.AtEndOfStream = False          i=i+1          Datum(i)=MyFile.ReadLine                   ImeAsistenta(i)=MyFile.ReadLine                   Naslov(i)=MyFile.ReadLine                   Obavestenje(i)=MyFile.ReadLine                Loop       Broj_Poruka=i       MyFile.Close       Set FSO=Nothing    End Sub            Sub Snimanje_Fajla       Dim i       Set FSO = Server.CreateObject("Scripting.FileSystemObject")       Set MyFile = FSO.OpenTextFile(server.MapPath(".") & "\obavestenja.txt",2, true)          'Najstarija poruka sa indeksom 20 se ne snima          If Broj_Poruka>=20 Then Broj_Poruka=19          MyFile.WriteLine (Datum(20))          MyFile.WriteLine (ImeAsistenta(20))          MyFile.WriteLine (Naslov(20))          MyFile.WriteLine (Obavestenje(20))          For i=1 To Broj_Poruka             MyFile.WriteLine (Datum(i))             MyFile.WriteLine (ImeAsistenta(i))             MyFile.WriteLine (Naslov(i))             MyFile.WriteLine (Obavestenje(i))          Next       MyFile.Close       Set FSO=Nothing    End Sub         Sub Snimanje_Fajla2       Dim i       Set FSO = Server.CreateObject("Scripting.FileSystemObject")       Set MyFile = FSO.OpenTextFile(server.MapPath(".") & "\obavestenja.txt",2, true)          For i=1 To Broj_Poruka             'Snima sve sem poruke koja se brise             If i<>Broj_Brisanje Then                MyFile.WriteLine (Datum(i))                MyFile.WriteLine (ImeAsistenta(i))                MyFile.WriteLine (Naslov(i))                MyFile.WriteLine (Obavestenje(i))             End If          Next       MyFile.Close       Set FSO=Nothing    End Sub                 Sub Ispis       Dim i       Response.Write ("<hr>")       For i=1 To Broj_Poruka          Response.Write ("<b>Datum:</b> " & Datum(i) & "<br>")          Response.Write ("<b>Asistent:</b> " & ImeAsistenta(i) & "<br>")          Response.Write ("<b>Naslov:</b> " & Naslov(i) & "<br>")          Response.Write ("<b>Obave&#353tenje:</b><br> " & Obavestenje(i) & "<br>")          Response.Write ("<a style='text-decoration:none;' href='formular.asp?OP=Brisanje&BROJ=" & i & "'><b>Brisanje</b></a><br>")          Response.Write ("<hr>")       Next    End Sub     %> Opis Predmeta     <form id="form1" name="form1" method="post" action="formular.asp?OP=Unos">         <table width="400" border="0">             <tr>             <td width="30%"><div align="right" class="style31">Asistent:</div></td>             <td width="70%"><input name="ImeAsistenta" type="text" size="30" maxlength="30" value="<%=Dopuna_ImeAsistenta%>" /></td>             </tr>             <tr>             <td width="30%"><div align="right" class="style31">Naslov:</div></td>             <td width="70%"><input name="Naslov" type="text" size="30" maxlength="30" value="<%=Dopuna_Naslov%>" /></td>             </tr>             <tr>             <td width="30%" valign="top"><div align="right" class="style31">Obave&scaron;tenje:</div></td>             <td width="70%"><textarea name="Obavestenje" cols="40" rows="5" ><%=Dopuna_Obavestenje%></textarea></td>             </tr>             <tr>             <td width="30%">&nbsp;</td>             <td width="70%"><input type="submit" name="Taster" value="Po&scaron;alji" /></td>             </tr>          </table>    </form> </body>



formular.asp
mycity.rs/must-login.png


Modifikacija poruke nema, ali nije problem da se napravi.

offline
  • ... i pozdravite Vašu mamu...
  • Mi smo sve podigli u ovom gradu.
  • Pridružio: 20 Mar 2006
  • Poruke: 3894

Izbacuje mi Error:

Microsoft VBScript runtime error '800a003e'

Input past end of file

/formular1.asp, line 124

A line 124 je: Naslov(i)=MyFile.ReadLine

Sub Ucitavanje_Fajla       Dim i       Set FSO = Server.CreateObject("Scripting.FileSystemObject")       Set MyFile = FSO.OpenTextFile(server.MapPath(".") & "\obavestenja.txt",1, true)       i=0       Do While MyFile.AtEndOfStream = False          i=i+1          Datum(i)=MyFile.ReadLine                   ImeAsistenta(i)=MyFile.ReadLine                   Naslov(i)=MyFile.ReadLine          Obavestenje(i)=MyFile.ReadLine                Loop       Broj_Poruka=i       MyFile.Close       Set FSO=Nothing    End Sub

E sad, meni ovo deluje skroz ispravno, ali aj... Ja baš nisam ekspert! Sad

Ako ti treba link, poslaću ti na PP... Wink

offline
  • Pridružio: 25 Maj 2007
  • Poruke: 114
  • Gde živiš: Novi Sad, Sombor

Mislim da znam sta je problem.

Treba da obrises stari fajl obavestenja.txt

Stari fajl je za svaku poruku imao po tri reda

ImeAsistenta(i)=MyFile.ReadLine          Naslov(i)=MyFile.ReadLine Obavestenje(i)=MyFile.ReadLine

a novi ima 4 reda.

Datum(i)=MyFile.ReadLine          ImeAsistenta(i)=MyFile.ReadLine          Naslov(i)=MyFile.ReadLine Obavestenje(i)=MyFile.ReadLine
Probaj pa javi.

offline
  • ... i pozdravite Vašu mamu...
  • Mi smo sve podigli u ovom gradu.
  • Pridružio: 20 Mar 2006
  • Poruke: 3894

Da, u pravu si... Ja sam i obrisao obavestenja.txt, ali sam ovaj najnoviji kod nazvao formular1.asp. A on je i dalje slao na formular.asp... Tako da je to doprinelo zbrci...

Ispravljeno i radi odlično. Mislim da je to manje više to. Sada ja sam moram da namestim da samo administrator i moderatori imaju pristup formularu i linku za brisanje obaveštenja...

Hvala ti puno kraza (šta sam dužan?), kao i svima koji su učestvovali. Ako bude frka - javljam vam se! Wink

Dopuna: 01 Sep 2008 23:08

Heh, sad sam razmišljao još malo o ovom mom zadatku... Javlja se sledeći problem, koji možda to i nije, ali haj da vas čujem...

Napravili smo, tj napravio je karlos, onaj formular.asp koji radi tačno ono što mi treba. E sad, fazon je da meni treba takav fajl za svaki predmet! Ovo formular.asp je za jedan predmet, ali na fakultetu imam brdo predmeta i svaki treba da ima svoja obaveštenja sa opisom predmeta. Kako ovo najlakše rešiti?

Evo nekog mog nabrzaka razmišljanja.
a) promenim ime formular.asp u ime_predmeta.asp i tamo u kodu, gde je form action stavim umesto formular.asp -> ime_predmeta.asp. Onda bih najverovatnije morao da promenim i obavestenja.txt u recimo ime_predmeta.txt, da se ne bi sva obaveštenja iz svih predmeta pojavljivala kod svih predmeta. Ili možda iskoristim neko filtriranje podataka, kao u prvom karlosovom postu, ono zadnje

Dim Kljucna_Rec

b) možda da napravim neki fajl koji će biti univerzalan za sve, kad se šalje obaveštenje, recimo da to bude formular.asp, a da se onda samo poziva ispisivanje za odgovarajući predmet.

Jel ima smisla moje razmišljanje? Izvodljivo? Možda bi najidealnije bilo da se ovo reši preko databaze, ali pošto nisam uspeo da se izborim ni sa običnom formom, databaza otpada... Ili da krenem da učim databaze (ili da se nađe neka izuzetno dobra duša da to možda napravi za mene, ako nije puno posla, ja stvarno ne znam).

Hajde, savetujte me. Smile

offline
  • Pridružio: 25 Maj 2007
  • Poruke: 114
  • Gde živiš: Novi Sad, Sombor

E, ovako:

a) mislim da ima previse predmeta ( ne znam kod tebe, ali kod mene na faksu postoji nekoliko stotina predmeta ) , da bi se tako koristilo. Zamisli situaciju da se cesto pojavljuju novi predmeti (novi smerovi), morao bi za svaki novi predmet da pravis posebno ASP fajl.

b) evo resenja:

Napravi se uvodna stranica npr: pocetna.asp ( po pravilu bi trebalo index.asp ili default.asp, ali su one verovatno vec zauzeta glavnom stranicom )

<html><head> <style type="text/css">    a:link {color: #0000ff;}    a:visited {color: #0000ff;}    a:hover {color: #008800;} </style> <title>Predmeti</title></head> <body> <a style='text-decoration:none;' href='formular.asp?PREDMET=Mat1'><b>1. Matematika 1</b></a> <br> <a style='text-decoration:none;' href='formular.asp?PREDMET=Mat2'><b>2. Matematika 2</b></a> <br> <a style='text-decoration:none;' href='formular.asp?PREDMET=Eng'><b>3. Engleski Jezik</b></a> <br> <a style='text-decoration:none;' href='formular.asp?PREDMET=Fiz'><b>4. Fizika</b></a> <br> <a style='text-decoration:none;' href='formular.asp?PREDMET=Hem'><b>5. Hemija</b></a> <br> <a style='text-decoration:none;' href='formular.asp?PREDMET=Inf'><b>6. Informatika</b></a> <br> </body> </html>

koja poziva formular.asp prosledjujuci mu naziv predmeta.
Ako se pojavi novi predmet, mnogo je lakse dodati jedan red nego ceo fajl. Jos bolja varijanta bi bila da se predmeti mogu unositi/brisati isto kao obavestenja. Takodje ih cuvati u nekom fajlu.


Izmenjeni formular.asp i pocetna.asp se nalaze u arhivi predmeti.rar
mycity.rs/must-login.png

Ko je trenutno na forumu
 

Ukupno su 797 korisnika na forumu :: 14 registrovanih, 3 sakrivenih i 780 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Ben Roj, Bokiboks, darios, dragoljub11987, kuntalo, kybonacci, novator, nuke92, Simon simonović, slonic_tonic, Vzor50, Zikapk, zlaya011, šumar bk2