Page 1 sur 1

PHP VC11 - Fonction "Explode"

Posté : 09 août 2016, 20:00
par polux78
Bonjour,

Fonction « Explode » sous VC11

Sous PHP VC9, je n’ai pas de message d’erreur sur la fonction ci-dessous :

if(isset($_POST['provenance'])) $provenance=($_POST['provenance']);
else $provenance="";

// Extraction de la chaine contenant les infos "Appel_bloc"
$str = $provenance; // Infos de la zone Langue
$tableau = explode("&",$str);
$prov_fr = $tableau[0]; // Français
$prov_gb = $tableau[1]; // Anglais

$provenance_fr = $prov_fr;
$provenance_gb = $prov_gb;

Sous PHP V11, j’ai ce message :

Notice: Undefined offset: 1 in F:\EasyPHP_VC11\data\localweb\bibliotheque_fr\bib_fiche_new_ok.php on line 86

La source provient de :
<DIV align="center"><FONT size="2" color=darkred>
<SELECT class="dropStyle" name="provenance"
<!-- onchange="MM_jumpMenu('window.open()',this,0)"> -->
<OPTION selected>>Choix...</OPTION>
<option value="Brocante&Antics">Brocante</option>;
<option value="Cadeaux&Gift">Cadeaux</option>;

Je ne sais pas traiter cette erreur sous VC11
Pouvez vous me guider dans ma détresse ?!!!

Bien amicalement
Polux 78

P.S.: Je suis en train de reprendre toutes mes bases sous VC11, et du haut de mes 69 ans... je souffre !!!
Merci pour votre aide.

Re: PHP VC11 - Fonction "Explode"

Posté : 09 août 2016, 22:11
par Aureusms
Bonjour Polux78,

Peut être que le & n'est pas trouvé. Essayes cela :
$provenance = (!empty($_POST['provenance'])) ? $_POST['provenance'] : "";
if (!empty($provenance) && preg_match('#&#',$provenance)) {
	list ($provenance_fr,$provenance_gb) = explode($provenance);
}
else
       echo 'le caractère & n\'a pas été trouvé ou provenance vide';

Re: PHP VC11 - Fonction "Explode"

Posté : 10 août 2016, 12:26
par polux78
Bonjour Aureusms

Ton bout de code fonctionne et me dit que le caractère "&" n'est pas trouvé !
Après tripatouillages... il s'avère que le & n'est pas accepté sous VC11
Il faut mettre à la place '&' pour que cela fonctionne
et dans le Explode mettre " '&' "
Aussi, pour faire plus simple j'ai mis un "titret", par ex.:
- Dans création de fiche =>
<OPTION selected>>Choix...</OPTION>
<option value="Brocante - Antics">Brocante</option>;
- Enregistrement de la fiche =>
$str = $provenance; // Infos de la zone Langue
$tableau = explode("-",$str);
$prov_fr = $tableau[0]; // Français
$prov_gb = $tableau[1]; // Anglais
et tout fonctionne à merveille !
Je me suis aussi servi de
echo '<pre>', print_r($GLOBALS), '</pre>';

Cependant, à la fin de l'enregistrement, avec
// on insère les informations de la fiche dans la table
$query = mysqli_query($link, $query_string) or die ('&nbsp;&nbsp;&nbsp;Erreur. Votre fiche n*est pas enregistrée : '.mysql_error() );
Je n'avais que le message "die" sans autre explication.

Je ne sais pas si le manuel PHP sous VC11 parle de la fonction explode avec le séparateur ?
J'espère que cela pourra rendre service aux PHP'man (and woman... of course)

Maintenant, il me reste à tester cela sous Free et non plus sur ma clé USB en VC11 !!!
Sur Free, je suis encore sous VC9, comme sur mon PC

Merci de m'avoir soutenu
Amitiés
Polux

P.S.: Tu peux voir mes 4 bases (sous VC9) en démonstration sur
www.veauvy.com
(Ce n'est pas de la pub, mais simplement faire voir des applications familiales simples)
Le dernier morceaux qui me reste à traiter sous VC11, c'est un tableau de calculs pour Ingénieurs avec un maxi de formules de calculs
Il s'agit de l'application "Levage & Manutention"
J'ai converti le tableau Excel en Base de données sur internet !!!
Le plus long fichier de calculs fait 1200 lignes !
Heureusement que je suis à la retraite !

Re: [RESOLU] PHP VC11 - Fonction "Explode"

Posté : 10 août 2016, 12:33
par polux78
Bonjour Aureusms,
Je finalise en mettant "Résolu" !

Re: [RESOLU] PHP VC11 - Fonction "Explode"

Posté : 11 août 2016, 16:38
par Aureusms
Pas de problème. Si je peux aider ;-)