Witam wszystkich, potrzebuję rozwiązania dla amatora na następujący problem:
Mam stronę internetową http://skrzatec.cba.pl/ która słuzy mi jako prosty kalkulator. Są tam pola tekstowe do wypełnienia dzięki którym kalkulator wykonuje odpowiedni algorytm.
Chciałbym zrobić button/guzik/cokolwiek zapisujący mi wpisane przeze mnie wartości do pliku a drugi button/guzik/cokolwiek odczytujący te wartości do tych samych pól.
Szukam najprostszego rozwiązania bo jestem amatorem. Dziękuję.
Zamiast do pliku - sugerowałbym zapis do bazy danych. Według mnie niepotrzebnie używasz ramek (frame name="prawo") - tego już się nie stosuje, są inne metody na to np Ajax.
A wracając do samego zapisu - ja bym to zrobił tak -
- Powtarzające się wartości - ew wspomagane "typem" zapisywałbym w oddzielnej tabeli - np rodzaje stali głównej.
- Każdą wpisaną wartość z formularza - także zapisywałbym do tabeli która by przechowywała owe wartości - a przy okazji wyniki.
Rozumiem też, że wpisując dane wejściowe - masz potrzebę zapisać je, oraz odtworzyć wyniki. Tutaj sugerowałbym je jakoś sensownie opisywać (nie każdy kalkulator u Ciebie ma pole "nazwa projektu") - wiec żebyś potem był w stanie to odnaleźć dodałbym wszędzie jakieś pola z nazwą danego obliczenia.
Poza tym na jednej ze stron wywala Ci '); docprint.document.close(); docprint.focus(); }
(belka żelbetonowa)
axelbest napisał(a):
Zamiast do pliku - sugerowałbym zapis do bazy danych. Według mnie niepotrzebnie używasz ramek (frame name="prawo") - tego już się nie stosuje, są inne metody na to np Ajax.
A wracając do samego zapisu - ja bym to zrobił tak -
- Powtarzające się wartości - ew wspomagane "typem" zapisywałbym w oddzielnej tabeli - np rodzaje stali głównej.
- Każdą wpisaną wartość z formularza - także zapisywałbym do tabeli która by przechowywała owe wartości - a przy okazji wyniki.
Rozumiem też, że wpisując dane wejściowe - masz potrzebę zapisać je, oraz odtworzyć wyniki. Tutaj sugerowałbym je jakoś sensownie opisywać (nie każdy kalkulator u Ciebie ma pole "nazwa projektu") - wiec żebyś potem był w stanie to odnaleźć dodałbym wszędzie jakieś pola z nazwą danego obliczenia.
Poza tym na jednej ze stron wywala Ci
'); docprint.document.close(); docprint.focus(); }
(belka żelbetonowa)
Może i stosuje się inne metody ale ten moment zostawmy to w ramkach.
Błąd wynika z tych cholernych reklam, nie ma co się nim przejmować.
Zapis/odczyt może być do tabeli choć chyba wolałbym do pliku. Program ten będę używał stacjonarnie (nie w sieci), aczkolwiek na razie jest zamieszczony i w przyszłości może go rozwinę.
Tak czy tak potrzebne mi instrukcje w jaki sposób to zrobić.
Jeśli chcesz zapisywać do pliku to OK - (w php pomoże Ci z tym fopen/fwrite). Pomimo tego nadal polecam użycie bazy danych - ponieważ robiąc "swoją pseudo-bazę" w pliku - napotkasz pewnie więcej problemów. A co do bazy to może być to np sqlite.
A instrukcje jako tako podałem wcześniej - przy czym w podejściu z plikiem tekstowym będziesz i tak musiał jakoś te dane odseparować i zastosować jakiś format (np json, csv, xlsx).
A dokładnie jakich instrukcji potrzebujesz, bo nie wiem z czym dokładnie masz problem?
Z zapisem do plików? php->fopen i fwrite
Z bazą danych? mysql tutorial
albo sqlite tutorial
axelbest napisał(a):
Jeśli chcesz zapisywać do pliku to OK - (w php pomoże Ci z tym fopen/fwrite). Pomimo tego nadal polecam użycie bazy danych - ponieważ robiąc "swoją pseudo-bazę" w pliku - napotkasz pewnie więcej problemów. A co do bazy to może być to np sqlite.
A instrukcje jako tako podałem wcześniej - przy czym w podejściu z plikiem tekstowym będziesz i tak musiał jakoś te dane odseparować i zastosować jakiś format (np json, csv, xlsx).
A dokładnie jakich instrukcji potrzebujesz, bo nie wiem z czym dokładnie masz problem?
Z zapisem do plików?php->fopen i fwrite
Z bazą danych?mysql tutorial
albosqlite tutorial
O bazach danych sobie poczytam. Na ten moment zostaję przy pierwotnym planie php ->fopen i fwrite (choć z php nie miałem jeszcze styczności)
W podanych linku mam takie dane:
<input value="0" type="text" id="b1" size="4" />
<input value="3" type="radio" name="optradio">
<input class="form-control" placeholder="Nazwa projektu" type="text" id="nazwa" />
<select id="fi">
<option selected="selected">12</option>
<option>14</option>
</select>
<select id="lBetonID" onchange="showData()">
, gdzie showData() to http://skrzatec.cba.pl/moduly/belka_tabele.js
jak skonstruować fwrite i fopen używając buttona aby informacje z w/w elementów zapisać lub wczytać z pliku. Potrzebny kod.
pop3k napisał(a):
Na ten moment zostaję przy pierwotnym planie php ->fopen i fwrite (choć z php nie miałem jeszcze styczności)
to lepiej sobie poczytaj w pierwszej kolejności o bezpieczeństwie żebyś sobie krzywdy nie zrobił
To i ja dodam, że przy takim zadaniu jakie sobie wytyczyłeś - najpierw nauczyłbym się tego jak działają formularze w htmlu i jak odbierać z nich dane.
Np taki <select id="fi">
jak wyżej podałeś - nie ma atrybutu name
- rzadko się z tym spotykałem, ale obstawiam że po przesłaniu (nieważne czy GET czy POST) - te dane nie trafią do serwera.
axelbest napisał(a):
To i ja dodam, że przy takim zadaniu jakie sobie wytyczyłeś - najpierw nauczyłbym się tego jak działają formularze w htmlu i jak odbierać z nich dane.
Np taki
<select id="fi">
jak wyżej podałeś - nie ma atrybutuname
- rzadko się z tym spotykałem, ale obstawiam że po przesłaniu (nieważne czy GET czy POST) - te dane nie trafią do serwera.
Te dane są jedynie przejmowane przez js i wykonywane są na nich obliczenia. Czy to jest niebezpieczne?
pop3k napisał(a):
axelbest napisał(a):
To i ja dodam, że przy takim zadaniu jakie sobie wytyczyłeś - najpierw nauczyłbym się tego jak działają formularze w htmlu i jak odbierać z nich dane.
Np taki
<select id="fi">
jak wyżej podałeś - nie ma atrybutuname
- rzadko się z tym spotykałem, ale obstawiam że po przesłaniu (nieważne czy GET czy POST) - te dane nie trafią do serwera.Te dane są jedynie przejmowane przez js i wykonywane są na nich obliczenia. Czy to jest niebezpieczne?
A i przejmuje dane nie po nazwie tylko po id (jako amator nie widziałem różnicy)
zależy kto będzie mógł wysyłać te dane, ja bym to zrobił na hasło, żeby lekko odsiać zbędny spam
czysteskarpety napisał(a):
zależy kto będzie mógł wysyłać te dane, ja bym to zrobił na hasło, żeby lekko odsiać zbędny spam
OK, przemyślę to.
Wracając do głównego pytania: Pomożecie skonstruować kod żeby odczytywało/zapisywało w/w wartości?
zależy kto będzie mógł wysyłać te dane, ja bym to zrobił na hasło, żeby lekko odsiać zbędny spam
Albo reCAPTCHA (https://www.google.com/recaptcha/intro/android.html) czy coś w podobie
Słuchajcie, zrobiłem piękne zapisywanie danych z vaule do csv.
<form action="save.php" method="post" name="myform" id="myform">
<a href="#" onclick="document.getElementById('fileID').click(); return false;" class="btn" >SAVE</a> <input id="fileID" type="submit" style="visibility: hidden; display: none;" />
<br><input type="text" name="username" required="1"/>
<br><input class="form-control" placeholder="Nazwa projektu" type="text" id="nazwa" name="nazwa"/>
<br><select id="fi" name="fi">
<option>6</option>
<option selected>12</option>
</select>
<br><input checked type="checkbox" id="czek0" name="czek0" />
</form>
i save.php:
<?PHP
if(isset($_POST['username'])){
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
$file = fopen('php://output', 'w');
fwrite($file, $_POST['username'].PHP_EOL);
fwrite($file, $_POST['nazwa'].PHP_EOL);
fwrite($file, $_POST['fi'].PHP_EOL);
fwrite($file, $_POST['czek0'].PHP_EOL);
fclose($file);
}
?>
Zapisuję plik na komputerze. Teraz chciałbym go wczytać po to, aby automatycznie podmieniło mi moje 4 wybrane wartości na stronie (username, nazwa, fi i czek0). Da się tak?