ugrás a tartalomhoz

Segítség

9072ricsi · 2016. Júl. 25. (H), 19.09
Sziasztok!

A segítségetekre lenne szükségem.

Egy rettentően egyszerű scriptre lenne szükségem, viszont a megvalósítás számomra problémás.

A Song History scriptünket nagyon nem szerettük. Most azt SSL tanúsítvány le is tiltotta, úgy hogy örülünk. Viszont szeretnénk ezt pótolni. Mivel a "szolgáltató" nem tudja biztosítani a HTTPS scriptet, ki nem adják, ezért szeretnénk egy nagyon egyszerűet készíteni.

A form része megvan:

<!DOCTYPE html>
<html>
<body>
<img src="https://www.richardradio.hu/logo.JPG">
<form>
  Előadó:<br>
  <input type="text" name="eloado">
  <br>
  Szám címe:<br>
  <input type="text" name="cim"> <br>
  Játszás ideje:<br>
  <input type="time" name="date"> <br> <br>
  Müsor:
  <input type="text" name="musor">
</form>
<br> <br>
  <input type="submit" value="Küldés">
</body>
</html>
Na most a Küldés gombra kattintva kellene megjeleníteni a szám címet. Itt van az egyik problémám. Itt kilehet próbálni.

Tökéletesen kitöltődik, viszont csak így kapja meg az adatokat:
action_page.php?eloado=Pr%F3ba&cim=Pr%F3ba&date=23%3A06&musor=Pr%F3ba

Bele van ebbe az action_page oldalba kódolva ez a kód:
<form action="action_page.php" method="post">
De valamiért nem szeretne megjelenni. Tudnátok nekem egy helyes kóddal segíteni?

A másik, hogy én ezt egy listába szeretném megjeleníteni. Magyarul 10:30-kor az Umbala számot, most meg 10:35-kor a Dájlámbó számot adtam le, és írtam be a formba. Ezt egy táblázatba(?) összeszedné, és posztolás alapján ezt kategórizálná.

Tudnátok a megvalósításában segíteni?

Előre is köszönöm!

Ricsi
 
1

specification

Pepita · 2016. Júl. 25. (H), 20.27
Kissé az eleje a feladatnak mintha kimaradt volna, ennyi alapján azt gondolom, hogy inkább backend feladat lesz.
Kezd el csak magyarul leírni a teljes (kívánt) működést , aztán meg látjuk, mennyire ez a form kell és hogyan lehet feldolgozni az adatokat.
2

POST

Poetro · 2016. Júl. 25. (H), 21.25
Lehet, hogy én olvasok valamit félre, de a method="post" nem látszik a HTML-ben.

Kinek szerenéd a beküldött adatot megjeleníten? Hol szeretnéd az adatot tárolni? Mi a célja a táblázatnak? Ha táblázat, miért nem használsz inkább táblázatkezelőt, akkor nem kell még az űrlapot sem elküldeni?
3

Válasz

9072ricsi · 2016. Júl. 29. (P), 16.08
Bocs a késésért!

Kezd el csak magyarul leírni a teljes (kívánt) működést


Egy formról szeretném majd a számok címét,előadójának nevét, a müsor nevét megjelnítetni a főoldalon.

Amit írunk azt Előadó esetén az eloado.html fájlba, a Szám címe esetén a szam.html fájlba, a Müsor nevét mondjuk a musor.html mappába másolná át. Amit a formba beleírtuk, azt a megfelelő fájlba beleillesztve átírja. Az én includeddal, meg body fríssitéssel beilleszteném a Főoldalba. Amit beírok pl. a szám címe részbe, azt majd megjeleníti a Főoldalon hasonló képen, csak designál, meg nem painttel ;) :

remélem így már érthetőbb.

Lehet, hogy én olvasok valamit félre, de a method="post" nem látszik a HTML-ben.


Raktam bele, nem müködött (sajnos).

Kinek szerenéd a beküldött adatot megjeleníten?


Mindenkinek. Lássuk mi is, mit írtunk be, meg lássa a hallgató is. Sajnos megszenvedünk ezen a téren. Mivel a szignálok külön fileként vannak lementve, ezért zenének tekintendő. A Sam pedig ezeknek a címét automatikusan bküldi a szervernek.

Hol szeretnéd az adatot tárolni?

Txt-be, vagy ha valaki tudna segíteni, akkor MySQL-be. Nem igazán ismerem a MySQL-t.

Mi a célja a táblázatnak? Ha táblázat, miért nem használsz inkább táblázatkezelőt, akkor nem kell még az űrlapot sem elküldeni?

Az elözőleg játszott zenék megjelenítése.

Köszönöm a segítségeteket.
4

Adatok tárolása

Pepita · 2016. Júl. 30. (Szo), 14.06
Ahhoz, hogy a felhasználótól beérkező adatot később meg tudd jeleníteni, tárolni kell azt. Mivel írtad, hogy "Nem igazán ismerem a MySQL-t", egyelőre maradjunk a fájlnál.
Először is a formot kell működésre bírni, hogy be is érkezzenek az adatok valamilyen feldolgozó szkripthez. Az egyszerűség kedvéért ez most legyen saját maga.
A fájlnév legyen song.php.

A te formodról több minden is hiányzik:
action paraméter, method, amit Poetro is jelzett, valamint a submit gomb kívül esik a formon (</form> után van), így annak megnyomására sosem fog elindulni a form action-ja.

Így néz ki helyesen:
<form method="post" action="song.php">  
  Előadó:<br>  
  <input type="text" name="eloado">  
  <br>  
  Szám címe:<br>  
  <input type="text" name="cim"> <br>  
  Játszás ideje:<br>  
  <input type="time" name="date"> <br> <br>  
  Müsor:  
  <input type="text" name="musor"> 
  <br> <br> 
  <input type="submit" value="Küldés"> 
</form>  
A többi sallangot kihagytam, a feladat szempontjából nem érdekes.
Ha így ráklikkelsz a Küldés gombra, és a fájl neve az, amit írtam, akkor újra be kell töltenie az üres formot - más még nem történik.

Most jöhet egy kis adat-ellenőrzés.
A </form> után, még a <body>-n belül írjuk ezt be:
<?php
if (isset($_POST['eloado']) && !empty($_POST['eloado'])) {
    echo('Előadó: ' . $_POST['eloado'] . '<br>');
}
else {
    echo('Nincs megadva előadó.' . '<br>');
}
?>
Ezzel annyit teszünk, hogy ellenőrizzük, hogy valóban postoltak-e eloado nevű mezőt (isset) és annak tartalma nem üres (!empty).
Ugyanígy sorban le kell ellenőrizni a többi kötelező mezőt is.
Ha mindegyik rendben van, akkor jöhet a fájlba mentés.
Itt viszont nagyon vigyázz, a felhasználóktól érkező adatokat mindig megfelelően validálni és szűrni kell, másképp nagyon csúnya meglepetések érhetnek! Ezzel kapcsolatban találsz itt több biztonságról szóló cikket, ezzel nem foglalkozom külön.

Amit írunk azt Előadó esetén az eloado.html fájlba, a Szám címe esetén a szam.html fájlba, a Müsor nevét mondjuk a musor.html mappába másolná át.
Ez így nem teljesen kerek, szerintem a musor.html is inkább fájl, mint mappa.
Mit csinálsz akkor, ha mindhármat kitöltik? 3 fájlba írsz?

Végülis mindegy, a fenti ellenőrzésekkel kiderül, hogy mit töltöttek ki.
Javaslat: valami spam-szűrést azért rá kéne tenni, mert így nagyon sok butaságot is hozzá fogsz írni a fájljaidhoz.

Nézzük azt, hogy jött eloado post, ezt hozzá kell írni (az eddigiek után) az eloado.html fájlhoz.
Akkor a korábbi feltételünk true (igaz) ága az alábbiak szerint módosul:
if (isset($_POST['eloado']) && !empty($_POST['eloado'])) {
    echo('Előadó: ' . $_POST['eloado'] . '<br>');
    $eloado = '<p class="valami_css_class_eloadonak">' . htmlspecialchars($_POST['eloado']) . '</p>' . "\n";
    $bytes = file_put_contents('eloado.html', $eloado, FILE_APPEND);
    echo($bytes . ' byte adat kiírva.<br>');
}
Ezek alapján meg tudod csinálni a többi fájlt is, amennyiben tényleg külön akarod kezelni.

Amiket használtunk:
htmlspecialchars: pl. a html tag-eket jelölő '<'-t és társait cseréli le entitásokra, így megakadályozható, hogy egy óvodás kislány html-t illesszen az oldaladba. Azért csak egy ovis, mert van még kisezeregy módszer, ami ezen még át fér, ez önmagában még nagyon messze van a biztonságtól!
file_put_contents: ezzel a függvénnyel lehet egyszerűen fájlba írni, visszaadja a ténylegesen kiírt byte-ok számát (ezt csak fejlesztés alatt érdemes figyelni, ha false, akkor hiba volt). A FILE_APPEND paraméterrel adjuk meg, hogy ha létezik a fájl, akkor hozzá írni szeretnénk.

Remélem ezek alapján sikerül megoldani.

Szerk.: természetesen (MySql) adatbázisban tárolva az adatokat szép statisztikákat is lehet később készíteni, többféle megjelenítést ki lehet hozni, tehát ettől még nagyon javaslom, hogy kezdj el érdeklődni az adatbázis-kezelés iránt. :)
6

Köszönöm!

9072ricsi · 2016. Júl. 31. (V), 22.37
Szia!

Óriási köszönet érte. Megpróbálom megcsinálni, ha nem megy, rád írnák. Így mondjuk nekem okésnak tünik. A biztonság úgy lenne megoldva, hogy mi a cpanelünkre raknánk be, tehát csak a müsorvezetők férnek hozzá.

Az adatbázist mindenféle képpen szeretném elkezdeni, csak még a php tart, másikat meg nem igazán szeretnék bevállalni!
8

Szívesen

Pepita · 2016. Aug. 1. (H), 06.48
Ha lesz még kérdés, tedd fel itt a fórumon, több választ kaphatsz úgy.

Rendben, mysql ráér.

(Magdit meg inkább hagyjuk. :))
5

off

Pepita · 2016. Júl. 30. (Szo), 14.15
Most nézem a rajzon, hogy Rúzsa Magdi megy, ha ezt előbb nézem, bizony nem segítek... :-D
7

Hallgasd meg az új számát,

9072ricsi · 2016. Júl. 31. (V), 22.39
Hallgasd meg az új számát, szerintünk nagyon jó lett. De mi sem vagyunk oda annyira érte. Hallgatók kérték, mi teljesítettük ;D