IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

str_replace ne fonctionne pas


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut str_replace ne fonctionne pas
    bonjour,

    j'ai un problème avec mon str_replace,
    il fonctionne en local mais sur le serveur, il ne fonctionne pas

    voilà le code que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $nom=$_POST['nom'];
    $nom=str_replace("'","_",$nom);
    $nom=str_replace(";","",$nom);
    $nom=str_replace("é","e",$nom);
    $nom=str_replace("è","e",$nom);
    $nom=str_replace("ô","o",$nom);
    $nom=strtoupper($nom);
     
     
    $insert="INSERT INTO matable VALUES('','$ref','$nom','$prenom','$date','$theme','$objet','$kikafait')";
    echo $insert."<br>";
    je fais le même str_replace pour le nom et le prénom, les premiers '' de l'insert sont pour l'auto-incrément

    voilà les résultats

    sur le serveur
    INSERT INTO matable VALUES('','07-1681','PéRON','jérôme','2007-08-03','OBJET','THEME','kikafait')

    en local
    INSERT INTO matable VALUES('','07-1681','PERON','jerome','2007-08-03','OBJET','THEME','kikafait')

    j'ai également essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom=str_replace(\\',\'e\',$nom);
    que j'ai vu sur un forum mais ça me renvoie une erreur


    je vois pas le problème, est-ce que ça peut venir de la config de php ou quelque chose de ce genre? (je n'y connais pas grand chose pour l'instant)
    merci

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Est-ce que tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var_dump($_POST['nom']);
    au début de ton script s'il te plait?
    Penses a regarde le source de ta page (pas ce qu'affiche le navigateur parce qu'il va interpréter les caractères spéciaux).
    Sinon es-tu sur qu'en local il te remplace ton é majuscule par un e majuscule? parce que ca ne semble pas etre géré dans tes str_replace() là.

  3. #3
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par sebdu
    voilà ce qu'il me renvoie
    il ne faut pas mettre de echo devant, juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_POST['nom']);
    en fait ca permet d'afficher le contenu de la chaine et d'autres infos (le nombre de caractères par exemple)

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut re
    pour les é majuscule, je ne les gère pas, j'en ai pas besoin les gens tapent tout en minuscules c'est plus simple pour eux

    pour le var_dump il renvoie

  5. #5
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par sebdu
    pour les é majuscule, je ne les gère pas, j'en ai pas besoin les gens tapent tout en minuscules c'est plus simple pour eux

    pour le var_dump il renvoie
    voila!
    ca te dit qu'il y a 6 caractères alors que tu n'en lis que 5! Je suppose que le é est codé en UTF-8 et du coup prend deux caractères.
    donc avant tes str_replaces ajoutes ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom = utf8_decode($_POST['nom']);
    et dis nous si ca corrige le probleme !

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    Par défaut c'est bon
    bonjour,

    j'ai testé le uf8_decode et ça marche nickel,
    ça m'apprendra à bosser en local ( windows avec un serveur Linux)

    merci beaucoup koopajah

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. str_replace ne fonctionne pas
    Par azorol dans le forum Langage
    Réponses: 3
    Dernier message: 28/05/2015, 11h24
  2. [RegEx] str_replace ne fonctionne pas.
    Par LampeRouge dans le forum Langage
    Réponses: 4
    Dernier message: 08/03/2010, 19h10
  3. Réponses: 34
    Dernier message: 24/05/2006, 01h08
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo