наверное это кодировка! Если у тебя UTF-8 перекодируй в UTF-8 без BOM. так как в простой utf-8 отправляются в начале первые 3 невидимые символа под названием BOM и sesion_start не бывает первой.
Не грузятьса файлы большие(5 мб,) на сервер. upload_max_filesize 200мб max_execution_time 30 memory_limit 128мб Файлы 128-188 кб грузяться норм гружу через Move UploadFile
ребят помогите составить условие, то я в пыхе вообще почти 0, мне нужно составить вот что: если человек кликает на "эту" кнопку то выводится "это", если на "ту" то выводится "то", и подскажите можно ли как нить сделать это проще если например кнопок много)
в notepad++ пересохранил без BOM нефига не помогло.... удаляю сессию я посылая вот такой запрос: <a charset='utf-8' rel='noreferrer' href='reg.php?del_session=1'> как вариант попробовать конечно слать его через Ajax...
PHP: <form method="post"> <input name="knopka1" type="submit" value="1"> </form> <form method="post"> <input name="knopka2" type="submit" Value="2"> </form> <?php if (isset($_POST["knopka1"])) { echo $_POST["knopka1"]; } if (isset($_POST["knopka2"])) { echo $_POST["knopka2"]; } ?> Каждая кнопка объявляется в новой форме.
Все таки если присутствует ошибка, связанная с отправкой заголовков, то присмотрись... Нету ли отступов в коде сверху (не должно быть никакого вывода перед отправкой заголовков). Пробелы, текст, UTF-8 (должен быть без BOM). Посмотри первые строчки. Может там перенос строки или пробел.
у меня в логах ошибка PHP Notice: Undefined variable: res in /var/www/user/data/www/site.com/sys/zet.php on line 73 73 строка $a = $zet['x_id']; я так понимаю лучше так исправить? $a = isset($zet['x_id'])?$zet['x_id']:'';
нужно прочитать файл построчно. Делаю так:открываю файл,читаю до конца строки. А вот как прочитать следующую строку непойму. Может как то это через массив делается? Специальных функций для этого как я понял нет.
post_max_size еще настрой, он по дефольту 2M, В общем причина оказалась в хостинге т.к не к каким настройкам php.ini я доступ не имею, то и зделать нечего нен смог у себя на серве изменил все ок, спасибо.
HTML: <form method="post"> <input type="submit" class="info" src="…" name="info" /> </form> PHP: <?php if (isset($_POST["info"])) { echo include'info.php'; } ?> ребят, почему при выводе страницы в конце появляется цифра 1, если ее в коде нигде нет О_о, и как от нее избавиться..
Потому что страница так не выводится. Ты выводишь страницу, а потом значение, которое возвращает include(). Для вывода страницы без 1 пиши просто PHP: include 'page.php';
Ребят подскажите как оптимизировать код. Этот код просто записывает лог посещений, но все страницы куда я его добавляю явно медленнее загружаются Сам код(пишу недавно за безграмотность не судить): <?php $date=date("[D|d/m/Y|H:i:s]"); $ip=$_SERVER['REMOTE_ADDR']; $reff=urlencode($_SERVER['HTTP_REFERER']); $lang_acc=urlencode($_SERVER['HTTP_ACCEPT_LANGUAGE']); $browser=urlencode($_SERVER['HTTP_USER_AGENT']); $req_url=urlencode($_SERVER['REQUEST_URI']); $host='localhost'; $database='xxx'; $user='xxx'; $pswd='xxx'; mysql_connect($host, $user, $pswd) or die("Can't connect to MySQL."); mysql_select_db($database) or die("Can't connect to database."); $query ="INSERT INTO my_sql_table (ip,from_lang, time, us_ag, ref, http_acc_lang) VALUES ('$ip','$req_url', '$date', '$browser','$reff','$lang_acc')"; $ip_query = mysql_query('SELECT * FROM my_sql_table where ip="'.$ip.'"'); //========== CHECK IP EXIST if (empty($ip_query)) { //echo "ip=".$ip."ip_Q=".$ip_query ; mysql_query($query) or die(mysql_error()); mysql_close(); } else { $count_logins = mysql_query('SELECT count_logins FROM `my_sql_table` WHERE ip="'.$ip.'" limit 1') or die (mysql_error()); $c_plus = '0'; $upd_count = 'UPDATE `xxx`.`my_sql_table` SET `count_logins` = "'.$c_plus.'" WHERE `my_sql_table`.`ip` = "'.$ip.'"'; while($row = mysql_fetch_array($count_logins)) { $c_plus = $row['count_logins'] + 1; } mysql_query('DELETE FROM my_sql_table WHERE ip="'.$ip.'" AND from_lang="'.$req_url.'"'.' AND ref="'.$reff.'"') or die (mysql_error()); mysql_query($query) or die(mysql_error()); $upd_count = 'UPDATE `xxx`.`my_sql_table` SET `count_logins` = "'.$c_plus.'" WHERE `my_sql_table`.`ip` = "'.$ip.'"'; mysql_query($upd_count) or die(mysql_error()); mysql_close(); } ?>
Убери urlencode, время храни в timestamp, убери цикл while ( применяй select count() ), разберись в целом в коде, я так и не понял что ты там в конце удаляешь. Или можешь описать словами как оно должно работать, я тебе напишу этот скрипт.
1. Ошибка в коде PHP: $ip_query = mysql_query('SELECT * FROM my_sql_table where ip="'.$ip.'"'); //========== CHECK IP EXIST if (empty($ip_query)) { Должно быть, как минум, вот так: PHP: $ip_query = mysql_query('SELECT * FROM my_sql_table where ip="'.$ip.'"'); //========== CHECK IP EXIST if (mysql_num_rows($ip_query)==0) { Т.е. $ip_query практически никогда не будет empty (за исключением тех случаев, когда запрос выполнился с ошибками) 2. Оптимизация IP Во первых, желательно IP в базе хранить в виде Int. В PHP есть встроенные функции ip2long и long2ip (почитайте про них подробнее). Зачем? Затем что выборка по Int идет гораздо быстрее чем по Varchar, а также это даст возможность использовать индексы. Во вторых, после преобразования ip в Int добавь в таблицу индекс по полю ip, это также в разы ускорит выборку. В третьих в твоей таблице, судя по логике скрипта, IP для каждой записи должен быть уникален, поэтому для IP стоит выбрать индекс типа Unique, это даст возможность еще лучше оптимизировать запросы к БД (см далее) 3. Оптимизация запросов Сократите колличество запросов к БД. К примеру, ваш цикл запросов SELECT + INSERT + UPDATE (т.е. 3 запроса), можно заменить всего 1(!) запросом по типу "INSERT ... ON DUPLICATE KEY", и такой запрос выполнится приблизительно раза в два быстрее, чем три запроса вместе. Но для этого необходима правильная настройка индексов в таблице. И помимо этого: Не слушай его Да, убрать urlencode нужно, но, убирая, не забудь предусмотреть защиту от SQL injection, то есть желательно заменить urlencode на addslashes (но при этом учитывай magic_quotes, чтобы не получилось двойное слеширование). Для времени в MySQL предусмотренны свои типы полей, и желательно использовать их, но если лень с этим разбираться то впринципе можно оставить обычный Unix Timestamp, это не повлияет на производительность. Да, я понимаю, что возможно все то, что я написал выше, для тебя покажется незнакомым/сложным. Но я посоветую тебе, всеже погуглить и разобраться в том, что я написал, так как это действительно ценные советы, которые, возможно, тебе пригодятся в будущем.
PHP: for ($i = 1; $i <$flom+1; $i++ ){ list($FlomPar[$i], $FlomPar[$i][$i]) = explode(' ',$lines[$i]); } Почему не записывает в $FlomPar[$i][$i]? $FlomPar[$i] полностью правильно записывается, а второй массив нет.
Потому что первый параметр записывается в ячейку $FlomPar[$i], а второй в нее же, но только уже место для символа с индексом $i.
пытаюсь здесь авторизоваться,пишет "No input file specified".что такое?может кто знает?это происходит уже после страницы с переадресацией.