Eli väsään koulutehtävänä tällaista:
PHP-sovellus, jossa on lomake, jonka avulla käyttäjä voi lähettää sähköpostia haluamaansa sähköpostiosoitteeseen. Lomakkeella on valintaruutu (check box), jonka avulla käyttäjä voi valita haluaako hän tallentaa lähettäjän osoitteen evästeenä. Tallennus tapahtuu ruksaamalla valintaruutu valituksi. Mikäli lähettäjän osoite tallennetaan, kirjoitetaan se evästeen asettamisen jälkeen aina automaattisesti lähettäjäkenttään ja tällöin myös valintaruutu on automaattisesti valittuna. Mikäli käyttäjä haluaa poistaa evästeen, hän tyhjää valintaruudun, jonka jälkeen eväste siis tuhotaan; tällöin on lähettäjäkenttä jatkossa tyhjä ja valintaruutu ei ole valittuna. Jos käyttäjä tämän jälkeen jälleen haluaa tallentaa evästeen, hän ruksaa valintaruudun valituksi, jolloin sovellus jälleen tallentaa evästeen, kuten edellä on kuvattu.
Eli ongelmana on, saada tuo valintaruutu toimimaan. Miten tätä pitäisi lähestyä? Muuten kaikki toimii.
PHP-ongelma
Xcode, Mac OS X Server sekä muuta hauskaa ja hyödyllistä
7 viestiä
• Sivu 1/1
-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: PHP-ongelma
Viesti Kirjoittaja rthghdfger »
Haluatko että cookie tyhjennetään heti, kun käyttäjä on ottanut ruksin pois? Ruksin laitto tai poisto ei anna submit-käskyä, jonka php-skripti tarvitsee, jotta toiminto toteutetaan.
Ratkaisu on kirjoittaa tai etsiä sellainen javascript, joka aktivoi lomakkeesi eli tekee tietojen lähetyksen palvelimelle (submit) heti ruksin tilan muuttuessa. Tässä tulee pari ongelmaa: kaikilla käyttäjillä ei ole javascript päällä. Lisäksi sellainen tapaus, että käyttäjä voi laittaa ruksin päälle vaikka osoitekenttä olisi tyhjä. Tämän voi tarkistaa ja estää laajentamalla javascriptiä.
Koska tämä on koulutehtävä, voit jatkaa tästä eteenpäin omin avuin. Onko tehtävä annettu tällaisena vai oletko sen itse suunnitellut? Hieman mietityttää, onko mielekästä tallentaa sähköpostiosoitetta cookieksi, mutta ehkä tämä on vain harjoitus niiden käyttämiseksi.
![Hymy [:)]](./images/smilies/icon_smile.gif)
Ratkaisu on kirjoittaa tai etsiä sellainen javascript, joka aktivoi lomakkeesi eli tekee tietojen lähetyksen palvelimelle (submit) heti ruksin tilan muuttuessa. Tässä tulee pari ongelmaa: kaikilla käyttäjillä ei ole javascript päällä. Lisäksi sellainen tapaus, että käyttäjä voi laittaa ruksin päälle vaikka osoitekenttä olisi tyhjä. Tämän voi tarkistaa ja estää laajentamalla javascriptiä.
Koska tämä on koulutehtävä, voit jatkaa tästä eteenpäin omin avuin. Onko tehtävä annettu tällaisena vai oletko sen itse suunnitellut? Hieman mietityttää, onko mielekästä tallentaa sähköpostiosoitetta cookieksi, mutta ehkä tämä on vain harjoitus niiden käyttämiseksi.
![Hymy [:)]](./images/smilies/icon_smile.gif)
-
- Viestit: 416
- Liittynyt: 11.3.2004 klo 21.05
Re: PHP-ongelma
Viesti Kirjoittaja Pyrzi »
Itse ymmärsin niin, että kun on painettu Lähetä painiketta, niin samalla katsotaan onko checkbox valittu ja jos on, niin tallennetaan sähköposti evästeisiin ja jos taas ei ole, tuhotaan eväste.mcpekkis kirjoitti:Haluatko että cookie tyhjennetään heti, kun käyttäjä on ottanut ruksin pois? Ruksin laitto tai poisto ei anna submit-käskyä, jonka php-skripti tarvitsee, jotta toiminto toteutetaan.
Ratkaisu on kirjoittaa tai etsiä sellainen javascript, joka aktivoi lomakkeesi eli tekee tietojen lähetyksen palvelimelle (submit) heti ruksin tilan muuttuessa. Tässä tulee pari ongelmaa: kaikilla käyttäjillä ei ole javascript päällä. Lisäksi sellainen tapaus, että käyttäjä voi laittaa ruksin päälle vaikka osoitekenttä olisi tyhjä. Tämän voi tarkistaa ja estää laajentamalla javascriptiä.
Koska tämä on koulutehtävä, voit jatkaa tästä eteenpäin omin avuin. Onko tehtävä annettu tällaisena vai oletko sen itse suunnitellut? Hieman mietityttää, onko mielekästä tallentaa sähköpostiosoitetta cookieksi, mutta ehkä tämä on vain harjoitus niiden käyttämiseksi.
Tehtävä annettiin tällaisena ja harjoitusmielessä sähköposti tallennetaan

-
- Viestit: 1384
- Liittynyt: 25.4.2009 klo 22.29
Re: PHP-ongelma
Viesti Kirjoittaja rthghdfger »
checkbox ja checked. Niillä pitäisi löytyä ratkaisua, kvg.
![Iso hymy [:D]](./images/smilies/icon_biggrin.gif)
![Iso hymy [:D]](./images/smilies/icon_biggrin.gif)
-
- Viestit: 1856
- Liittynyt: 29.5.2007 klo 15.58
Re: PHP-ongelma
Viesti Kirjoittaja Matti Niemelä »
Joo, ihan vaan tarkistaen onko sitä checkboxia asetettu, teet setcookie('nimi', null, *loput asetukset samoin kuin asettaessa*); niin cookie poistuu. Pitää vaan muistaa header("Location: osote");die;:llä lähettää takas siihen lomakkeelle, koska cookiemuutokset tulevat voimaan vasta seuraavalla sivulatauksella. Ellei tietty poista sitä arvoa $_COOKIE:sta myös.
Karsee läjä kaikkee roinaa.
-
- Viestit: 420
- Liittynyt: 22.9.2009 klo 11.44
Re: PHP-ongelma
Viesti Kirjoittaja aritko »
PHP scriptissä jota lomake kutsuu:
Lomakkeessa sitten taas
Jotain tälläistä, niin lähtee pelittämään. Toivottavasti tästä oli apua...
Lisävinkkejä:
PHP setcookie
PHP $_POST
EDIT: Muokkasi koodia vähän paremmaksi
Koodi: Valitse kaikki
//Aina kun lomake lähetetään tuhotaan olemassa oleva keksi
if (isset($_COOKIE['email'])) setcookie("email",$_POST['email'], time()-3600); // Keksi siis tuhotaan antamalla negatiivinen aika
// jos checkbox valittuna aseta keksi
if (isset($_POST['save_email'])) setcookie("email",$_POST['email'], time()+3600); // Voimassa siis tästä hetkestä 3600 sek
Koodi: Valitse kaikki
<input type="text" name="email" <?php if(isset($_COOKIE['email'])) echo 'value="'.$_COOKIE['email'].'"'; ?>>
<input type="checkbox" name="save_email" <?php if(isset($_COOKIE['email'])) echo 'checked'; ?>>
Lisävinkkejä:
PHP setcookie
PHP $_POST
EDIT: Muokkasi koodia vähän paremmaksi
-
- Viestit: 416
- Liittynyt: 11.3.2004 klo 21.05
Re: PHP-ongelma
Viesti Kirjoittaja Pyrzi »
Kiitos kaikille avusta, ymmärsin idean ohjeiden perusteella ja sain ohjelman toimimaan haluamalla tavalla ![Hymy [:)]](./images/smilies/icon_smile.gif)
![Hymy [:)]](./images/smilies/icon_smile.gif)
7 viestiä
• Sivu 1/1
Palaa sivulle “Ohjelmointi, skriptit ja palvelimet”
Hyppää
- Yleiset aiheet
- ↳ Ajankohtaista Apple-maailmasta
- ↳ Käyttöjärjestelmät
- ↳ Ohjelmat
- ↳ Yleiskeskustelu
- Mac ja oheislaitteet
- ↳ Yleiskeskustelu laitteista
- ↳ MacBook, MacBook Pro ja MacBook Air
- ↳ iMac
- ↳ Mac mini
- ↳ Mac Pro ja Mac Studio
- ↳ Ongelmia Macin kanssa?
- iPhone, iPad ja Apple Watch
- ↳ iPhone-, iPad- ja Apple Watch -laitekeskustelu
- ↳ iPhone-, iPad- ja Apple Watch -ohjelmat sekä iOS
- ↳ Ongelmia iPhonen, iPadin tai Apple Watchin kanssa?
- Huviksi ja hyödyksi
- ↳ Off-topic
- ↳ Kuva ja graafinen suunnittelu
- ↳ Audio ja musiikki
- ↳ Video, televisio ja elokuvat
- ↳ Pelit ja pelaaminen
- ↳ Ohjelmointi, skriptit ja palvelimet
- ↳ Tietoturva ja varmuuskopiointi
- ↳ Verkot, mobiilidata ja muut puhelimet
- ↳ Retronurkka
- ↳ Foorumin ylläpito
- Kauppapaikka
- ↳ Myydään Mac
- ↳ Myydään iPhone, iPad ja iPod
- ↳ Myydään muut Applen tuotteet
- ↳ Myydään muuta tietotekniikkaa
- ↳ Ostetaan Mac
- ↳ Ostetaan iPhone, iPad ja iPod
- ↳ Ostetaan muut Applen tuotteet
- ↳ Ostetaan muuta tietotekniikkaa
- ↳ Vaihdetaan, annetaan, työtä haetaan ja tarjotaan
- ↳ Kauppapaikan keskustelu ja hintavinkit