Autor | Zpráva | ||
---|---|---|---|
jefitto44 Profil |
#1 · Zasláno: 10. 4. 2014, 06:50:40
Mám kontaktný formulár a jeho súčasťou je checkbox, kde môžeme zaznačiť, či chceme odoberať newsletter, alebo nie.
Celé je to riešené tak, že ak bude checkbox zaškrtnutý, uloží do databázy meno užívateľa, email užívateľa a do stĺpca newsletter uloží hodnotu 1 Problém je v tom, že neviem, ako prinútiť checkbox, aby pri odoslaní poskytol hodnotu 1, alebo 0 (true, alebo false) a neviem, ako by som to mal zapísať do skriptu, nakoľko v PHP som lamka. Zatiaľ som dumal nejako takto <?php if ($_POST["newsletter"]==1) { $newsletter = mysqli_connect ("localhost", "username", "password"); $insert = mysqli_query ("database_name"); INSERT "???" INTO prefix_user; values ($name, $mail, 1) } ?> A tu som skončil, lebo som pozeral nejake návody, kde sa vyskytli mnohé premenné a ja neviem, načo tam vlastne sú :O Takže by som potreboval pomôcť v podstate s dvoma vecami - Ako prinútiť input type="checkbox" aby poskytol hodnotu 1, alebo 0, podľa toho, či je zaškrtnutý, alebo nie - a ako vložiť premenné $name, $mail a $newsletter do databázy? Ďakujem za každú pomoc |
||
jenikkozak Profil |
#2 · Zasláno: 10. 4. 2014, 09:35:52
Ověř si, jaké hodnoty odesílá zaškrtnutý a nezaškrtnutý prvek.
Pokud chceš pracovat s databázemi, najdi si jejich vůbec nejzákladnější návod. Tam máš potřebné instrukce. |
||
peta Profil |
print_r($_POST); // vypise vse, co je v postu if (isset($_POST['newsletter'])) {echo 0;} else {echo $_POST['newsletter'];} // vypise 0 nebo $_POST['newsletter'] http://www.php.net/manual/en/book.mysqli.php http://www.php.net/manual/en/mysqli.query.php //$query = "INSERT INTO `tabulka` (`sloupce`,`sloupce`,) VALUES ('data','data')"; $query = "INSERT INTO `tabulka` (`name`,`mail`,`newsletter`) VALUES ('$name','$mail',1)"; $result = mysqli_query($query); Sql prikaz si muzes doslovne prelozit: VLOZ do-tabulky (do-sloupcu ...) HODNOTY (...) Problem 1: Mas tam vytvorenou tabulku v databazi? Pokud ne, tak do sql dotazu nemuzes uvest jmeno tabulky a pokud uvedes vymyslene, dotaz napise po spusteni pres mysqli_query chybu a nic se neprovede. Problem 2: Tabulku sice mas uz z drivejska, je naplnena daty. INSERT je ale prikaz pro vlozeni noveho radku do tabulky. Pro zmenu udaju se pouziva prikaz UPDATE a k nemu je dobre znat cislo radku (id sloupce s autoincrement indexem). Obvykle by mohla mit tabulka sloupce: id, name, mail, newsletter Problem 3: Mel bys zajistit, aby program nemohl byt zneuzit, neresis vubec real_escape_string. $newsletter = mysqli_connect ("localhost", "username", "password"); // klidne si to uloz do promenne newletter, ale ve skutecnosti je to pripojeni k db $conn, $connection pripadne nekdy se pouziva $link nebo $handle |
||
Časová prodleva: 10 let
|
0