Autor | Zpráva | ||
---|---|---|---|
Venca190 Profil * |
#1 · Zasláno: 12. 3. 2016, 16:48:10
Dobrý den,
převedl jsem svůj web ze subdomény na normální doménu(na jiném hostingu). Bohužel jedna ze stránek mi vypisuje chybu: Fatal error: Can't use function return value in write context ..... jedná se o řádek if (empty(trim($dev))) { $err[] = "Vyplňte pole dev."; } jak lze toto opravit? Co jsem googloval, tak jsem z té chyby moudrej moc nebyl (hlavně nechápu, že to na jiném hostingu funguje normálně a u wedosu mi to nejde). |
||
Alphard Profil |
#2 · Zasláno: 12. 3. 2016, 16:59:00
if (trim($dev)=="") { $err[] = "Vyplňte pole dev."; } $dev , neočekává se zapnuté register globals? Pak by bylo lepší dát tam ještě isset.
|
||
Fisir Profil |
#3 · Zasláno: 12. 3. 2016, 16:59:03
Reaguji na Vencu190:
Přímo tvůj případ je zmíněn v oficiální dokumentaci funkce empty() , možná by stálo za to se tam podívat.
|
||
Venca190 Profil * |
#4 · Zasláno: 12. 3. 2016, 17:08:19
Alphard:
jedná se o formulář a jeho kontrola... před uvedeným kodem mám ještě $dev = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $dev = $_POST['dev']; $err = array(); if (empty(trim($dev))) { $err[] = "Vyplňte pole dev."; } |
||
Alphard Profil |
#5 · Zasláno: 12. 3. 2016, 17:13:10
Venca190:
empty se většinou používá z toho důvodu, že negeneruje chybovou hlášku, pokud daná proměnná vůbec neexistuje. Váš kód je ale postavený tak, že by se warning generoval již na řádku 6, takže bych to navrhoval konstruovat takhle: $dev = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $err = array(); if (!isset($_POST['dev']) || ($dev = trim($_POST['dev'])) == '') { $err[] = "Vyplňte pole dev."; } |
||
Venca190 Profil * |
#6 · Zasláno: 12. 3. 2016, 17:17:39
Alphard:
takže pokud to dobře chápu, tak !isset($_POST['dev']) znamená, že pokud proměnná neexistuje || ($dev = trim($_POST['dev'])) == '') nebo je prázdná, vyhodí to $err
takže kod ze začátku $dev = ''; je zbytečné a mohu ho smazat?
|
||
Alphard Profil |
#7 · Zasláno: 12. 3. 2016, 17:20:38
„takže kod ze začátku
$dev = ''; je zbytečné a mohu ho smazat?“
Jak to mám vědět? :-) Definuje to $dev s nějakou defaultní hodnotou, záleží, jestli na tu proměnnou $dev v případě chyby ještě saháte, nebo ne. V opačeném případě to lze smazat.
|
||
Venca190 Profil * |
#8 · Zasláno: 12. 3. 2016, 17:32:31
Dobře díky, ještě poslední věc, není lepší to mít
if (!isset($dev) || ($dev = trim($dev)) == '') { $err[] = "Vyplňte pole dev."; } $dev = $_POST['dev'];
if ($_SERVER['REQUEST_METHOD'] === 'POST') { $dev = $_POST['dev']; $err = array(); if (!isset($dev) || ($dev = trim($dev)) == '') { $err[] = "Vyplňte pole dev."; } |
||
Alphard Profil |
#9 · Zasláno: 12. 3. 2016, 17:40:19
Není, vůbec jste nepochopil, proč jsem tam dával ten isset. To už tam rovnou stačí jen ten trim...
if (trim($dev) == '') { $err[] = "Vyplňte pole dev."; } |
||
Venca190 Profil * |
#10 · Zasláno: 12. 3. 2016, 17:46:59
omlouvám se, nevšiml jsem si, že v [#5], jste odstranil
$dev = $_POST['dev']; , takže pokud $dev není předtím deklarováná používá se !isset($_POST['dev'])
|
||
Časová prodleva: 9 let
|
0