[1] Переменные get, post и session не могут быть перенесены между страницами. В последней версии PHP автоматические глобальные переменные отключены, поэтому, чтобы получить отправленные переменные с предыдущей страницы, используйте $_GET['foo'], $. _POST['foo'],$_SESSION['foo'] для получения. Конечно, вы также можете изменить автоматические глобальные переменные, чтобы они были включены (php.ini изменен на Register_globals = On); учитывая совместимость, лучше заставить себя ознакомиться с новым методом записи.
[2] Использование метода get для передачи китайских параметров в apache2 под Win32 приведет к ошибке:
test.php?a=Hello&b=Hello.
Передача параметров приведет к внутренней ошибке. Решение: "test.php?a=".urlencode. (Привет)."&b=".urlencode(Привет)
.............
[3] Сессия под win32 работает неправильно.
php.ini default session.save_path = /
tmp Очевидно, это так. это конфигурация в Linux. PHP под Win32 не может читать и записывать файл сеанса, что делает сеанс непригодным для использования. Просто измените его на абсолютный путь. Например, session.save_path = c:windows emp
[4] Отображение сообщения об ошибке
. php.ini Когда display_errors = On и error_reporting = E_ALL, будут отображаться все ошибки и подсказки. Лучше всего включить его во время отладки для исправления ошибок. Если вы используете предыдущий метод написания PHP, большинство сообщений об ошибках имеют неопределенное значение. переменные. При вызове переменной до того, как ей будет присвоено значение, появится подсказка. Решение состоит в том, чтобы обнаружить или защитить ее.
Например, чтобы отобразить $foo, вы можете if(isset($foo)) echo $foo или echo @$foo
[5] mail() не может отправлять электронные письма под Win32.
Sendmail, настроенный под Linux, может отправлять, но вам нужно позвонить. smtp под win32. Сервер используется для отправки электронной почты, измените SMTP php.ini = ip //ip — это smtp-сервер без функции проверки (трудно найти в Интернете).
Лучшее решение для отправки электронных писем в php — использовать сокет. для отправки непосредственно на почтовый сервер другой стороны вместо сервера пересылки.
[6] Если пароль не установлен для первоначальной установки MySQL, вам следует использовать обновление mysql.user set pass="yourpassword" где user="root" для изменения пароля.
[7]
Обычно возникает ошибка уже отправленного заголовка
.при использовании ЗАГОЛОВКА Причин может быть несколько: 1. Вы PRING или ECHO перед использованием ЗАГОЛОВКА 2. Перед текущим файлом есть пустая строка 3. Возможно, вы ВКЛЮЧИЛИ файл, и в конце есть пустая строка. файла, иначе при выводе возникнет эта ошибка. !
【8】После изменения php.ini и отсутствия изменений
перезапустите веб-сервер, например IIS, Apache и т. д., после чего будут применены последние настройки.
[9] PHP установлен в 2003 году (я хотел бы попросить совета у экспертов о том, как установить ISAPI).
Похоже, что php4isapi.dll PHP4 имеет некоторые конфликты с 2003 годом. Его можно установить только в режиме CGI.
Шаг 1: Сначала загрузите программу установки на сайте www.php.net . Установленный файл: php-4.2.3-installer.exe. Перед установкой php- вы также можете найти последнюю версию. 4.2.3-installer.exe. После установки перейдите на веб-сайт по умолчанию -> Конфигурация приложения.
Шаг 2. Нажмите «Расширение веб-службы» -> «Новое расширение веб-службы».
Шаг 3: Расширение -> php, затем добавьте
Шаг 4: Найдите путь к php.exe и добавьте его.
Шаг пятый: Подтвердите и все!
Шаг 6. Выберите расширение службы PHP и нажмите «Разрешить».
【10】Иногда оператор sql не работает и операция с базой данных завершается неудачно. Самый простой способ отладки — это повторить предложение sql и посмотреть, можно ли получить значение переменной.
[11] Междуinclude и require
нет большой разницы
. Если подключаемый файл не существует, include выдает уведомление, а затем продолжает выполнять следующий оператор require, выдает фатальную ошибку и завершает работу.Согласно моему тестированию, на платформе Win32 они сначала подключаются, а затем выполняются, поэтому лучше не включать операторы include или require во включенные файлы, поскольку это приведет к путанице в каталогах. Возможно, под *nux ситуация другая, я еще не проверял.
Если вы не хотите, чтобы файл включался несколько раз, вы можете использовать include_once или require_once## для чтения и записи данных документа.
функция г($имя_файла) {
$filenum=@fopen($file_name,"r ");
@flock($filenum,LOCK_SH);
$file_data=@fread($filenum,filesize($file_name ));
@fclose($filenum);
вернуть $file_data;
}
функция w($file_name,$data,$method="w"){
$filenum=@fopen($file_name,$method );
стадо ($filenum, LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
вернуть $file_data;
}
[12] Разница между isset() и пустой()
заключается в том, что оба используются для проверки переменных, но isset() проверяет, присвоено ли переменной значение, а пустой() проверяет, присвоено ли переменной значение значение пусто.
Если на переменную ссылаются в PHP без присвоения значения, это разрешено, но будет отображено уведомление. Если переменной присвоено нулевое значение, $foo="" или $foo=0 или $foo=false. тогда пустой($ foo) возвращает true, isset($foo) также возвращает true, что означает, что присвоение значения null не приведет к отмене регистрации переменной.
Чтобы отменить регистрацию переменной, вы можете использовать unset($foo) или $foo=NULL
[13] Оператор запроса mysql содержит ключевые слова.
Когда php запрашивает mysql, иногда имя таблицы или столбца mysql содержит ключевые слова. будут Есть ошибки. Например, если имя таблицы — order, во время запроса возникнет ошибка. Самый простой способ — добавить `[над клавишей табуляции] к имени таблицы или имени столбца в операторе sql, чтобы отличить его, например, выберите. * из `order`
[14] Одноразовая загрузка по протоколу HTTP Есть две идеи метода нескольких файлов
, которые представляют собой две реализации одного и того же метода. Конкретные процедуры необходимо разработать самостоятельно.
1. Установите в форме несколько полей ввода файлов и назовите их массивами следующим образом:
<form action="" метод=post>
<тип ввода=имя файла=использованный файл[]>
<тип ввода=имя файла=использованный файл[]>
<тип ввода=имя файла=использованный файл[]>
</form>
Таким образом, выполните следующий тест на стороне сервера:
echo "<pre>";
print_r ($_FILES);
echo "</pre>";
2. Установите в форме несколько полей ввода файлов, но с разными именами, как показано ниже:
<form action="" метод=post>
<тип ввода=имя файла=usefile_a>
<тип ввода=имя файла=usefile_b>
<тип ввода=имя файла=usefile_c>
</form>
Выполните тот же тест на стороне сервера:
echo "<pre>";
print_r ($_FILES);
эхо "</pre>";