sinds enige tijd krijg ik de volgende soort meldingen op mijn website.

++++++
Warning: strpos(): needle is not a string or an integer in D:\www\thierig.nl\www\Rob\Blog\index.php on line 71
++++++
Warning: strpos(): needle is not a string or an integer in D:\www\thierig.nl\www\Rob\Blog\index.php on line 61
++++++
Warning: strpos(): needle is not a string or an integer in D:\www\thierig.nl\www\Rob\Blog\comments.php on line 34 Warning: strpos(): needle is not a string or an integer in D:\www\thierig.nl\www\Rob\Blog\comments.php on line 35 Warning: strpos(): needle is not a string or an integer in D:\www\thierig.nl\www\Rob\Blog\comments.php on line 36
++++++++

Deze komen niet bij het opvragen van de hoofdpagina http://www.thierig.nl/rob/blog/index.php

maar wel bij het opvragen van een categorie of het openen van een artikel.

Voorbeeld code waar het fout gaat.
+++++
if ( array_key_exists( 'entry', $_GET ) ) {
if ( strpos( $_GET[ 'entry' ], array( '/', '.', '\\', '%', '#', ';' ) ) === false && strlen( $_GET[ 'entry' ] ) == 18 ) {
$temp_entry = $_GET[ 'entry' ];
}
}
+++++

Iemand een idee hoe dit ineens gekomen kan zijn?
Ongeacht de verklaring waarom het 'ineens' fout gaat is een string of integer verplicht bij het tweede argument van strpos, je kunt daar dus geen array aan meegeven:

http://nl2.php.net/strpos

Wat in bovenstaande code gebruikt word kun je beter een preg_match gebruiken ipv str_pos.
Je hebt de site gehost bij een hostingbedrijf?
Je verwijst naar de D: schijf. Die zal bij het hostingbedrijf niet beschikbaar zijn.
Vermoedelijk heb je ergens in je codes een (verwijzings)fout staan.
De foutmelding geeft ook al aan waar je het zou moeten zoeken.
Huh? Hij verwijst ook niet naar die URL's?
Dit is gewoon het path naar het bestand waar de fout optreedt.

En wist je ook dat hostingbedrijven ook op Windows kunnen draaien ;-)?
Kees Schepers op 14/06/2011 23:35:20

Ongeacht de verklaring waarom het 'ineens' fout gaat is een string of integer verplicht bij het tweede argument van strpos, je kunt daar dus geen array aan meegeven:

http://nl2.php.net/strpos

Wat in bovenstaande code gebruikt word kun je beter een preg_match gebruiken ipv str_pos.


Van mijn provider kreeg ik de volgende boodschap
+++
Bedankt voor uw melding.

Ik vermoed dat het probleem te maken heeft met dat de PHP-code niet helemaal compatibel is met met PHP 5.3.6. Met elke update van PHP wordt PHP steeds strikter. Variabelen moeten vooraf gedeclareerd worden en bepaalde functies worden niet langer ondersteund.

De oudere versie van PHP (5.2.17) wordt door PHP.NET niet verder ontwikkeld en de ondersteuning zal binnen afzienbare tijd vervallen.

Ik hoop dat ik u hiermee voldoende geïnformeerd heb.

Met vriendelijke groet,
+++

Blijkbaar moet ik wat aanpassen mbt str_pos. Ik zal eens in de werking van de preg_match duiken.



[size=xsmall]Toevoeging op 15/06/2011 21:18:32:[/size]

Kees Schepers op 14/06/2011 23:35:20

Ongeacht de verklaring waarom het 'ineens' fout gaat is een string of integer verplicht bij het tweede argument van strpos, je kunt daar dus geen array aan meegeven:

http://nl2.php.net/strpos

Wat in bovenstaande code gebruikt word kun je beter een preg_match gebruiken ipv str_pos.


Van mijn provider kreeg ik de volgende boodschap
+++
Bedankt voor uw melding.

Ik vermoed dat het probleem te maken heeft met dat de PHP-code niet helemaal compatibel is met met PHP 5.3.6. Met elke update van PHP wordt PHP steeds strikter. Variabelen moeten vooraf gedeclareerd worden en bepaalde functies worden niet langer ondersteund.

De oudere versie van PHP (5.2.17) wordt door PHP.NET niet verder ontwikkeld en de ondersteuning zal binnen afzienbare tijd vervallen.

Ik hoop dat ik u hiermee voldoende geïnformeerd heb.

Met vriendelijke groet,
+++

Blijkbaar moet ik wat aanpassen mbt str_pos. Ik zal eens in de werking van de preg_match duiken.

Reageren