Workshop FORPSI Cloud rozptýlí vaše obavy z použití cloudu
Zobrazují se odpovědi 1 až 3 z 3

Je to na joomle, ale je to mimo ní. Hádanka pro PHP-čkaře na dnešní večer

  1. Ahoj všem,

    Mám postranní ajaxový formulář, který odesílá data na email. Mám ho na joomle je integrovaný mimo krabičku joomly není to plugin ani modul ani componenta. Na stránce celý proces proběhne a formulář odesílá na email...vyskočí zelená hláška , že bylo odesláno...na email , ale nic nedorazí.

    Ještě bych měl dodat, že na Endoře na http, ten formulář tak jak ho vidíte šel...Na Českém hostingu nejde a taky je to teď s ssl certifikátem. .

    Taky jsem udělal test a vypsalo to to co je za else:

    Kód:
        <?php
    		if (isset($_POST['g-recaptcha-response'])) {
      $response = $_POST['g-recaptcha-response'];
      echo($response);
     }
     else {
     echo"value is not passing to the php script";
       } 
      ?>
    V logu je tato chyba:
    Kód:
    [15-Jun-2018 20:18:12 Europe/Prague] PHP Notice:  Undefined index: g-recaptcha-response in /home/www/beautypetra.cz/www/beautypetra.cz/templates/shaper_helix3/FeedbackForm/form.php on line 58
    Když odeberu $content z funkce mail... tak se formulář odešle bez dat na email dorazí.

    Kód:
    <?php
    header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Allow-Origin: '.(isset($_SERVER['HTTP_ORIGIN'])?$_SERVER['HTTP_ORIGIN']:'*'));
    header('Access-Control-Allow-Headers: *');
    
    $fields = array(
    	array('name' => 'name', 'valid' => array('require'), 'title' => 'Jméno'),
    	array('name' => 'email', 'valid' => array('require'), 'title' => 'Email'),
      array('name' => 'telefon', 'valid' => array('require'), 'title' => 'Telefon'),
    	array('name' => 'message', 'title' => 'Zpráva', 'valid' => array('require')),
    );
    
    $info = pathinfo($_SERVER['REQUEST_URI']);
    $path = '//'.$_SERVER['HTTP_HOST'].$info['dirname'].'/';
    
    
    
    
    
    if (!empty($_POST)){
    	$error_fields = array();
    	$email_content = array();
    	foreach ($fields AS $field){
    		$value = isset($_POST[$field['name']])?$_POST[$field['name']]:'';
    		$title = empty($field['title'])?$field['name']:$field['title'];
    		if (is_array($value)){
    			$value = implode('/ ', $value);
    		}
    		$email_content[] = $title.': '.$value;
    		$is_valid = true;
    		$err_message = '';
    		if (!empty($field['valid'])){
    			foreach ($field['valid'] AS $valid) {
    				switch ($valid) {
    					case 'require':
    						$is_valid = $is_valid && strlen($value) > 0;
    						$err_message = 'Prosím vyplňte políčko';
    						break;
    					case 'email':
    						$is_valid = $is_valid && preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $value);
    						$err_message = 'Email ve správném tvaru.';
    						break;
    					default:				
    						break;
    				}
    			}
    		}
    		if (!$is_valid){
    			if (!empty($field['err_message'])){
    				$err_message = $field['err_message'];
    			}
    			$error_fields[] = array('name' => $field['name'], 'message' => $err_message);
    		}
    	}          
        $url = 'https://www.google.com/recaptcha/api/siteverify';
      $opts = array('https' =>
        array(
          'method'  => 'POST',
          'header'  => 'Content-type: application/x-www-form-urlencoded',
          'content' => http_build_query(array('secret' => '6Lf3DV8UAAAAAGkoBASl-096Har_E5aOpPvYPIVy', 'response' => $_POST["g-recaptcha-response"]))
        )
      );
      $context  = stream_context_create($opts);
      $result = json_decode(file_get_contents($url, false, $context, -1, 40000));  
      
    
       
    	if (empty($error_fields)){
    	    //definice hlavicek
      $headers = "From: gargulakpetr@seznam.cz\n";
      $headers .= "MIME-Version: 1.0\n";
      $headers .= "Content-Type: text/plain; charset=iso-8859-2\n";
      $headers .= "Content-Transfer-Encoding: 8bit\n";
      $headers .= "Return-Path: gargulakpetr@seznam.cz\n";
    		// Send email
       $content = implode('<hr>', $email_content);
    
    
        mail('gargulakpetr@seznam.cz', 'Poptávka z webu www.beautypetra.cz', $content, $headers);
    	
    		echo (json_encode(array('code' => 'success')));
    	}else{
    		echo json_encode(array('code' => 'failed', 'fields' => $error_fields));
    	}  
    	die();
    
      
    }
      
    
      
    
    ?>
    
    <div class="wrap-embed-contact-form">
    	<form id="demo-form" class="embed-contact-form">
    		<div class="form-heading"><ul style="margin-bottom:10px;">
    		<li class="sp-contact-phone"><i class="fa telefon"></i><span style="font-size:10px;font-family: Raleway, sans-serif;color:grey;">Volejte  </span> <a href="tel:+420 776 593 004">776 593 004</a></li>
    		</ul></div>
        
        <?php
    		if (isset($_POST['g-recaptcha-response'])) {
      $response = $_POST['g-recaptcha-response'];
      echo($response);
     }
     else {
     echo"value is not passing to the php script";
       } 
      ?>
    		<div class="form-message hide">
    			Vaše zpráva byla úspěšně odeslána!
          
    		</div>
    		<div class="form-content">
    			<div class="group">
    		
    				<div><input type="text" id="name" name="name" placeholder="Vaše jméno" class="form-control"></div>
    			</div>
    			<div class="group">
    				
    				<div><input type="email" name="email" placeholder="Email" class="form-control"></div>
    			</div>
    			<div class="group">
    			<div><input type="text" name="telefon" placeholder="Telefon" class="form-control"></div>
    			</div>
    			<div class="group">
    			
    				<div><textarea id="message" name="message" placeholder="Zpráva" class="form-control" rows="5"></textarea></div>
    			</div>
         
    			<div class="group">
    				
    				<div style="margin-top:20px;"><button class="btn-submit g-recaptcha tlacitko3 sipka-vpravo"
    data-sitekey="6Lf3DV8UAAAAANZtCVtzEc_PdCGUjgxxucQD9nXF" type="submit">Odeslat</button></div>
    			</div>
    		</div>
    		<a class="btn-show-contact" href="#contact"><img src="<?php echo $path; ?>/btn_contact.png"></a>
    	</form>
    </div>
    Formulář je tady na stránce:
    https://www.beautypetra.cz/


    S přáním pěkného víkendu
    Petr Gargulák

  2. Co se právě děje na Webtrhu?
  3. v logu je nejaka cesta - odpovida ceste na novem hostingu?

  4. Citace Původně odeslal ghostik Zobrazit příspěvek
    v logu je nejaka cesta - odpovida ceste na novem hostingu?
    No vypadá to, že jo jak to zjistím ?

    ---------- Příspěvek doplněn 15.06.2018 v 22:18 ----------

    Web je v kořenovém adresáři.... nikam výš , už nemohu takže lomítko a tam je složka beutypetra.cz v ní je web a na stejné úrovni jsou složky střeba s logem log

    ---------- Příspěvek doplněn 15.06.2018 v 23:03 ----------

    Citace Původně odeslal ghostik Zobrazit příspěvek
    v logu je nejaka cesta - odpovida ceste na novem hostingu?
    Tohle je cesta v administraci joomly....globální nastavení, systémové nastavení

    /home/www/beautypetra.cz/www/beautypetra.cz/administrator/logs

    ---------- Příspěvek doplněn 16.06.2018 v 22:53 ----------

    Vyřešeno. Na českém hostingu musí být za kontentem '\n'

    Kód:
    	    //definice hlavicek
    
    $headers = "From: info@beautypetra.cz\n";
    $headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-Type: text/html; charset=utf-8\n";
    $headers .= "Content-Transfer-Encoding: 8bit\n";
    $headers .= "Return-Path: info@beautypetra.cz\n";
    
    		// Send email
         $content .= implode('<hr>',$email_content);
        
    
        mail('gargulakpetr@seznam.cz', 'Poptavka z webu www.beautypetra.cz', $content.'\n', $headers);

Hostujeme u Server powered by TELE3