Page 1 sur 1

Problème de Uninitialized string offset

Posté : 15 avr. 2009, 07:55
par thetiti
Bonjour,

j'ai un script d'analyse d'url qui fonctionne très bien et pour une question d'évolution de mon site j'ai décidé de faire une fonction à partir de ce script, mais j'ai 2 erreurs de Uninitialized string offset :2 et Uninitialized string offset : 1

voici la function
<?php 
function rewriteType1($urlDossier){
	$urlDossierArray = split('[/-]', $urlDossier);
	$zoneDossier = $urlDossierArray[1];
	$idDossier = $urlDossierArray[2];

	$idPageArray = split('[_.]', $urlDossier);
	return $idPage = $idPageArray[1];
	if ( !is_numeric ($idPage)) {
		$idPage = "";
	} else {
		$idPage;
	}
	
	return array ($zoneDossier, $idDossier, $idPage);
}
?>
et voici la page qui appelle cette fonction :
<?php 
$urlPage = $_SERVER["DOCUMENT_ROOT"]."/";
$urlDossier = $_SERVER["REQUEST_URI"];

include($urlPage."commun/function.php");
list ($zoneDossier, $idDossier, $idPage) = rewriteType1($urlDossier);

echo $urlDossier;
echo "<br/>";
echo $zoneDossier;
echo "<br/>";
echo $idDossier;
echo "<br/>";
echo $idPage;
echo "<br/>";
echo $urlPage;
?>
et voici ce que j'ai en sortie sur ma page HTML quand j'apelle la page : http://travaux.dev/edito/2805-le-rew...la-page_2.html

Code : Tout sélectionner

Notice: Uninitialized string offset: 2 in C:\wamp\www\travaux\edito\index.php on line 6 Notice: Uninitialized string offset: 1 in C:\wamp\www\travaux\edito\index.php on line 6 /edito/2805-le-rewriting-de-la-page_3.html 3 C:/wamp/www/travaux//
Par contre si j'appelle la page : http://travaux.dev/edito/2805-le-rew...e-la-page.html j'ai en sortie :

Code : Tout sélectionner

/edito/2805-le-rewriting-de-la-page.html edito 2805 C:/wamp/www/travaux//

Merci pour votre aide

:)

Posté : 15 avr. 2009, 10:17
par Ryle
En plein milieu de te fonction, sans aucune condition, tu as :
return $idPage = $idPageArray[1]; 
Ceci implique que php va stocker la valeur de $idPageArray[1] dans la variable $idPage (opérateur d'affectation "="), mais surtout, retourner cette valeur, et par conséquent arrêter le traitement de la fonction...

Le reste du code sensé te renvoyer un tableau est donc ignoré. Résultat, quand tu demandes avec list de récupérer le 2ème et 3ème élément du tableau retourné alors qu'il n'a reçu qu'une seule variable, php te colle un avertissement :)

le boulet

Posté : 15 avr. 2009, 21:46
par thetiti
oups en effet.... à force d'avoir l'oeil dessus j'avais pas vu

Merci