[1] As variáveis get, post e session não podem ser transferidas entre páginas Na versão mais recente do PHP, as variáveis globais automáticas estão desativadas, portanto, para obter as variáveis enviadas da página anterior, use $_GET['foo'], $. _POST ['foo'],$_SESSION['foo'] para obter. Claro, você também pode modificar as variáveis globais automáticas para que estejam ativadas (o php.ini foi alterado para register_globals = On, considerando a compatibilidade, é melhor se familiarizar com o novo método de escrita);
[2] Usar o método get para passar parâmetros chineses para o apache2 no Win32 causará um erro:
test.php
?a=Hello&b=Hello.
( Olá)."&b=".urlencode(Hello)
.............
[3] A sessão no win32 não funciona corretamente.
php.ini default session.save_path = /
tmp Obviamente, isso acontece. é uma configuração no Linux. O PHP no win32 não pode ler e gravar o arquivo da sessão, tornando a sessão inutilizável. Basta alterá-lo para um caminho absoluto. Por exemplo, session.save_path = c:windows emp
[4] Exibir mensagem de erro
quando. php.ini Quando display_errors = On e error_reporting = E_ALL, todos os erros e prompts serão exibidos. É melhor ativá-lo durante a depuração para correção de erros. Se você usar o método de escrita PHP anterior, a maioria das mensagens de erro são indefinidas. variáveis. Haverá um prompt quando uma variável for chamada antes de receber um valor. A solução é detectá-la ou protegê-la.
Por exemplo, para exibir $foo, você pode if(isset($foo)) echo $foo ou echo @$foo
[5] mail() não pode enviar e-mails no Win32
configurado no Linux, mas você precisa ligar
.smtp em win32. O servidor é usado para enviar e-mails, modifique o SMTP de php.ini = ip //ip é um servidor smtp sem função de verificação (difícil de encontrar online
A melhor solução para enviar e-mails em php é usar soquete
).para enviar diretamente para o servidor de e-mail da outra parte em vez do servidor de encaminhamento.
[6] Se a senha não for definida para a instalação inicial do MySQL, você deve usar update mysql.user set password="yourpassword" where user="root" para alterar a senha
[7]
O erro do cabeçalho já enviado geralmente ocorre
.quando você usa HEADER Pode haver vários motivos: 1. Você PRING ou ECHO antes de usar HEADER 2. Há uma linha em branco na frente do seu arquivo atual 3. Você pode ter INCLUIDO um arquivo e há uma linha em branco no final. do arquivo ou esse erro ocorrerá na saída. !
【8】Depois de alterar o php.ini e não houver nenhuma alteração,
reinicie o servidor web, como IIS, Apache, etc., e então as configurações mais recentes serão aplicadas.
[9] O PHP foi instalado em 2003 (gostaria de pedir conselhos a especialistas sobre como instalar o ISAPI).
O php4isapi.dll doPHP4
parece ter alguns conflitos com 2003. Ele só pode ser instalado no modo CGI.
Primeiro baixe um programa de instalação em www.php.net . O que está instalado é: php-4.2.3-installer.exe Você também pode encontrar a versão mais recente. Certifique-se de que seu IIS6.0 esteja iniciado e acessível antes de instalar o php-. 4.2.3-installer.exe. Após a instalação, acesse o site padrão -> Configuração do aplicativo.
Passo 2: Clique em extensão de serviço da web -> Nova extensão de serviço da web.
Etapa 3: Extensão -> php e adicione
Etapa 4: Encontre o caminho para php.exe e adicione-o.
Passo Cinco: Confirme e pronto!
Etapa 6: Selecione a extensão de serviço PHP e clique em Permitir.
【10】Às vezes, a instrução sql não funciona e a operação do banco de dados falha. A maneira mais fácil de depurar é repetir a sentença sql e ver se o valor da variável pode ser obtido.
[11]Não há muita diferença entre
include e require
. Se o arquivo a ser incluído não existir, include solicita um aviso e, em seguida, continua a executar a instrução a seguir, require solicita um erro fatal e sai.De acordo com meus testes, na plataforma win32, eles são incluídos primeiro e depois executados, portanto, é melhor não incluir instruções include ou require nos arquivos incluídos, o que causará confusão no diretório. Talvez a situação seja diferente no *nux, ainda não testei.
Se não quiser que um arquivo seja incluído várias vezes, você pode usar include_once ou require_once## para ler e gravar dados do documento.
função r($nome_arquivo) {
$númarquivo=@fopen($nome_arquivo,"r ");
@flock($filenum,LOCK_SH);
$file_data=@fread($filenum,filesize($file_name ));
@fclose($filenum);
retornar $arquivo_dados;
}
função w($nome_arquivo,$dados,$método="w"){
$filenum=@fopen($file_name,$method );
rebanho($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($númarquivo);
retornar $arquivo_dados;
}
[12] A diferença entre isset() e vazio()
é que ambos são usados para testar variáveis, mas isset() testa se uma variável recebeu um valor, enquanto vazio() testa se uma variável que recebeu um valor o valor está vazio.
Se uma variável for referenciada em PHP sem receber um valor, isso será permitido, mas haverá um aviso. Se uma variável receber um valor nulo, $foo="" ou $foo=0 ou $foo=false, então vazio($ foo) retorna verdadeiro, isset($foo) também retorna verdadeiro, o que significa que atribuir um valor nulo não cancelará o registro de uma variável.
Para cancelar o registro de uma variável, você pode usar unset($foo) ou $foo=NULL
[13] A instrução de consulta mysql contém palavras-chave
Quando o php consulta o mysql, às vezes o nome da tabela mysql ou o nome da coluna contém palavras-chave. haverá erros. Por exemplo, se o nome da tabela for ordenado, ocorrerá um erro durante a consulta. A maneira simples é adicionar `[acima da tecla tab] ao nome da tabela ou nome da coluna na instrução sql para distingui-la, por exemplo, selecione. * from `order`
[14] Upload único através do protocolo HTTP Existem duas idéias para o método de vários arquivos
, que são duas implementações do mesmo método. Os procedimentos específicos precisam ser elaborados por você.
1. Defina várias caixas de entrada de arquivo no formulário e nomeie-as em arrays, como segue:
<form action="" method=post>
<tipo de entrada=nome do arquivo=usefile[]>
<tipo de entrada=nome do arquivo=usefile[]>
<tipo de entrada=nome do arquivo=usefile[]>
</form>
Desta forma, faça o seguinte teste no lado do servidor:
echo "<pre>";
print_r($_ARQUIVOS);
echo "</pre>";
2. Defina várias caixas de entrada de arquivo no formulário, mas com nomes diferentes, como segue:
<form action="" method=post>
<tipo de entrada=nome do arquivo=usefile_a>
<tipo de entrada=nome do arquivo=usefile_b>
<tipo de entrada=nome do arquivo=usefile_c>
</form>
Faça o mesmo teste no lado do servidor:
echo "<pre>";
print_r($_ARQUIVOS);
echo "</pré>";