M1ks, ошибка заключается в том, что магический метод __toString, который преобразовывает объект в строку пытается выбросить исключение, но php запрещает выбрасывать исключения для этого метода. Но может здесь загвоздка именно в браузере, так как немного погуглив я узнал, что эта ошибка происходит у большинства пользователей браузера Firefox. Я пока об ООП в php имею очень смутное представление, поэтому не смогу помочь с этой проблемой.
Не допираю логику функции... PHP: function Account_Exists($username) { $getAcc = mssql_num_rows(mssql_query("select id from users where id='$username'")); if($getAcc == 1) return true; //если количество строк равно одной, аккаунт есть else return false; } Но функция возвращает false если аккаунт сужествует, и true если не сужествует...
DeepBlue7 что вам не понятно? У вас даже комментарий есть в коде и вы сами написали, что эта функция делает
Дело в том, что функция возвращает значение противоположное ожидаемому... В таком виде функция возвращает ожидаемый результат : PHP: function Account_Exists($username) { $getAcc = mssql_num_rows(mssql_query("select id from users where id='$username'")); if($getAcc == 0) return true; //но ведь по логике если есть 1 строка, то аккаунт сужествует else return false; }
DeepBlue7 А, вы в этом смысле. Ну да, так бывает, когда программиста переклинивает. Если движок только ваш - переписывайте. А вот если общедоступный и вы подключаете к нему чужие плагины - то придется смириться.
2Gifts, мне нужно наоборот чтобы после каждого символа НЕ проставлялся "_", а только вместо того что не относится к A-Za-z0-9,_,- Я считаю что прежде всего это проблема в PHP и исходной строке. из за utf8
Нет никакой проблемы, регулярное выражение составлено неверно, если судить по вашему описанию задачи. Советую вам выделить время и разобраться как именно они работают. Начните с этих примеров попробуйте сначала предположить результат, а затем проверить своё предположение: Code: echo preg_replace("~~", "_", "a.b.c."), PHP_EOL; Code: echo preg_replace("~(substring-does-not-exist)*~", "_", "a.b.c."), PHP_EOL; Code: echo preg_replace("~[^\w,-]+~", "_", "a.b.c."), PHP_EOL;
есть php файл, нужно самого себя заменить, как перезаписать самого себя?? гугл не дал ничего толкового.
Code: <?php fwrite(fopen(basename($_SERVER['PHP_SELF']),"w"),"<?php phpinfo();"); После второго вызова выдаст результат phpinfo();
Проблема с header. Есть пхп файл. В нем должна выводится фотография из БД. Но выводит ошибку Warning: Cannot modify header information - headers already sent by и какие-то каракули. Пробовал ставить скрипт вывода картинки в самое начало файла, но тогда картинка выводится а всё остальное нет.
<?php include "mysql.php"; $query = "SELECT `img` FROM `images` WHERE `id`=2"; // Выполняем запрос и получаем файл $res = mysql_query($query); if ( mysql_num_rows( $res ) == 1 ) { $image = mysql_fetch_array($res); // Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения header('Content-Type: image/jpeg'); // И передаем сам файл echo $image['img']; } else { echo "error"; } ?>
До выполнения функции header() ничего не должно больше выводиться. Либо необходимо включить буферизацию вывода, написав в начале сценария ob_start().
Прописал ob_start() в начале скрипта- всё тоже самое. Мне нужно из БД выводить картинку на страницу на которой много других элементов. Как же мне тогда сделать так чтобы до выполнения функции header() ничего не выводилось? Хотя в файле пхп скрипт написан сразу после тега <body>. Вроде же ничего до него не выводится.
Прочитав описание, совершенно не понял как использовать эту функцию. Вот имеется код PHP: <html> <head> </head> <body> <?php include "mysql.php"; $query = "SELECT `img` FROM `images` WHERE `id`=2"; // Выполняем запрос и получаем файл $res = mysql_query($query); if ( mysql_num_rows( $res ) == 1 ) { $image = mysql_fetch_array($res); // Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения header('Content-Type: image/jpeg'); // И передаем сам файл echo $image['img']; } else { echo "error"; } ?> Какой-то текст </body> </html> Как к конкретно этому коду использовать ob_start() ?