Vaak PHP fouten
In deze tutorial gaan we kijken naar enkele van de gemeenschappelijke PHP fouten die optreden en hoe op te lossen.
Parseerfouten
Een parse fout treedt op wanneer het formaat van uw PHP-code onjuist is. Bijvoorbeeld, de volgende code:
"Echo $ output;)?>
terugkeren een fout van de volgende strekking:
Parse error: parse error, unexpected T_ECHO in c: \ webserver \ test2.php on line 4
Dit foutbericht wordt weergegeven omdat er ontbreekt een puntkomma aan het einde van de derde lijn van het voorgaande voorbeeld. Het bericht vertelt je dat PHP niet het echo commando op lijn 4 verwacht. Dit is omdat het verwacht dat er een puntkomma aan het einde van lijn 3. Merendeel van de tijd als je dit fout, zal de reden zijn een probleem met de vorige regel, zoals de ontbrekende puntkomma als in het vorige voorbeeld.
Deze fout treedt ook met accolades, (), bijvoorbeeld met de volgende code:
"If ($ output == 5) (echo" Dit is de vijfde iteratie ";)))?>
zal de terugkeer van de foutmelding
Parse error: parse error, unexpected ')' in C: \ webserver \ test2.php op lijn 8
Dit wordt veroorzaakt door een extra sluiting brace,), op lijn 8. Hoewel het eenvoudig is om het probleem te zien in de voorgaande korte blok code, kan het veel moeilijker met ingewikkelde code bevat veel geneste loops of indien de verklaringen, en het is moeilijk om de openingswedstrijd bretels tot de sluiting accolades.
Om snel het probleem, kunt u gebruik maken van de Dreamweaver MX Balance Braces opdracht, die in het Edit menu. U kunt de cursor op een regel code, selecteert u de Balance Braces commando, en het zal benadrukken alle lijnen van de code voor dat blok vanaf de opening tot de sluiting brace brace. Bij het controleren van de lagen van je code met de Balance Braces commando, kunt u snel vinden waar sprake is van een ontbrekende of extra brace.
Undefined index of Variabele
Dit gedeelte wordt uitgelegd wat te doen als u een bericht ontvangt op uw webpagina als een van de volgende:
| Waarschuwing | Undefined index: action in \ home \ www \ login.php on line 25 |
| Waarschuwing | Undefined variable: bericht in home \ www \ login.php on line 52 |
Deze berichten vaak mensen verwarren, als ze er uitzien foutmeldingen en kan zelfs met code voorkomen dat werkt perfect. De berichten zijn niet echt fouten, te vervangen, ze worden geclassificeerd als "Kennisgevingen", die u attent maken op situaties waarin er niet echt een fout die de code zou stoppen met werken. Wat vertelt u het bericht is dat de genoemde variabele niet specifiek is gedefinieerd met behulp van een PHP var verklaring.
Als voorbeeld, kijk naar de volgende twee blokken van code:
en:
Beide blokken van code hebben identieke resultaten, maar het tweede blok van de code zal een boodschap die vergelijkbaar zijn met de eerder aangegeven, omdat we niet specifiek de variabele $ username gedefinieerd. PHP werkt door het definiëren van uw variabelen de eerste plaats, wat betekent dat u waarschuwen als u een variabele in de code verkeerd spelt, zoals de variabele wordt nieuw en niet eerder gedefinieerd.
Er zijn twee oplossingen voor dit probleem. De eerste is om terug te gaan door je code en zorg ervoor dat elke variabele specifiek is gedefinieerd. De tweede optie is om aankondigingen te stoppen worden weergegeven, zoals ze vaak meer problemen dan ze waard bent. U kunt dit doen door de volgende code naar de bovenkant van elke pagina die de fout heeft:
Dit vertelt PHP om alle foutmeldingen en waarschuwingen, maar niet laten zien aan de aankondigingen tonen. Om dit te doen permanent, wijzigt u de error_reporting instelling in je php.ini bestand naar de vorige instelling.
Headers already sent Fouten
Dit is een foutmelding die vaak voorkomt, vooral bij het gebruik van cookies of sessies, en het is vergelijkbaar met het volgende bericht:
Cannot modify header information - headers already sent by (output started at / home / web / newtest.php: 3) in / home / web / test.php on line 5
Het probleem wordt veroorzaakt door de lege ruimten voor de header functie. De PHP header functie wordt gebruikt om de gebruiker omgeleid naar een andere pagina, die zij heeft door het sturen van commando's in de pagina header aan de browser, vertellen om naar de nieuwe pagina. Echter, zodra een header is verzonden naar de browser, kunt u niet meer functies gebruiken die toegang krijgen tot de kop, zoals de header functie. Als er iets wordt verstuurd naar de browser die niet een speciale header functie, is de kop gesloten en alles wordt verondersteld naar HTML voor de webpagina. Dus waarom is dit gebeurt met de vorige code?
Het probleem treedt op omdat er een lege lijn (lijn 2) dat wordt verstuurd naar de browser. Dit zorgt ervoor dat de kop te sluiten, zodat de functie header mislukt, omdat het niet meer kan schrijven naar de kop. Maar zelfs als je de lege regel verwijderen op lijn 2, krijg je dezelfde foutmelding. Dit komt omdat er twee spaties aan het einde van de?>-Tag op lijn 1. Deze moeten eveneens worden geschrapt, aangezien ook zij zullen worden verstuurd naar de browser en sluit de header. Deze ruimten aan het einde van de lijnen kan moeilijk te herkennen omdat ze onzichtbaar zijn!
Er is een methode die je kunt gebruiken, maar, om ze makkelijker te vinden. Als u uw cursor op het einde van elke regel en links-klik en beweeg de muis rechts, alle spaties aan het einde van de regel wordt gemarkeerd, zoals in het vorige scherm schot. De ruimtes kunnen dan worden verwijderd.
Als de code nu opnieuw getest, moet het goed werken.
Deze fout kan ook optreden als er vermogen van niet ingesloten in PHP tags in elk include bestanden voor de pagina. Dus als uw hoofdpagina code ziet er prima uit en je bent nog steeds de fout, zal de volgende stap worden om te controleren via een onder de dossiers van de pagina gebruikt. Vaak is de fout veroorzaakt door een nieuwe regel na de laatste PHP-tag in de include-bestand, dat moet worden verwijderd, indien aanwezig.
een artikel afkomstig van Stratus Huo Quan
Disclaimer: Onze website is niet verantwoordelijk voor de informatie in dit artikel. In dit artikel wordt op geen enkele manier de standpunten, meningen, gedachten of overtuigingen van de artikelen directory personeel.
Vertaling aankondiging: Het artikel "Gemeenschappelijke PHP fouten" werd vertaald met behulp van een geautomatiseerde vertaling dienst. Onze excuses voor eventuele vertaalfouten die heeft plaatsgevonden. Dank u voor uw begrip.