Autor Zpráva
raddimm.xx
Profil
Přecházím na PHP7 a nemůžu najít jak vyřešit incializiace proměnných z formuláře

Pokud někdo odešle formulář (dvě pole) a ve skriptu mám: if > odeslany formulář > ulož

$set = array();
$set["titulek"] = "'" . $zaznamy["titulek"] . "'";
$set["perex"] = "'" . $zaznamy["perex"] . "'";
$pozadavek = mysqli_query($link,"INSERT INTO clanky (" . implode(", ", array_keys($set)) . ") VALUES (" . implode(", ", $set) . ")");

přičemž pole perex je prázdné vypise chybu:
Notice: Undefined index: perex

chaps ze to je problém nutnosti incializovat proměnou?
ale jak to vyřešit elegantně?
Beavis
Profil
raddimm.xx:
<?php

$set = [];
$set['titulek'] = $zaznamy['titulek'] ?? 'fallback, případně prázdný string';
Tomášeek
Profil
raddimm.xx:
Nikde neuvádíš, kde se bere pole $zaznamy. Navíc je zbytečné, data jsou v GET/POST.

Ten SQL dotaz je taky pekelný. Jednak stylem skládání, kdy se klíče musí shodovat s názvy sloupců v DB, druhak neošetřený.

Beavis:
Ano, teoreticky ano. Ale neřeší to příčinu problému. Formulářová pole (textová, numbery, textarey, ...) se odesílají i prázdná, nejde-li zrovna o checkboxy.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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