Script Formulat contact - Eroare dupa adaugare campuri

Aici prezentati probleme, intrebari, sau orice subiecte legate de scripturi si tutoriale de pe site.
Jeffe
Mesaje:5

Script Formulat contact - Eroare dupa adaugare campuri

Va salut
Am incercat sa modific scriptul https://marplo.net/php-mysql/formular_contact-s.php in cel de aici:
pieseautopenet.ro/index.php?rt=product/category&path=71
Si am o eroare, nu pot deloc sa o repar !

Cod: Selectaţi tot

Parse error: syntax error, unexpected '"' in /home/pieseaut/public_html/storefront/view/default_html5/template/blocks/contact_mail.php on line 44
Ma puteti ajuta va rog ? Multumesc !

Cod: Selectaţi tot

<?php
session_start();
// De la https://marplo.net

/** Aici completati cu datele dv. **/

$to = 'ge9rge@yahoo.com';            // Adresa de e-mail la care va fi trimis mesajul

// Daca doriti sa folositi serverul SMTP de la GMail, dati la $gmail valoarea 1 
// Adaugati la $gmail_user adresa dv. de GMail (care va fi folosita pt. server SMTP) si parola ei la $gmail_pass
// Daca doriti sa folositi serverul pt. mail unde este incarcat acest script, lasati $gmail=0, iar $gmail_user si 

$gmail_pass cum e
$gmail = 0;
$gmail_user = 'contul_dv@gmail.com';
$gmail_pass = 'parola_gmail';


/** In continuare nu e nevoie sa modificati **/

// Verifica sesiune ce limiteaza trimiterea de cel mult un mail la 5 minute (300 secunde), utila si anti-refresh
if(isset($_SESSION['limit_contact']) && $_SESSION['limit_contact']>(time()-300)) {
  echo 'Se poate trimite cel mult un mesal la 5 minute.<br />Mai asteptati '.($_SESSION['limit_contact']-time()+300).' 

secunde';
  exit;
}

// Verifica daca e primit si corect codul de verificare (in caz ca trece de scriptul JavaScript)
if(isset($_POST['anti_spam']) && isset($_POST['anti_spam1']) && $_POST['anti_spam']==$_POST['anti_spam1']) {
  // Verifica dacca sunt primite prin post toate datele necesare
  if (isset($_POST['sasiu']) && isset($_POST['marca']) && isset($_POST['model']) && isset($_POST['an_fab']) && isset

($_POST['cilindree']) && isset($_POST['putere']) && isset($_POST['carburant']) && isset($_POST['carburant']) && isset

($_POST['email']) && isset($_POST['telefon']) && isset($_POST['produs'])) {
    $_POST = array_map("trim", $_POST);            // Sterge posibile spatii exterioare din date
    $_POST = array_map("strip_tags", $_POST);        // Elimina cu "strip_tags()" posibile taguri

    // Preia datele din formularul HTML
    $sasiu = $_POST['sasiu'];
    $marca = $_POST['marca'];
    $model = $_POST['model'];
    $an_fab = $_POST['an_fab'];
    $cilindree = $_POST['cilindree'];
$putere = $_POST['putere'];
$carburant = $_POST['carburant'];
$telefon = $_POST['telefon'];
$email = $_POST['email'];
$produs = $_POST['produs'];

    $body = 'Cerere de oferta piese :'"\n Serie sasiu $sasiu. "n Marca $marca. "\n Model $model."n An Fabricatie 

$an_fab."\n Cilindree $cilindree. "n Putere(kw) $putere."\n Carburant $carburant."n Telefon $telefon."\n Adresa lui 

/ei de e-mail: ". $email. "\n"n  .'Produs(e): '.$produs';

    // Daca $gmail=1, trimite mesajul cu functia gmail_sender(), din fisierul "gmail.php", care foloseste PhpMailer
    // Altfel, trimite mesajul cu functia mail() locala, a serverului
    if($gmail===1) {
      include('gmail/gmail.php');        // Include fisierul cu functia gmail_sender()

      // Apeleaza si preia rezultatul functiei gmail_sender()
      $send = gmail_sender($to, $gmail_user, $gmail_pass, $subiect, $body, $email, $nume);
    }
    else {
      $from = 'From: '. $email;
      // Apeleaza functia PHP mail(), daca trimite cu succes seteaza $send='trimis', altfel defineste 'Eroare:'
      if(mail($to, $subiect, $body, $from))  $send = 'trimis';
      else $send = 'Eroare: Serverul nu a putut expedia mesajul prin e-mail';
    }

    // Daca mesajul a fost trimis ( $send e setat 'trimis';), afiseaza mesaj de confirmare
    // Altfel, returneaza eroarea
    if($send=='trimis') {
      // Seteaza o sesiune prin care se blocheaza re-trimiterea mesajului la un eventual refresh sau mai curand de 

5 minute
      $_SESSION['limit_contact'] = time();

      $re = '<p>Stimate/a client(a), cererea dv. a fost trimisa cu succes, veti primi raspuns cat mai curand.</p>
      <p>Va multumim pentru increderea acordata.</p>
              ';
    }
    else $re = $send;
  }
  else $re = 'Eroare: Campuri de formular netransmise.';
}
else $re = 'Eroare: Cod de verificare incorect;

echo $re;
?>
Javascript:

Cod: Selectaţi tot

// https://marplo.net
// Functia care formeaza codul anti-spam, dintr-un numar preluat ca milisecunde din data curenta
function set_codas() {
  var data = new Date();
  var mili_s = (data.getMilliseconds()>10) ? data.getMilliseconds() : 12;
  var re = mili_s.toString()+Math.ceil(mili_s/11);

  // Adauga codul in campul ascuns din formular si in textul vizibil
  document.mailer.anti_spam.value = re;
  document.getElementById('codas').innerHTML = re;

  return re;
}

var cod_as = set_codas();		// Executa functia pt. crearea codului anti-spam
document.getElementById('div_as').style.display = 'block';	// Face vizibila zona pt. cod de verificare

// Functia pentru preluarea si verificarea datelor din formular
function Validate() {
  var formular = document.mailer;

  // Preia datele din formular
  var file_php = formular.action;
  file_php = file_php.split('/').pop();		// Retine doar partea cu numele si extensia fisierului php
  var sasiu = formular.sasiu.value;
  var marca = formular.marca.value;
  var model = formular.model.value;
  var an_fab = formular.an_fab.value;
var cilindree = formular.cilindree.value;
var putere = formular.putere.value;
var carburant = formular.carburant.value;
var telefon = formular.telefon.value;
var email = formular.email.value;
var produs = formular.produs.value;
  var cod_as = formular.anti_spam.value;
  var cod_as1 = formular.anti_spam1.value;

  // Verifica completarea campurilor din formular
  if (sasiu.length<17 || sasiu.length>17) {
	alert('Sasiul trebuie sa contina intr 17 caractere');
	formular.sasiu.focus();
  }
  else if (email.length<6 || email.indexOf("@")==-1 || sasiu.indexOf('.')==-1) {
	alert('Adaugati corect adresa dv. de e-mail');
	formular.email.focus();
  }
  else if (telefon.length<10 || telefon.length>10) {
	alert('Completati telefonul, 10 cifre');
	formular.telefon.focus();
  }
  else if (produs.length<3 || produs.length>500) {
	alert('Scrieti produsul, minim 5 caractere si maxim 500');
	formular.produs.focus();
  }
  else if(cod_as!=cod_as1) {
    alert('Cod de verificare incorect');
	formular.anti_spam1.focus();
  }
  else {
  // Creaza datele care trebuie trimise la ajax (fisierul.php cu datele catre el)
  var  datele = 'sasiu='+Sasiu+'&email='+Email+'&marca='+Marca+'&model='+Model+'&an_fab='+An Fabricatie+'&cilindee='+Cilindree+'&putere='+Putere(kw)+'&carburant='+Carburant+'&telefon='+Telefon+'&produs='+Produs+' &anti_spam='+cod_as+'&anti_spam1='+cod_as1;
  ajaxrequest(file_php, datele);		// Apeleaza ajaxrequest()
  }

  return false;
}

// Functia care verifica si creaza obiectul XMLHttpRequest in functie de browser
function get_XmlHttp() {
  // Creaza variabila care va contine instanta la XMLHttpRequest, initial cu valoare nula
  var xmlHttp = null;

  if(window.XMLHttpRequest) {		// Daca browser-ul e Forefox, Opera, Safari, ...
    xmlHttp = new XMLHttpRequest();
  }
  else if(window.ActiveXObject) {	// Daca browser-ul este Internet Explorer
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }

  return xmlHttp;
}

// Functia care trimite datele la un fisier PHP si returneaza raspunsul
function ajaxrequest(php_file, datele) {
  var cerere_http =  get_XmlHttp();		// Apeleaza functia pt. crearea instantei la obiectul XMLHttpRequest

  set_codas();		// Executa functia pt. crearea (schimbarea) codului anti-spam

  cerere_http.open("POST", php_file, true);			// Creaza cererea

  // Adauga un Header specific pentru ca datele sa fie recunoscute ca au fost trimise prin POST
  cerere_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  cerere_http.send(datele);		// Efectueaza trimiterea cererii, impreuna cu valorile care trebuie transmise

  // Verifica starea cererii
  // Daca raspunsul e primit complet, il transfera in eticheta HTML cu id-ul din "tagID"
  cerere_http.onreadystatechange = function() {
    if (cerere_http.readyState == 4) {
	  // Daca raspunsul de la script contine 'Eroare:' il afiseaza in titlu din formular
	  // Altfel, il afiseaza in locul formularului
	  if(cerere_http.responseText.indexOf("Eroare:")!=-1) {
	    document.getElementById('fc_titlu').innerHTML = cerere_http.responseText;
	  }
	  else {
	    document.mailer.innerHTML = cerere_http.responseText;
	  }
    }
  }
  return false;
}

MarPlo Mesaje:4343
Salut
Sunt o gramada de erori, si in php si in javascript. Am corectat ce am observat, vezi daca merge acesta in "contact_mail.php":

Cod: Selectaţi tot

<?php
session_start();
// De la https://marplo.net

/** Aici completati cu datele dv. **/

$to = 'ge9rge@yahoo.com';            // Adresa de e-mail la care va fi trimis mesajul

// Daca doriti sa folositi serverul SMTP de la GMail, dati la $gmail valoarea 1 
// Adaugati la $gmail_user adresa dv. de GMail (care va fi folosita pt. server SMTP) si parola ei la $gmail_pass
// Daca doriti sa folositi serverul pt. mail unde este incarcat acest script, lasati $gmail=0, iar $gmail_user si 

$gmail = 0;
$gmail_user = 'contul_dv@gmail.com';
$gmail_pass = 'parola_gmail';


/** In continuare nu e nevoie sa modificati **/

// Verifica sesiune ce limiteaza trimiterea de cel mult un mail la 5 minute (300 secunde), utila si anti-refresh
if(isset($_SESSION['limit_contact']) && $_SESSION['limit_contact']>(time()-300)) {
  echo 'Se poate trimite cel mult un mesal la 5 minute.<br />Mai asteptati '.($_SESSION['limit_contact']-time()+300).' secunde';
  exit;
}

// Verifica daca e primit si corect codul de verificare (in caz ca trece de scriptul JavaScript)
if(isset($_POST['anti_spam']) && isset($_POST['anti_spam1']) && $_POST['anti_spam']==$_POST['anti_spam1']) {
  // Verifica dacca sunt primite prin post toate datele necesare
  if (isset($_POST['sasiu']) && isset($_POST['marca']) && isset($_POST['model']) && isset($_POST['an_fab']) && isset($_POST['cilindree']) && isset($_POST['putere']) && isset($_POST['carburant']) && isset($_POST['email']) && isset($_POST['telefon']) && isset($_POST['produs'])) {
    $_POST = array_map("trim", $_POST);            // Sterge posibile spatii exterioare din date
    $_POST = array_map("strip_tags", $_POST);        // Elimina cu "strip_tags()" posibile taguri
    $subiect = 'E-mail de pe site';

    // Preia datele din formularul HTML
    $sasiu = $_POST['sasiu'];
    $marca = $_POST['marca'];
    $model = $_POST['model'];
    $an_fab = $_POST['an_fab'];
    $cilindree = $_POST['cilindree'];
    $putere = $_POST['putere'];
    $carburant = $_POST['carburant'];
    $telefon = $_POST['telefon'];
    $email = $_POST['email'];
    $produs = $_POST['produs'];

    $body = "Cerere de oferta piese : \n Serie sasiu $sasiu \n Marca $marca \n Model $model \n An Fabricatie $an_fab \n Cilindree $cilindree \n Putere(kw) $putere \n Carburant $carburant \n Telefon $telefon \n Adresa lui /ei de e-mail: $email. \n\n Produs(e): $produs ";

    // Daca $gmail=1, trimite mesajul cu functia gmail_sender(), din fisierul "gmail.php", care foloseste PhpMailer
    // Altfel, trimite mesajul cu functia mail() locala, a serverului
    if($gmail===1) {
      include('gmail/gmail.php');        // Include fisierul cu functia gmail_sender()

      // Apeleaza si preia rezultatul functiei gmail_sender()
      $send = gmail_sender($to, $gmail_user, $gmail_pass, $subiect, $body, $email, $nume);
    }
    else {
      $from = 'From: '. $email;
      // Apeleaza functia PHP mail(), daca trimite cu succes seteaza $send='trimis', altfel defineste 'Eroare:'
      if(mail($to, $subiect, $body, $from))  $send = 'trimis';
      else $send = 'Eroare: Serverul nu a putut expedia mesajul prin e-mail';
    }

    // Daca mesajul a fost trimis ( $send e setat 'trimis';), afiseaza mesaj de confirmare
    // Altfel, returneaza eroarea
    if($send=='trimis') {
      // Seteaza o sesiune prin care se blocheaza re-trimiterea mesajului la un eventual refresh sau mai curand de 5 minute
      $_SESSION['limit_contact'] = time();

      $re = '<p>Stimate/a client(a), cererea dv. a fost trimisa cu succes, veti primi raspuns cat mai curand.</p>
      <p>Va multumim pentru increderea acordata.</p>';
    }
    else $re = $send;
  }
  else $re = 'Eroare: Campuri de formular netransmise.';
}
else $re = 'Eroare: Cod de verificare incorect';

echo $re;
?>
Iar acesta in "contact.js":

Cod: Selectaţi tot

// https://marplo.net
// Functia care formeaza codul anti-spam, dintr-un numar preluat ca milisecunde din data curenta
function set_codas() {
  var data = new Date();
  var mili_s = (data.getMilliseconds()>10) ? data.getMilliseconds() : 12;
  var re = mili_s.toString()+Math.ceil(mili_s/11);

  // Adauga codul in campul ascuns din formular si in textul vizibil
  document.mailer.anti_spam.value = re;
  document.getElementById('codas').innerHTML = re;

  return re;
}

var cod_as = set_codas();      // Executa functia pt. crearea codului anti-spam
document.getElementById('div_as').style.display = 'block';   // Face vizibila zona pt. cod de verificare

// Functia pentru preluarea si verificarea datelor din formular
function Validate() {
  var formular = document.mailer;

  // Preia datele din formular
  var file_php = formular.action;
  file_php = file_php.split('/').pop();      // Retine doar partea cu numele si extensia fisierului php
  var sasiu = formular.sasiu.value;
  var marca = formular.marca.value;
  var model = formular.model.value;
  var an_fab = formular.an_fab.value;
  var cilindree = formular.cilindree.value;
  var putere = formular.putere.value;
  var carburant = formular.carburant.value;
  var telefon = formular.telefon.value;
  var email = formular.email.value;
  var produs = formular.produs.value;
  var cod_as = formular.anti_spam.value;
  var cod_as1 = formular.anti_spam1.value;

  // Verifica completarea campurilor din formular
  if (sasiu.length<2 || sasiu.length>17) {
   alert('Sasiul trebuie sa contina intre 2 si 17 caractere');
   formular.sasiu.focus();
  }
  else if (email.length<6 || email.indexOf("@")==-1 || email.indexOf('.')==-1) {
   alert('Adaugati corect adresa dv. de e-mail');
   formular.email.focus();
  }
  else if (telefon.length<10 || telefon.length>10) {
   alert('Completati telefonul, 10 cifre');
   formular.telefon.focus();
  }
  else if (produs.length<3 || produs.length>500) {
   alert('Scrieti produsul, minim 5 caractere si maxim 500');
   formular.produs.focus();
  }
  else if(cod_as!=cod_as1) {
    alert('Cod de verificare incorect');
   formular.anti_spam1.focus();
  }
  else {
  // Creaza datele care trebuie trimise la ajax (fisierul.php cu datele catre el)
  var  datele = 'sasiu='+sasiu+'&email='+email+'&marca='+marca+'&model='+model+'&an_fab='+an_fab+'&cilindree='+cilindree+'&putere='+putere+'&carburant='+carburant+'&telefon='+telefon+'&produs='+produs+'&anti_spam='+cod_as+'&anti_spam1='+cod_as1;
  ajaxrequest(file_php, datele);      // Apeleaza ajaxrequest()
  }

  return false;
}

// Functia care verifica si creaza obiectul XMLHttpRequest in functie de browser
function get_XmlHttp() {
  // Creaza variabila care va contine instanta la XMLHttpRequest, initial cu valoare nula
  var xmlHttp = null;

  if(window.XMLHttpRequest) {      // Daca browser-ul e Forefox, Opera, Safari, ...
    xmlHttp = new XMLHttpRequest();
  }
  else if(window.ActiveXObject) {   // Daca browser-ul este Internet Explorer
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  }

  return xmlHttp;
}

// Functia care trimite datele la un fisier PHP si returneaza raspunsul
function ajaxrequest(php_file, datele) {
  var cerere_http =  get_XmlHttp();      // Apeleaza functia pt. crearea instantei la obiectul XMLHttpRequest

  set_codas();      // Executa functia pt. crearea (schimbarea) codului anti-spam

  cerere_http.open("POST", php_file, true);         // Creaza cererea

  // Adauga un Header specific pentru ca datele sa fie recunoscute ca au fost trimise prin POST
  cerere_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  cerere_http.send(datele);      // Efectueaza trimiterea cererii, impreuna cu valorile care trebuie transmise

  // Verifica starea cererii
  // Daca raspunsul e primit complet, il transfera in eticheta HTML cu id-ul din "tagID"
  cerere_http.onreadystatechange = function() {
    if (cerere_http.readyState == 4) {
     // Daca raspunsul de la script contine 'Eroare:' il afiseaza in titlu din formular
     // Altfel, il afiseaza in locul formularului
     if(cerere_http.responseText.indexOf("Eroare:")!=-1) alert(cerere_http.responseText);
     else {
       document.mailer.innerHTML = cerere_http.responseText;
     }
    }
  }
  return false;
}
- Daca mai apar erori, incearca sa le repari si tu, eu nu ma mai bag.

Jeffe Mesaje:5
Multumesc frumos , Merge , primesc mail , dar tot este o eroare !

Cod: Selectaţi tot

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/pieseaut/public_html/storefront/view/default_html5/template/blocks/contact_mail.php:1) in /home/pieseaut/public_html/storefront/view/default_html5/template/blocks/contact_mail.php on line 2

Stimate/a client(a), cererea dv. a fost trimisa cu succes, veti primi raspuns cat mai curand.

Va multumim pentru increderea acordata.

MarPlo Mesaje:4343
Vezi ca inainte de "<?php" sa nu fie vreun spatiu sau alt caracter, iar fisierul sa fie salvat cu Encode UTF-8 without BOM.

Jeffe Mesaje:5
A fost intradevar un spatiu ! Am reparat eroarea.. va multumesc . O zi buna !

Subiecte similare