Autor | Zpráva | ||
---|---|---|---|
Mozkomor05 Profil |
Nepotřebné ověření - Undefined index
Já jsem udělal fulltextový vyhledávač a pořád mi to píše chybu Notice: Undefined index: find in /3w/wz.cz/k/kolemzeme/zkouska.php on line 155 i když to v poho funguje! Mohli byste mi prosím poradit. Ta chyba vypadá na stránce jako pěst na oko. Není to vůbec nutné ošetřovat! Na řádku 155 mám: $item = $_GET['find']; Celý kód od fulltextového vyhledávače je: <form action="zkouska.php" method="get"> <fieldset> <input type="hidden" name="parent_id" value="0" /> <legend> <strong>Hledat na webu</strong> </legend> <label class="label">Hledat: <small>(Klíčová slova)</small></label> <input name="find" type="search" style="width: 25%; height: 30px;" value="<?php if(isset($_GET['find'])){ echo $_GET['find']; }?>" placeholder="Klíčové slovo" /> <button type="submit">HLEDAT</button> <br /> <br /> <label class="label">Možnosti hledání:</label> <input name="searchphrase" id="searchphraseall" checked="checked" value="all" type="radio"><label for="searchphraseall">Všechna slova</label><span style="color:#9eb23f;">|</span><input name="searchphrase" id="searchphraseexact" value="exact" type="radio"><label for="searchphraseexact">Přesná fráze</label><span style="color:#9eb23f;">|</span> <br /> <label class="label">Prohledávat:</label> <input name="vse" type="checkbox" checked="checked"><span>Prohledávat vše</span><span style="color:#9eb23f;">|</span><input name="clanky" type="checkbox"><span>Články</span><span style="color:#9eb23f;">|</span><input name="foto" type="checkbox"><span>Foto a video galerie</span><span style="color:#9eb23f;">|</span><input name="ostatni" type="checkbox"><span>Ostatní</span><span style="color:#9eb23f;">|</span> </fieldset> </form> <br> <?php $host = "88.86.117.154:3306"; $dbuser = "kolemzeme.wz3044"; $dbpass = "něco"; $db = "kolemzeme.wz3044"; $con = mysql_connect($host, $dbuser, $dbpass); if(!$con){ die(mysql_error()); } $select = mysql_select_db($db, $con); if(!$select){ die(mysql_error()); } $item = mysql_real_escape_string($_GET["find"]); if(empty($item)){return $message = "";} $data = mysql_query("SELECT * FROM hledat_web WHERE Nadpis LIKE ('%$item%')"); $cislo = mysql_num_rows($data); echo "<table><tr><td>Počet výsledků pro klíčové slovo "<b>$item</b>": <b style='font-size: 16px'>$cislo</b></td></tr>"; while($row = mysql_fetch_array($data)){ echo "<tr><td><br><br></td></tr>"; echo "<tr><td><a href=".$row['Odkaz']."><span style='font-size: 20px; padding: 0 50px;'>".$row['Nadpis']."</span></a><br><span style='color: rgb(0,102,33);'>".$row['Microdata']."</span><br><p style='text-align:justify;'>".$row['Text']."</p></td></tr>"; } echo "</table>"; if(mysql_num_rows($data)==0) echo "<b>Nic nebylo nalezeno.</b> Jste si jistí, že tato položka existuje? "; ?> |
||
juriad Profil |
#2 · Zasláno: 27. 2. 2016, 18:18:58
Ok, založil jsi si vlastní vlákno, příspěvky z toho minulého odstraním.
lionel messi ti již poradil, že to máš upravit na: $item = (isset($_GET['find']) ? $_GET['find'] : ""); |
||
Mozkomor05 Profil |
#3 · Zasláno: 27. 2. 2016, 18:24:47
Děkuji vše funguje konečně to tam neotravuje :)
|
||
Mozkomor05 Profil |
#4 · Zasláno: 29. 2. 2016, 19:25:39
Dobrý den mám podobný případ jako dávno. Tentokrát je to hláška která má vypsat: Na váš email byl úspěšně odeslán kontrolní kód. Potvrzte jej a nic z novinek vám neunikne :) Může se stát, že email příjde později. Vše mi v poho funguje, ale píše mi to chybu Notice: Undefined index: jmeno_odebirej in /3w/wz.cz/k/kolemzeme/posli_odebirej.php on line 2.
Na řádku dva mám: if(!empty($_POST['jmeno_odebirej'] and ['email_odebirej'])){ <?php if(!empty($_POST['jmeno_odebirej'] and ['email_odebirej'])){ return $message_uspech = "Na váš email byl úspěšně odeslán kontrolní kód. Potvrzte jej a nic z novinek vám neunikne :) Může se stát, že email příjde později.<br>"; } if(empty($_POST['jmeno_odebirej'])){ return $message = "Prosím vyplňte vaše jméno.<br>"; } if(empty($_POST['email_odebirej'])){ return $message = "Prosím vyplňte váš e-mail.<br>"; } ?> |
||
lionel messi Profil |
Mozkomor05:
Máš tam syntaktickú chybu — neuviedol si názov superglobálneho poľa, len jeho index (a bez and): if(!empty($_POST['jmeno_odebirej'], $_POST['email_odebirej'])){ |
||
Mozkomor05 Profil |
Bohužel to píše Parse error: syntax error, unexpected ',' in /3w/wz.cz/k/kolemzeme/posli_odebirej.php on line 2
Toto už jsem zkoušel |
||
lionel messi Profil |
#7 · Zasláno: 29. 2. 2016, 20:01:12
Mozkomor05:
„Bohužel to píše“ Pardon, v rýchlosti som si splietol empty s isset (empty prijíma za každých okolností len jeden argument). if(!empty($_POST['jmeno_odebirej']) && !empty($_POST['email_odebirej'])){ |
||
Mozkomor05 Profil |
Děkuji funguje! Já si celou dobu myslel že empty i isset přímají více argumentů.
|
||
Mozkomor05 Profil |
Tedy funguje to, ale když zde tuto hlášku nemám na email normálně chodí zprávy, když zde tuto hlášku dám (myslím tím: Na váš email byl úspěšně odeslán kontrolní kód. Potvrzte jej a nic z novinek vám neunikne :)) tak mi to ne a ne přijít. Nechápu to. Mohl by mi prosím někdo pomoct?
Kód posílaní je: <?php if($uspech){ return $message_uspech = "Na váš email byl úspěšně odeslán kontrolní kód. Potvrďte ho a žádná novinka vám již neunikne :)"; } if(empty($_POST['jmeno_odebirej'])){ return $message = "Prosím vyplňte vaše jméno"; } if(empty($_POST['email_odebirej'])){ return $message = "Prosím vyplňte váš email"; } $DatumOdebirej = date("Y-m-d H:i:s"); $kod = md5($_POST['email_odebirej']); mb_internal_encoding("UTF-8"); $hlaska = ''; if($_POST) { if (isset($_POST['jmeno_odebirej']) && $_POST['jmeno_odebirej'] && isset($_POST['email_odebirej']) && $_POST['email_odebirej']); { $prijateInformace = "<b>Datum odeslání žádosti pro odběr novinek:</b> " . $DatumOdebirej . "<br />". "<b>Váše jméno pro odběr novinek:</b> " . $_POST['jmeno_odebirej'] . "<br />". "<b>Váš email pro odběr novinek:</b> " . $_POST['email_odebirej'] . "<br />". "Pokud tato informace souhlasí, klikněte na odkaz pro odběr novinek <a href='http://kolemzeme.wz.cz/zkouska1.php?".$kod."'>zde</a>. Pokud ne, tak uživatel omylem zadal špatný e-mail. Jestli k této akci došlo omlouvám se."; $hlavicka = 'From:' . 'noreply@kolemzeme.wz.cz'; $hlavicka .= "\nMIME-Version: 1.0\n"; $hlavicka .= "Content-Type: text/html; charset=\"utf-8\"\n"; $adresa = ''. $_POST ['email_odebirej']; $predmet = 'Zpráva z kolemzeme.wz.cz'; $uspech = @mail($adresa, $predmet, $prijateInformace, $hlavicka); } } ?> |
||
anonymnii Profil * |
#10 · Zasláno: 1. 3. 2016, 20:13:59
A co čekás, kdyz mas na zacatku kódu return?
Začni tím, jaky je rozdíl mezi echem a returnem, o presnerovani po odeslánem mailu, platnosti proměnných, ... Chování, ktere to vykazuje, je vcelku logicke. |
||
Mozkomor05 Profil |
#11 · Zasláno: 1. 3. 2016, 20:18:57
Děkuji, podle návodu jsem udělal naprosto trapné odesílaní na email. Potom jsem ho doplnil o to co jsem se dozvěděl na jakpsatweb či na jiných servrech.
|
||
lionel messi Profil |
#12 · Zasláno: 1. 3. 2016, 20:26:07
Mozkomor05:
Okrem toho, čo už zmienil anonymnii, si treba uvedomiť, že jednoduchá funkcia mail (inak používať zavináč na potláčanie chýb je fuj) často nestačí na zabezpečenie stopercentnej funkčnosti. Minimálne časom by som sa rozhodne porozhliadol po hotových riešeniach, napr. knižnici PHPMailer. |
||
Mozkomor05 Profil |
Dobrý den,
udělal jsem řetězec, který má jednu sadu znaků převést na druhou sadu znaků. Ale pořád mi to píše chybu Parse error: syntax error, unexpected ';' in /3w/wz.cz/k/kolemzeme/zkouska.php on line 157 Kód řetězce je zde: return(strtolower(StrTr($item, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz")); Zkusil jsem ještě return(strtolower(strtr($item, ";ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž;, AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz";))); |
||
Tomáš123 Profil |
#14 · Zasláno: 3. 3. 2016, 16:29:55
Mozkomor05:
return(strtolower(strtr($input, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz"))); |
||
Mozkomor05 Profil |
Také nefunguje
Teda funguje super děkuji |
||
Časová prodleva: 8 let
|
0