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" />&nbsp;&nbsp;&nbsp;&nbsp;<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 &quot;<b>$item</b>&quot;: <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?&nbsp;";
?>
Děkuji za odpověď:)
juriad
Profil
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
Děkuji vše funguje konečně to tam neotravuje :)
Mozkomor05
Profil
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'])){ 
Jinak celý kód všech hlášek je:
<?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
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);
      }
    }
?>
Děkuji za odpověď
anonymnii
Profil *
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
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
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";)));
ale to je podle mě úplně špatně
Tomáš123
Profil
Mozkomor05:
return(strtolower(strtr($input, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz")));
Mozkomor05
Profil
Také nefunguje


Teda funguje super děkuji

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:

0