неопределен индекс

obqvi_in

Registered
Здравейте, сайта ми е на 000webhost и преди няколко дни искаха да си направя нова регистрация заради някакво обновяване на сайта. Оттам започнаха проблемите. Първо php кода преди започвах с <? а сега трябва да е с <?php знам, че сигурно втория начин е правилният, но преди работеше и по първия, но това го оправих и вече не е проблем. Ето и другия проблем. Дава ми грешка Notice: Undefined index: sort и word там където е mysql query сайта ми е с ajax търсене и преди променливите бяха извън isset и кода работеше.
Код:
<form method="POST"> 
<div class="search_box">
<span>Търсене:</span>
<input class="search" placeholder="търси" value="" type="text" name="word" id="searchid"/> 
<select name="add_sort" class="add_sort"> 
<option value="други">други</option><?php
include 'option.php'; ?>
</select>
<input id="subHere" type="submit" name="sub" value="търси" class="sub_search" />
</div>
</form>
<div class="select_tab" id="search"> [php]<?php
    if(!isset($_POST['sub'])){
	 $word = $_POST['word'];
	 $sort = $_POST['add_sort'];
	}
$result = mysql_query('SELECT * FROM reminders WHERE sort LIKE "%'.$sort.'%" AND (text  LIKE "'.$word.'%"'.'OR text LIKE "% '.$word.'%" OR data LIKE "%'.$word.'%") ORDER BY idx_id = 90 DESC, idx_id = 84 DESC, idx_id = 85 DESC, text = "дежурен съм" DESC, text = "" DESC, idx_id DESC LIMIT 50')
or die("<h2>Error database search</h2>");
    while ($row = mysql_fetch_assoc($result)) { ... }
[/html]
 
Това е защото са обновили php версията. Относно тези нотиси има 2 варианта.
1. Да ги спреш да се показват - но само тях. Warning-ите и фаталните ерори задължително трябва да се виждат, за да виждаш къде ти се дъни приложението.

Примери за изключване на различните видове грешки:
PHP:
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL & ~E_NOTICE);
// For PHP < 5.3 use: E_ALL ^ E_NOTICE

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

2. Да правиш проверка навсякъде дали е сетнат този индекс или да му зададеш предварителна стойност. Тъй като най-вероятно някъде надолу във кода слагаш информация в тази променлива, но по-горе, на мястото, където проверяваш, тази променлива е не известна :)

Бтв, какво се опитваш да направиш тук:
PHP:
 if(!isset($_POST['sub'])){ 
    $word = $_POST['word']; 
    $sort = $_POST['add_sort']; 
   }
:!:


Btw, имаш уникална заявка за търсене, особено тази част ме развесели:
[sql] ORDER BY idx_id = 90 DESC, idx_id = 84 DESC, idx_id = 85 DESC, text = "дежурен съм" DESC, text = "" DESC, idx_id DESC LIMIT 50[/sql]
:?:
 
Бтв, какво се опитваш да направиш тук:
if(!isset($_POST['sub'])){

$word = $_POST['word'];

$sort = $_POST['add_sort'];

}
Ако променливите на са в 'if(isset) ми дава пак, че са неопредени.[/quote]
 
Не знам как си със основите по php, но прегледай тези статии има примери как да процедираш с тези индекс - макар, че щом не схвана като ти го написах, едва ли ще ти е по-лесно от разни статии да гледаш - но пък знае ли се .

http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-notice-undefined-index-and-notice-undef

http://stackoverflow.com/questions/4465728/php-error-notice-undefined-index

https://www.youtube.com/watch?v=8J5xJt8bTbY

https://www.youtube.com/watch?v=OH-BNVNgw1g

Гледаш и следваш и преправяш, няма лесен начин щом работиш със стар код, освен да скриеш нотисите както ти показах горе, но това не е решение на проблема, а скриване. :?: :idea:
 

Горе