Autor Zpráva
jefitto44
Profil
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
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']
mysqli_query() nebo mysqli_real_query()
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
Lepe je udelat pro newletter uplne novou tabulku a provazat ji pres id uzivatele.
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

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: