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

PHP & Base de données Discussion :

Code PHP et erreur serveur Free : "Parse error: syntax error, unexpected '{' " [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 47
    Points : 30
    Points
    30
    Par défaut Code PHP et erreur serveur Free : "Parse error: syntax error, unexpected '{' "
    Bonjour à tous,

    J'ai écris un code PHP qui gère un carnet d'adresses avec une base de données MySQL.
    Le code fonctionne bien en local mais j'ai systématiquement un message d'erreur quand je souhaite l'utiliser sur mon FTP Free.

    Parse error: syntax error, unexpected '{' ........ on line 91

    Voilà le code correspondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    .
    .
    .
    $reponse = mysql_query("SELECT nom,prenom,adresse,codepostal,ville,tel,email,sexe FROM contact ORDER BY nom") or die(mysql_error());
     
    while ($donnees = mysql_fetch_array($reponse))
    {
    	// Si le champ nom n'est pas renseigné
    	if (($_POST['nom'] == NULL) AND ($_POST['prenom'] != NULL))
    	{   
    		if (ereg(strtolower($recherche_prenom),strtolower($donnees['prenom']))
    		{  // LIGNE 91
    			include('affich_cartecontact.php');
    		}
    	}
     
    	// Si le champ prenom n'est pas renseigné
    	elseif (($_POST['nom'] != NULL) AND ($_POST['prenom'] == NULL))
    	{
    		if (ereg(strtolower($recherche_nom),strtolower($donnees['nom']))
    		{
    			include('affich_cartecontact.php');
    		}
    	}
     
    	// Si le champ prenom et le champ nom sont renseignés
    	elseif (($_POST['nom'] != NULL) AND ($_POST['prenom'] != NULL))
    	{
    		if ((ereg(strtolower($recherche_nom),strtolower($donnees['nom'])) AND (ereg(strtolower($recherche_prenom),strtolower($donnees['prenom'])))
    		{
    			include('affich_cartecontact.php');
    		}
    	}
     
    	// Si le champ prenom et le champ nom ne sont pas renseignés
    	else
    	{
    		echo("<CENTER>");
    		echo("<TABLE cellspacing=\"10\">");
    		echo("<TR>");
    		echo("<TD><IMG align=\"right\" width=\"60px\" height=\"60px\" src=\"../css/icone/ico_erreur.png\"></TD>");
    		echo("<TD>"."Vous n'avez renseigné aucun champ !"."</TD>");
    		echo("</TR>");
    		echo("</TABLE>");
    		echo("</CENTER><BR>");
    	}	
    }
    .
    .
    .
    J'ai tapé mon message d'erreur dans Google et ça serait vraisemblablement un problème dû au serveur Free qu'il faut faire passer en php5.

    J'ai donc créé un fichier .htaccess qui contient php1.
    Je l'ai placé à la racine de mon FTP : aucun changement.
    Je l'ai placé dans le répertoire ou il y a le fichier affich_cartecontact.php (code ci-dessus) : aucun changement.


    Que faire?

    Merci pour votre aide.

  2. #2
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Salut mauriiice,

    Dans un premier temps, il te manque des parenthèses dans cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((ereg(strtolower($recherche_nom),strtolower($donnees['nom'])) AND (ereg(strtolower($recherche_prenom),strtolower($donnees['prenom'])))
    Il y en a plus d'ouvertes que de fermées, rectifie déjà cette erreur.

    ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 47
    Points : 30
    Points
    30
    Par défaut
    Merci, c'est déjà ça de corriger

    Mais ca ne résout pas mon problème avec Free :/
    En plus, j'ai lu plusieurs post de membre chez qui l'opération avait fonctionné avec le fichier .htaccess et php 1...

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 47
    Points : 30
    Points
    30
    Par défaut
    Copain ?


  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    Bonjour,

    Il est où le problème en fait maintenant ?

    Mettre php 1 dans un .htaccess, modifie bien la version de php sur un hébergement chez free (phpinfo()) pour vérifier.

  6. #6
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    De plus, même sur cette ligne il manque des parenthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ereg(strtolower($recherche_prenom),strtolower($donnees['prenom']))
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  7. #7
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut
    J'ajouterais qu'au lieu de se servir de cet infâme ereg et strtolower, il serait préférable d'utiliser stripos()

    Et vu que c'est pour faire une recherche, il va de soi que l'opération doit s'effectuer du côté de MySQL, en utilisant une case insensitive.

    Là, ton script n'est pas du tout cohérent, tu contrôles tes variables POST dans ta boucle...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 47
    Points : 30
    Points
    30
    Par défaut
    Ca me rend fou...

    J'ai bien mis le fichier .htaccess à la racine de mon ftp avec php 1 dedans.

    J'ai créé un fichier avec l'instruction phpinfo() dans le répertoire du code qui pose problème.
    Ca m'indique bien : PHP Version 5.1.3RC4-dev


    MAIS j'ai toujours le même message d'erreur, à savoir une accolade inattendue...
    "Parse error: syntax error, unexpected '{' in ..../recherche_contactV2.php on line 92"

    Je remet le code qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    .
    .
    .
    $reponse = mysql_query("SELECT nom,prenom,adresse,codepostal,ville,tel,email,sexe FROM contact ORDER BY nom") or die(mysql_error());
     
    while ($donnees = mysql_fetch_array($reponse))
    {
    	// Si le champ nom n'est pas renseigné
    	if (($_POST['nom'] == NULL) AND ($_POST['prenom'] != NULL))
    	{
    		if (ereg(strtolower($recherche_prenom),strtolower($donnees['prenom']))
    		{ // LIGNE 92
    			$compteur_resultat = $compteur_resultat + 1;
    			include('affich_cartecontact.php');
    		}
    	}
     
     
    	// Si le champ prenom n'est pas renseigné
    	elseif (($_POST['nom'] != NULL) AND ($_POST['prenom'] == NULL))
    	{
    		if (ereg(strtolower($recherche_nom),strtolower($donnees['nom']))
    		{
    			$compteur_resultat = $compteur_resultat + 1;
    			include('affich_cartecontact.php');
    		}
    	}
     
    	// Si le champ prenom et le champ nom sont renseignés
    	elseif (($_POST['nom'] != NULL) AND ($_POST['prenom'] != NULL))
    	{
    		if ((ereg(strtolower($recherche_nom),strtolower($donnees['nom'])) AND (ereg(strtolower($recherche_prenom),strtolower($donnees['prenom'])))
    		{
    			$compteur_resultat = $compteur_resultat + 1;
    			include('affich_cartecontact.php');
    		}
    	}
     
    	// Si le champ prenom et le champ nom ne sont pas renseignés
    	else
    	{
    		echo("<CENTER>");
    		echo("<TABLE cellspacing=\"10\">");
    		echo("<TR>");
    		echo("<TD><IMG align=\"right\" width=\"60px\" height=\"60px\" src=\"../css/icone/ico_erreur.png\"></TD>");
    		echo("<TD>"."Vous n'avez renseigné aucun champ !"."</TD>");
    		echo("</TR>");
    		echo("</TABLE>");
    		echo("</CENTER><BR>");
    	}	
    }
     
    .
    .
    .

  9. #9
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Dans un premier temps je ne ferais que me citer

    Citation Envoyé par sharrascript Voir le message
    De plus, même sur cette ligne il manque des parenthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ereg(strtolower($recherche_prenom),strtolower($donnees['prenom']))
    Et je pense que le conseil de Xunil est à prendre.

    Je n'ai pas jeté un œil dans le code, mais déjà essai de corriger les erreurs que je t'ai données accolades et parenthèses etc...
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 47
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par sharrascript Voir le message
    Je n'ai pas jeté un œil dans le code, mais déjà essai de corriger les erreurs que je t'ai données accolades et parenthèses etc...
    C'était effectivement un problème dû à un oubli de parenthèses, erreur que je fais souvent...
    Je vais réactiver la fermeture automatique des parenthèses dans Smultron, ça va être vite réglé

    J'ajouterais qu'au lieu de se servir de cet infâme ereg et strtolower, il serait préférable d'utiliser stripos()

    Et vu que c'est pour faire une recherche, il va de soi que l'opération doit s'effectuer du côté de MySQL, en utilisant une case insensitive.

    Là, ton script n'est pas du tout cohérent, tu contrôles tes variables POST dans ta boucle...
    Je suis bien conscient que ce code est imparfait, je vais tacher de me renseigner sur la fonction que tu m'as donné afin de le retravailler.

    En revanche, je n'ai pas bien compris l'histoire de la "case insensitive"...



    Merci pour votre aide.

  11. #11
    Membre éprouvé Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Points : 1 042
    Points
    1 042
    Par défaut
    Concernant l'histoire des casses sensitives, c'est par exemple, avec la fonction ereg, tu cherche "a" dans la chaine "b", mais tu utilise strtolower pour enlever les majuscules et être sûr de trouver la chaine même composée de majuscules ou non.

    Alors qu'il y a par exemple : eregi qui t'évite d'utiliser le strtolower, car insensible à la casse des caractères.

    Voilou ++
    LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 47
    Points : 30
    Points
    30
    Par défaut
    Merci pour ces infos

    ++

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

Discussions similaires

  1. [2.x] Problème avec le fichier app.php sur un serveur free.fr
    Par chlock62 dans le forum Symfony
    Réponses: 5
    Dernier message: 19/06/2013, 16h06
  2. Réponses: 3
    Dernier message: 02/09/2008, 13h39
  3. Réponses: 1
    Dernier message: 12/12/2007, 14h03
  4. [PHP-JS] Parse error: syntax error, unexpected T_STRIN
    Par maldini dans le forum Langage
    Réponses: 4
    Dernier message: 25/07/2006, 18h49
  5. arrêt du code php si erreur = vrai...
    Par sam01 dans le forum Langage
    Réponses: 5
    Dernier message: 25/02/2006, 22h24

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