[1] Las variables get, post y session no se pueden transferir entre páginas. En la última versión de PHP, las variables globales automáticas están desactivadas, por lo que para obtener las variables enviadas de la página anterior, use $_GET['foo'], $. _POST ['foo'],$_SESSION['foo'] para obtener. Por supuesto, también puede modificar las variables globales automáticas para que estén activadas (php.ini se cambia a Register_globals = On), considerando la compatibilidad, es mejor esforzarse por familiarizarse con el nuevo método de escritura.
[2] Usar el método get para pasar parámetros chinos a apache2 en Win32 provocará un error:
test.php?a=Hello&b=Hello.
Pasar parámetros provocará un error interno: "test.php?a=".urlencode. ( Hola)."&b=".urlencode(Hola)
.............
[3] La sesión en win32 no funciona correctamente
php.ini default session.save_path = /
tmp Obviamente sí. es una configuración en Linux. PHP en win32 no puede leer ni escribir el archivo de sesión, lo que hace que la sesión no se pueda utilizar. Simplemente cámbielo a una ruta absoluta. Por ejemplo, session.save_path = c:windows emp
[4] Mostrar mensaje de error
. php.ini Cuando display_errors = On y error_reporting = E_ALL, se mostrarán todos los errores y mensajes. Es mejor activarlo durante la depuración para corregir errores. Si utiliza el método de escritura PHP anterior, la mayoría de los mensajes de error son sobre indefinidos. variables. Habrá un mensaje cuando se llame a una variable antes de que se le asigne un valor. La solución es detectarla o protegerla.
Por ejemplo, para mostrar $foo, puede if(isset($foo)) echo $foo o echo @$foo
[5] mail() no puede enviar correos electrónicos en Win32.
Sendmail configurado en Linux puede enviar, pero debe llamar. smtp en win32. El servidor se utiliza para enviar correos electrónicos, modificar el SMTP de php.ini = ip //ip es un servidor smtp sin función de verificación (difícil de encontrar en línea.
La mejor solución para enviar correos electrónicos en php es usar socket). enviar directamente al servidor de correo electrónico de la otra parte en lugar del servidor de reenvío.
[6] Si la contraseña no está configurada para la instalación inicial de MySQL, debe usar update mysql.user set password="yourpassword" donde usuario="root" para cambiar la contraseña.
[7]
Generalmente ocurre el error de encabezado ya enviado
.cuando usa HEADER puede haber varias razones: 1. Hace PRING o ECHO antes de usar HEADER 2. Hay una línea en blanco delante de su archivo actual 3. Es posible que haya INCLUIDO un archivo y hay una línea en blanco al final. del archivo o este error ocurrirá en la salida. !
【8】 Después de cambiar php.ini y no hay cambios,
reinicie el servidor web, como IIS, Apache, etc., y luego se aplicarán las últimas configuraciones.
[9] PHP está instalado en 2003 (me gustaría pedir consejo a expertos sobre cómo instalar ISAPI).
El php4isapi.dll de PHP4 parece tener algunos conflictos con 2003. Sólo se puede instalar en modo CGI
. Primero descargue un programa de instalación en www.php.net . Lo que está instalado es: php-4.2.3-installer.exe. También puede encontrar la última versión. Asegúrese de que su IIS6.0 esté iniciado y accesible antes de instalar php. 4.2.3-instalador.exe. Después de la instalación, vaya al sitio web predeterminado-->Configuración de la aplicación.
Paso 2: haga clic en extensión de servicio web-->Nueva extensión de servicio web.
Paso 3: Extensión-->php, luego agregue
Paso 4: Busque la ruta a php.exe y agréguelo.
Paso cinco: ¡Confirma y listo!
Paso 6: seleccione la extensión del servicio PHP y haga clic en Permitir.
【10】 A veces la declaración sql no funciona y la operación de la base de datos falla. La forma más sencilla de depurar es hacer eco de la oración sql y ver si se puede obtener el valor de la variable.
[11]No hay mucha diferencia entre
include y require
. Si el archivo que se va a incluir no existe, include genera un aviso y luego continúa ejecutando la siguiente instrucción require genera un error fatal y sale.Según mis pruebas, en la plataforma win32, se incluyen primero y luego se ejecutan, por lo que es mejor no tener declaraciones include o require en los archivos incluidos, lo que causará confusión en el directorio. Quizás la situación sea diferente bajo *nux, aún no lo he probado.
Si no desea que un archivo se incluya varias veces, puede usar include_once o require_once## para leer y escribir datos del documento.
función r($nombre_archivo) {
$filenum=@fopen($file_name,"r ");
@flock($filenum,LOCK_SH);
$file_data=@fread($filenum,filesize($file_name ));
@fclose($filenum);
devolver $archivo_datos;
}
función w($nombre_archivo,$datos,$método="w"){
$filenum=@fopen($nombre_archivo,$método );
rebaño($filenum,LOCK_EX);
$file_data=fwrite($filenum,$datos);
fclose($filenum);
devolver $archivo_datos;
}
[12] La diferencia entre isset() y vacío()
es que ambos se usan para probar variables, pero isset() prueba si a una variable se le ha asignado un valor, mientras que vacío() prueba si a una variable se le ha asignado un el valor está vacío.
Si se hace referencia a una variable en PHP sin que se le asigne un valor, está permitido, pero habrá un mensaje de aviso. Si a una variable se le asigna un valor nulo, $foo="" o $foo=0 o $foo=false, luego, vacío($ foo) devuelve verdadero, isset($foo) también devuelve verdadero, lo que significa que asignar un valor nulo no cancelará el registro de una variable.
Para cancelar el registro de una variable, puede usar unset($foo) o $foo=NULL
[13] La declaración de consulta de MySQL contiene palabras clave.
Cuando PHP consulta MySQL, a veces el nombre de la tabla o el nombre de la columna de MySQL tiene palabras clave. habrá errores. Por ejemplo, si el nombre de la tabla es orden, se producirá un error durante la consulta. La forma más sencilla es agregar "[arriba de la tecla de tabulación] al nombre de la tabla o al nombre de la columna en la instrucción SQL para distinguirlo, por ejemplo, seleccionar. * de `order`
[14] Carga única a través del protocolo HTTP Hay dos ideas para el método de archivos múltiples
, que son dos implementaciones del mismo método. Los procedimientos específicos deben ser diseñados por usted mismo.
1. Configure varios cuadros de entrada de archivos en el formulario y asígneles un nombre en matrices, de la siguiente manera:
<formulario acción="" método=post>
<tipo de entrada=nombre de archivo=usararchivo[]>
<tipo de entrada=nombre de archivo=usararchivo[]>
<tipo de entrada=nombre de archivo=usararchivo[]>
</form>
De esta manera, realice la siguiente prueba en el lado del servidor:
echo "<pre>";
print_r($_FILES);
echo "</pre>";
2. Establezca varios cuadros de entrada de archivos en el formulario, pero con diferentes nombres, de la siguiente manera:
<form action="" método=post>
<tipo de entrada=nombre de archivo=usefile_a>
<tipo de entrada=nombre de archivo=usefile_b>
<tipo de entrada=nombre de archivo=usefile_c>
</form>
Haga la misma prueba en el lado del servidor:
echo "<pre>";
print_r($_FILES);
eco "</pre>";