Ondersteuning » Overige » ik heb geprobeerd 2 php pages met elkaar verbinden maar er is geen enkele teken?

  • Hallo,
    ik heb custom contact.php pagina gemaakt en custom contact-form.php pagina.
    Ik heb geprobeerd om contact-form.php in contact.php pagina inhouden.
    dus ik heb deze code in mij contact.php page:

    <?php
     /* Template Name: Contact */ 
    get_header();
    the_content();
    include_once ('/contact-form.php');
    ?>

    en mij contact-page.php ziet zo uit:

    <?php
     /* Template Name: Contact-form */ 
    get_header();
    the_content();
    

    ten eerste in de bron code ik zie geen contact-form.php pagina .
    maar als ik ga naar pages in wordpress ik zie onder template deze 2 pagina’s staan als optie.
    ik heb geprobeerd een div class te maken in contact-form.php met tekst (hello) om te testen dat deze 2 pagina’s verbonden zijn met elkaar . maar er is geen enkele aanwijzing .

    ik denk de contact-form.php is niet verbonden met contact.php pagina.
    u kunt op website gaan om te zien hoe ik kan deze probleem oplossen.
    dank u wel

    • Dit onderwerp is gewijzigd 4 weken geleden door Jeroen Rotty. Reden: Fix code

    De pagina waar ik hulp bij nodig heb: [log in om de link te zien]

15 reacties aan het bekijken - 1 tot 15 (van in totaal 17)
  • Guido

    (@guido07111975)

    Hoi,

    Je hebt 2 zelfstandige pagina-templates gemaakt.

    Als je een pagina-template hebt en daar iets wilt insluiten, moet je dit toevoegen:

    get_template_part( 'contact-form' );

    Het contactformulier moet dan in PHP-bestand contact-form staan, zonder:

    /* Template Name: Contact-form */
    get_header();
    the_content();

    Maar ik begrijp niet waarom je het zo wilt doen? Waarom alles niet in 1 bestand (pagina-template Contact)? En als je een contactformulier plugin gebruikt, hoeft het helemaal niet zo, de meeste plugins hebben een shortcode die je via de editor ergens in je pagina-content zet.

    Guido

    Thread starter johannes999

    (@johannes999)

    dank u wel,
    maar heeft niet geholpen.
    ik heb require_once geprobeerd ook niet geholpen.
    ik heb deze function geprobeerd in function.php

    <?php
    $filename = '/contact.php';
    
    if (file_exists($filename)) {
      include_once {'/contact-form.php') ;
        
    } else {
        echo "The file $filename does not exist";
    }
    ?>

    heeft niet geholpen.

    plus ik zie de contact-form.php in bron code pagina niet.
    maar hij ziet wel in template opties in pages.
    kent u mischien een betere code om te plaatsen in function.php? net als hier boven!

    • Deze reactie is gewijzigd 4 weken geleden door Jeroen Rotty. Reden: fix code blokken
    Guido

    (@guido07111975)

    Hoi,

    Je maakt een PHP-bestand met de bestandsnaam “contact”. Voeg dit toe:

    <?php
    /*
     * Template Name: Contact
     * Description: Template voor contactpagina
     * Template Post Type: page
     */
    get_header();
    the_content();
    get_template_part( 'contact-form' );
    

    Dan maak je een PHP-bestand met de bestandsnaam “contact-form” en daarin zet je het formulier. Dat bestand komt in dezelfde map als bestand “contact”.

    Ik weet niet wat je allemaal in bestand “contact-form” gezet hebt, misschien is dat ook wel onjuist.

    En ik vraag me nog steeds af waarom je het op deze manier wilt doen?

    Guido
    ps. Als je code toevoegt op dit forum, druk dan vóór en ná je code op de “code” knop die in de opmaak balk boven het veld staat.

    Thread starter johannes999

    (@johannes999)

    is niet gelukt ik krijg error.
    contact.php code is :

    <?php
    /*
     * Template Name: Contact
     * Description: Template voor contactpagina
     * Template Post Type: page
     */
    get_header();
    the_content();
    get_template_part( 'contact-form' );
    ?>
    
    <div class="container">
    <form id="contact" action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
    <h3>Quick Contact</h3>
    <h4>Contact us today, and get reply with in 24 hours!</h4>
    <fieldset>
          <input placeholder="Your name" type="text" name="name" >
      
     
    
    </fieldset>
    <fieldset>
          <input placeholder="Your Email Address" type="text" name="email"  >  
    	
    
     </fieldset>
    <fieldset>
          <input placeholder=" your phone number" type="text" name="phone"   > 
    
    </fieldset>
    <fieldset>
          <textarea placeholder="Type your message here...." type="text" name="comment">  </textarea></fieldset>
    <fieldset>
    <button name="submit" type="submit" id="contact-submit">Submit</button></fieldset>
    <div class="success"></div>
    <div class="error"></div>
    </form></div>
    	<?php
    get_footer();

    contact-form.php code is :

    <?php
     /* Template Name: Contact-form */ 
    get_header();
    the_content();
    
    // define variables and set to empty values
    $nameErr = $emailErr = $phoneErr = "";
    $name = $email = $phone = $comment ==$success="";
    
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
      if (empty($_POST["name"])) {
        $nameErr = "Name is required";
      } else {
        $name = test_input($_POST["name"]);
        // check if name only contains letters and whitespace
        if (!preg_match("/^[a-zA-Z-' ]*$/",$name)) {
          $nameErr = "Only letters and white space allowed";
        }
      }
      
      if (empty($_POST["email"])) {
        $emailErr = "Email is required";
      } else {
        $email = test_input($_POST["email"]);
        // check if e-mail address is well-formed
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
          $emailErr = "Invalid email format";
        }
      }
       
    	   
        if (empty($_POST["phone"])) {
        $phoneErr = "phone is required";
      } else {
        $phone = test_input($_POST["phone"]);
        // check if phone only contains Invalid phone number
        if(preg_match("/^[0-9]{3}-[0-9]{4}-[0-9]{4}$/", $phone)) {      
          $phoneError = "Invalid phone number"; 
    	  
        }
      }   
     
    
      if (empty($_POST["comment"])) {
        $comment = "";
      } else {
        $comment = test_input($_POST["comment"]);
      } 
    	
    	if ($name_error=='' and $email_error=='' and $phone_error=='') {
    		$message_body='';
    		unset($_POST['submit']);
    		foreach($_POST as $key => $value) {
    			$message_body .= "$key:$value\n";
    			
    		}	
    		$to='johannes@webdesignleren.com'
    		$subject='Contact For Submit'
    		if ($mail($to,$subject,$message)) {			
    			
    			$success="Message Sent,thank you for contacting us!" ;
    			$name=$email=$phone=$message=''
    		}
    	
    	}
    
    	
    }
    
    function test_input($data) {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      return $data;
    }
    ?>
    	<?php
    get_footer();

    ik moet nog deze code in contact-form.php bewerken om email te sturen en ontavngen via contact-form.
    het is voor mij is een uidaging om te leren manually contact-form te maken.
    de contact-form.php is ook niet zichtbaar in bron code pagina.
    u kunt zien als u naar mij website gaan!
    dank u wel

    • Deze reactie is gewijzigd 4 weken geleden door Jeroen Rotty. Reden: fix code blokken
    Thread starter johannes999

    (@johannes999)

    url van mij website is: https://webdesignleren.com/contact/

    Guido

    (@guido07111975)

    Hoi,

    Je code zit helaas vol met fouten. Zou mij veel tijd kosten dit allemaal te corrigeren. Handmatig contactformulier maken is leuk maar vergeet niet dat de kans groot is dat je last van SPAM gaat krijgen omdat hij nauwelijks beveiligd is.

    Guido

    Thread starter johannes999

    (@johannes999)

    deze contact.php code is van codepen :

    url is : https://codepen.io/ssbalakumar/pen/bGwwaG

    er is in deze code helemaal geen fouten .ik heb het css ook.

    de code in contact-form.php is van :
    https://tryphp.w3schools.com/showphp.php?filename=demo_form_validation_complete
    er is hier ook geen fouten maar het is nog niet volmaakt net als ik heb gezegd . het moet nog bewrekt worden . de spam regel ik later .

    de probleem is nu niet de code maar contact-form.php wordt niet erkend door contact.php
    als u gaat naar mij contact pagina dan ziet u contact-form html en css ziet netjes uit.

    kijk a.u.b : https://webdesignleren.com/contact/

    ik heb deze code verplaatst in config.php :

    <?php
    
    // Enable WP_DEBUG mode
    define( 'WP_DEBUG', true );
    
    // Enable Debug logging to the /wp-content/debug.log file
    define( 'WP_DEBUG_LOG', true );
    

    deze code staat in : https://wordpress.org/support/article/debugging-in-wordpress/
    maar als ik ga naar wp-content in filezilla ik zie debug.log bestand niet
    weet u mischien waarom?
    dank u wel

    • Deze reactie is gewijzigd 4 weken geleden door Jeroen Rotty. Reden: fix code blokken
    Thread starter johannes999

    (@johannes999)

    ik heb het probleem opgelost van erkenning van php pagina.
    ik heb gezien in pagina gedeelde onder optie template 3 opties zijn:
    1- default
    2-contact (php)
    3-contact-form (php)
    dus dat zouden nooit kunnen deze 2 php pagina’s elkaar erkennen.omdat ik had optie contact gekozen onder template als actieve pagina in de gedeelde van pagina’s.
    ik heb gewoon van contact.php html code verplaatst in contact pagina van wordpress en gekozen onder template de optie contact(php) als contact page .
    daarna ik heb php code van contact-form.php geplaatst in contact.php . en ik ga de contact-form.php verwijderen.
    ik heb express een klas gemaakt met tekst ( hello) om te testen . en wanneer ik ga naar contact page in mij website ik zie dat tekst (hello) staat daar.
    ik ben door foute informatie afgeleid anders dat zoude niet kunnen 2 php pagina’s met elkaar koppelen in php. die zijn gewoon 2 aparte pagina’s net als home,about etc.
    wat betekent de php code er ziet heleboel fouten ik heb het gezien. ik ga proberen om aan te passen anders ik moet plug in gebruiken. maar eerst ik wil beetje exprementeren
    dank u wel

    Guido

    (@guido07111975)

    Hoi Johannes,

    Dit is een werkend script.

    Bestand “contact”:

    <?php
    /*
    * Template Name: Contact
    * Description: Template voor contactpagina
    * Template Post Type: page
    */
    
    get_header();
    the_content();
    include('contact-form.php');
    get_footer();

    Bestand “contact-form”:

    <?php
    // define variables and set to empty values
    $nameErr = $emailErr = $phoneErr = $contentErr = "";
    $name_sender = $email_sender = $phone = $content = "";
    
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
    	// post
    	$name_sender = strip_tags($_POST['name_sender']);
    	$email_sender = strip_tags($_POST['email_sender']);
    	$phone = strip_tags($_POST['phone']);
    	$content = strip_tags($_POST['content']);
    	
    	// validate name
    	if (empty($name_sender)) {
    		$nameErr = "Name is required";
    	} else {
    		// check if name only contains letters and whitespace
    		if (!preg_match("/^[a-zA-Z-' ]*$/", $name_sender)) {
    			$nameErr = "Only letters and white space allowed";
    		}
    	}
    
    	// validate email
    	if (empty($email_sender)) {
    		$emailErr = "Email is required";
    	} else {
    		// check if email address is well-formed
    		if (!filter_var($email_sender, FILTER_VALIDATE_EMAIL)) {
    			$emailErr = "Invalid email format";
    		}
    	}
    
    	// validate phone
    	if (empty($phone)) {
    		$phoneErr = "Phone is required";
    	} else {
    		// check if phone is well-formed
    		if(!preg_match("/^[0-9\s\-]+$/", $phone)) {
    			$phoneErr = "Invalid phone number";
    		}
    	}
    
    	// validate content
    	if (empty($content)) {
    		$contentErr = "Content is required";
    	} 
    
    	// send
    	if ( empty($nameErr) && empty($emailErr) && empty($phoneErr) && empty($contentErr) ) {
    		// Variables
    		$to = 'johannes@webdesignleren.com';
    		$subject = 'Contact form';
    		$success = 'Thank you! You will receive a response as soon as possible.';
    
    		// Message content
    		$content = "Contact form\n"; 
    		$content .= "Name: " .$name_sender. "\n"; 
    		$content .= "Email: " .$email_sender. "\n";
    		$content .= "Phone: " .$phone. "\n";
    		$content .= $content. "\n\n"; 
    
    		// Headers
    		$headers	 = 'From: ' .$name_sender. ' <' .$email_sender. '>' . PHP_EOL;
    		$headers	.= 'Reply-To: <' .$email_sender. '>' . PHP_EOL;
    		$headers	.= 'Content-Transfer-Encoding: 8bit' . PHP_EOL;
    		$headers	.= 'Content-Type: text/plain; charset=UTF-8' . PHP_EOL;
    
    		// Send email
    		mail($to, $subject, $content, $headers); 
    		echo $success;
    	}
    }
    
    // form
    ?>
    <div class="container">
    <form id="contact" method="post">
    <h3>Quick Contact</h3>
    <h4>Contact us today, and get reply with in 24 hours!</h4>
    <fieldset>
    <input placeholder="Your name" type="text" name="name_sender" value="<?php echo $name_sender;?>">
    <span class="error">* <?php echo $nameErr; ?></span>
    </fieldset>
    <fieldset>
    <input placeholder="Your Email Address" type="text" name="email_sender" value="<?php echo $email_sender;?>">
    <span class="error">* <?php echo $emailErr; ?></span>
    </fieldset>
    <fieldset>
    <input placeholder="Your phone number" type="text" name="phone" value="<?php echo $phone;?>">
    <span class="error">* <?php echo $phoneErr; ?></span>
    </fieldset>
    <fieldset>
    <textarea placeholder="Type your message here.." type="text" name="content"><?php echo $content;?></textarea>
    <span class="error">* <?php echo $contentErr; ?></span>
    </fieldset>
    <fieldset>
    <button name="submit" type="submit" id="contact-submit">Submit</button></fieldset>
    </form></div>
    <?php

    Zoals je ziet veel verschil met jouw script, maar die van mij werkt dus (getest).

    Succes ermee!

    Guido

    Thread starter johannes999

    (@johannes999)

    dank u wel,
    ik ga morgen testen .
    ik had ook simpele code gevonden in codepen het werkt maar wanneer ik wil email sturen ik krijg opps de pagina niet gevonden .
    ik ga nu slapen ik laat u morgen weten.
    hartelijke bedankt
    johannes

    Guido

    (@guido07111975)

    Hoi Johannes,

    De melding dat pagina niet gevonden is, nadat je op verzenden drukt, had ik ook.
    Komt doordat “name” en “email” door WordPress zelf worden gebruikt, kwam ik achter. Daarom heb ik beide gewijzigd in “name_sender” en “email_sender”.

    Guido

    Thread starter johannes999

    (@johannes999)

    hartelijk dankt Guido,
    er is paar problemen
    1-als ik invullen en senden het is OK .
    maar mij gegevens blijft in de velden dus wordt de velden niet leeg gemaakt. plus in de message veld wordt alle gegevens gegeven op deze manier na verzenden.
    Contact form
    Name: john
    Email: 999hovhannes@gmail.com
    Phone: 06444444444
    Contact form
    Name: john
    Email: 999hovhannes@gmail.com
    Phone: 06444444444`

    gaat u naar mij website probeer email te sturen dan zou u zien wat ik bedoel.
    de gevulde velden blijfen hetzelfde dus wordt niet schoon gemaakt.
    url: https://webdesignleren.com/contact/
    2-ik zie in mij postvak de emailen maar met een melding spam?
    3-wanneer ik iets fout invulled of senden klik alle velden worden naar beneden verschuiven. kan hier iets gedaan worden?
    4- nadat ik heb paar emails gestuurd en al de velden schoon gemaakt en ik wil nieuwe email sturen ik zie al de namen, emailen, adresen, telefoon nummers staat in de velden als optioneel (automatische invullen) . kan hier iets gedaan worden?

    Guido

    (@guido07111975)

    Hoi,

    Daarom stelde ik eerder ook voor om een plugin hiervoor te gebruiken (zoals WPForms) want de extra wensen die jij hebt zijn niet op een snelle eenvoudige manier toe te voegen. Ikzelf heb ook een contactformulier plugin gemaakt, Very Simple Contact Form.

    Guido

    Thread starter johannes999

    (@johannes999)

    dat is geen probleem ik kom achter alles stap bij stap
    1-maar kunt u mij vertellen hoe het kan de probleem met spam oplossen? het moet bij de provider zijn of in de code zelf?
    2- kunt u mij ook vertellen waarom de velden blijven vol en niet leeg na submit ?
    3- waarom na submit alle velden naar beneden verschuiven?
    als u hebt plug in gemaakt dan u moet de antwoord op deze vragen heel makkelijk weten.
    korte antwoorden zijn voldoende.
    iedere geval hartelijk dank voor u humor en vreindelijkheid.
    johannes

    Guido

    (@guido07111975)

    Als je mijn plugin downloadt op je computer en de zip-map opent dan zie je hoeveel code een eenvoudige contact formulier plugin al heeft. Ik kan niet op een simpele manier uitleggen wat je allemaal moet toevoegen en aanpassen om het formulier optimaal te laten werken.

    Guido

15 reacties aan het bekijken - 1 tot 15 (van in totaal 17)
  • Het onderwerp ‘ik heb geprobeerd 2 php pages met elkaar verbinden maar er is geen enkele teken?’ is gesloten voor nieuwe reacties.