[RESOLU] Parse error: syntax error, unexpected '{' in /home/avisueld/www/mail/MailHandler.php on line 51

Petit nouveau ! | 1 Messages

22 févr. 2016, 21:08

Bonjour à vous tous
Je viens demander un peu d'aide aux spécialistes PHP. Mon problème est l'erreur citée dans le sujet
J'ai pour envoyer mes emails, un fichier MailHandler,TMform.js et ma page contact.html. J'ai essayé en cherchant par moi même mais, je n'ai pas réussi.....d'où mon post
Je vous joints donc ces fichiers peut-être trouverez vous d'où vient l'erreur
ps:j'ai remplacé par des étoiles les infos personnelles et indiqué la ligne 51 nommée.

En vous remerciant par avance
Cordialement

André
<?php
	$owner_email='************@gmail.com';
	//SMTP server settings	
	$host = '*********';
    $port = '****';//"****";
    $username = '****************@gmail.com';
    $password = '';

    $subject='A message from your site visitor ';
    $user_email='';    
	$message_body='';
	$message_type='html';

	$max_file_size=50;//MB 
	$file_types='/(doc|docx|txt|pdf|zip|rar)$/';
	$error_text='something goes wrong';
	$error_text_filesize='File size must be less than';
	$error_text_filetype='Failed to upload file. This file type is not allowed. Accepted files types: doc, docx, txt, pdf, zip, rar.';

	$private_recaptcha_key='6LeZwukSAAAAACmqrbLmdpvdhC68NLB1c9EA5vzU'; //localhost
	
	
	$use_recaptcha=isset( $_POST["recaptcha_challenge_field"]) and isset($_POST["recaptcha_response_field"]);
	$use_smtp=($host=='' or $username=='' or $password=='');
	$max_file_size*=1048576;

	if($owner_email==''){
		die('Attention, recipient e-mail is not set! Please define "owner_email" variable in the MailHanlder.php file.');
	}

	if(preg_match('/^(127\.|192\.168\.)/',$_SERVER['REMOTE_ADDR'])){
		die('Attention, contact form will not work locally! Please upload your template to a live hosting server.');
	}

	//if($use_recaptcha){
		require_once('recaptchalib.php');
		$resp = recaptcha_check_answer ($private_recaptcha_key,$_SERVER["REMOTE_ADDR"],$_POST["recaptcha_challenge_field"],$_POST["recaptcha_response_field"]);
		if (!$resp->is_valid){
			die ('wrong captcha');
		}
	//}
	
	if(isset($_POST['name']) and $_POST['name'] != ''){$message_body .= '<p>Visiteur: ' . $_POST['name'] . '</p>' . "\n" . '<br>' . "\n"; $subject.=$_POST['name'];}
	if(isset($_POST['email']) and $_POST['email'] != ''){$message_body .= '<p>Adresse Email: ' . $_POST['email'] . '</p>' . "\n" . '<br>' . "\n"; $user_email=$_POST['email'];}
	if(isset($_POST['state']) and $_POST['state'] != ''){$message_body .= '<p>State: ' . $_POST['state'] . '</p>' . "\n" . '<br>' . "\n";}
	if(isset($_POST['phone']) and $_POST['phone'] != ''){$message_body .= '<p>Téléphone: ' . $_POST['phone'] . '</p>' . "\n" . '<br>' . "\n";}	
	if(isset($_POST['fax']) and $_POST['fax'] != ''){$message_body .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n" . '<br>' . "\n";}
	if(isset($_POST['message']) and $_POST['message'] != ''){$message_body .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";}	
	if(isset($_POST['stripHTML']) and $_POST['stripHTML']=='true'){$message_body = strip_tags($message_body);$message_type='text';}

ligne 51   
try{
	include "libmail.php";
	$m= new Mail("utf-8");
	$m->From($user_email);
	$m->To($owner_email);
	//$m->Subject($subject);
	$m->Body($message_body,$message_type);
	//$m->log_on(true);

	if(isset($_FILES['attachment'])){
		if($_FILES['attachment']['size']>$max_file_size){
			$error_text=$error_text_filesize . ' ' . $max_file_size . 'bytes';
			die($error_text);			
		}else{			
			if(preg_match($file_types,$_FILES['attachment']['name'])){
				$m->Attach($_FILES['attachment']['tmp_name'],$_FILES['attachment']['name'],'','attachment');
			}else{
				$error_text=$error_text_filetype;
				die($error_text);				
			}
		}		
	}
	if(!$use_smtp){
		$m->smtp_on( $host, $username, $password, $port);
	}

	if($m->Send()){
		die('success');
	}	
	
}catch(Exception $mail){
	die($mail);
}	
?>
<h4>Formulaire</h4>
        <form id="contact-form">
          <!--<div class="contact-form-loader"></div>-->
          <fieldset>
            <label class="name">
              <input type="text" name="name" placeholder="Nom:" value="" data-constraints="@Required @JustLetters"  />
              <span class="empty-message">*Ce champs est obligatoire.</span>
              <span class="error-message">*Ce champs est obligatoire.</span>
            </label>
           
            <label class="email">
              <input type="text" name="email" placeholder="E-mail:" value="" data-constraints="@Required @Email" />
              <span class="empty-message">*Ce champs est obligatoire.</span>
              <span class="error-message">*Adresse mail incorrecte.</span>
            </label>
            <label class="phone">
              <input type="text" name="phone" placeholder="Téléphone:" value="" data-constraints="@Required @JustNumbers" />
              <span class="empty-message">*Ce champs est obligatoire.</span>
              <span class="error-message">*Numéro incorrect.</span>
            </label>
           
            <label class="message">
              <textarea name="message" placeholder="Message:" value="" data-constraints="@Required @Length(min=20,max=999999)"></textarea>
              <span class="empty-message">*Ce champs est obligatoire.</span>
              <span class="error-message">*Message trop court.</span>
            </label>
            <div>
              <a href="#" class="btn" data-type="reset">Effacer</a>
              <a href="#" class="btn" data-type="submit">Envoyer</a>
            </div>
          </fieldset> 
          <div class="modal fade response-message">
            <div class="modal-dialog">
              <div class="modal-content">
                <div class="modal-header">
                  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                  <h4 class="modal-title">Modal title</h4>
                </div>
                <div class="modal-body">
                  Votre message a été envoyé nous allons y répondre.
                </div>

Mammouth du PHP | 1967 Messages

23 févr. 2016, 12:21

Je pense que si tu met l'argument de ton include entre paranthèse cela fonctionnera mieux
try{
  include ("libmail.php");
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

ynx
Mammouth du PHP | 586 Messages

23 févr. 2016, 13:43

Salut,

Les parenthèses sont normalement facultatives pour les structures de langage (include, require, echo...).

Il ne semble pas y avoir d'erreur de syntaxe dans le code posté (hormis le texte "ligne 51" que tu as ajouté). Es-tu sur qu'il s'agit bien de ce code ?
A tout hasard, as tu le même message d'erreur en supprimant le include 'libmail.php'; ?

Bonne journée,

andr
Invité n'ayant pas de compte PHPfrance

23 févr. 2016, 15:57

Salut,

Les parenthèses sont normalement facultatives pour les structures de langage (include, require, echo...).

Il ne semble pas y avoir d'erreur de syntaxe dans le code posté (hormis le texte "ligne 51" que tu as ajouté). Es-tu sur qu'il s'agit bien de ce code ?
A tout hasard, as tu le même message d'erreur en supprimant le include 'libmail.php'; ?

Bonne journée,
[quote ="andré"]
Merci pour les suggestions mais j'ai tenté les 2 et j'ai toujours le même message?

Bonne journée[/quote]

ynx
Mammouth du PHP | 586 Messages

24 févr. 2016, 10:16

Après quelques tests, le problème semble venir de la version de php que tu utilises. Il semble que tu utilises la version 4 de php, or la gestion des exceptions (try/catch) a été ajoutée dans php à partir de la version 5.
Il faut donc mettre à jour ta version de PHP.

andr
Invité n'ayant pas de compte PHPfrance

24 févr. 2016, 17:35

Après quelques tests, le problème semble venir de la version de php que tu utilises. Il semble que tu utilises la version 4 de php, or la gestion des exceptions (try/catch) a été ajoutée dans php à partir de la version 5.
Il faut donc mettre à jour ta version de PHP.
Et non justement j'ai mis à jour ma version de PHP ci-dessous le fichier coller à la racine de mon site

app.engine=php
app.engine.version=5.6
http.firewall=none
environment=production

Donc je cherche encore...


ynx
Mammouth du PHP | 586 Messages

25 févr. 2016, 10:21

Pourtant le code posté dans ton premier message ne comporte pas d'erreur de syntaxe : http://sandbox.onlinephpfunctions.com/c ... 78d1f8192d
J'ai commenté les classes et variables non définies (require recaptcha et include libmail) et le code s’exécute correctement. Par contre je retrouve bien ton message d'erreur avec PHP 4.

Peux tu essayer de supprimer le try/catch afin de confirmer ou non que le problème vient de là ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

25 févr. 2016, 10:26

Pour en être sur, rien de mieux qu'une simple page PHP qui contient juste ça :
<?php
phpinfo();
Quand tout le reste a échoué, lisez le mode d'emploi...

andr
Invité n'ayant pas de compte PHPfrance

25 févr. 2016, 10:36

Pour en être sur, rien de mieux qu'une simple page PHP qui contient juste ça :
<?php
phpinfo();

Merci à vous tous pour votre aide,j'ai vérifier la mise à jour de PHP et en fait elle n'avait pas été prise en charge car le fichier placé à la racine de mon site n'été pas conforme..Chose faîte et maintenant plus de problème.
Donc sujet RESOLU
Encore merci pour vos suggestions
André