php bestand in php bestand invoegen via php functie!
deze is de syntax :
Code (php)
ik begrijp dat isset betekent : controleert of een variabele is ingesteld, wat betekent dat deze moet worden gedeclareerd en niet NULL is. Deze functie retourneert true als de variabele bestaat en niet NULL is, anders wordt false geretourneerd.
ik weet dat POST : PHP super globale variabele die wordt gebruikt om formuliergegevens te verzamelen na het indienen van een HTML-formulier met method="post". $_POST wordt ook veel gebruikt om variabelen door te geven.
.
1- maar wat precies wordt bedoeld met: unique_hidden_field hier boven is dat bedoeld als POST verborgen bestand is?
wat precies is de betekenis.
2- ik wil php bestand bijvoorbeeld: johan-david.php in johan.php bestand inhouden. zou deze syntax goed is:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['unique_hidden_field'] ) ) {
// process $_POST data here
include_once johan-david.php
}
}
?>
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['unique_hidden_field'] ) ) {
// process $_POST data here
include_once johan-david.php
}
}
?>
in de voorbeeld boven ik heb include johan-david.php gedaan maar waar precies ik moet johan.php melden?
dank u wel
moet zijn:
include_once 'johan-david.php';
Informatie over hoe een functie werkt kun je nalezen op https://www.php.net/.
Als je de naam van de functie erachter zet, heb je meteen de juiste uitleg:
https://www.php.net/include
of
https://www.php.net/include_once
>> maar wat precies wordt bedoeld met: unique_hidden_field
Dat is gewoon de naam van een veld. Iemand heeft een veld gemaakt en daaraan de naam unique_hidden_field gegeven. Net zoals je een veld "name", "street", "age" enz. kunt noemen.
ik heb gelezen in php.net
Ik zie dat include of incude_once moet gebruikt worden om php bestand in php bestand inhouden.
maar mij vraag is kan ik met deze code ook zelfde resultaat hebben:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['johan.php'] ) ) {
// process $_POST data here
include_once 'johan-david.php';
}
}
?>
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['johan.php'] ) ) {
// process $_POST data here
include_once 'johan-david.php';
}
}
?>
Probeer het eens uit....
Code (php)
1
2
3
4
2
3
4
<form action="" method="post">
<input name="johan.php" value="een tekst">
<button type="submit">Send</button>
</form>
<input name="johan.php" value="een tekst">
<button type="submit">Send</button>
</form>
Dan zal $_POST['johan.php'] inderdaad bestaan.
Maar het blijft een ongebruikelijke naam voor een input
iemand heeft mij deze code aangeraden om in function.php te plaatsen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['johan.php'] ) ) {
// process $_POST data here
include_once 'johan-david.php';
}
}
?>
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['johan.php'] ) ) {
// process $_POST data here
include_once 'johan-david.php';
}
}
?>
maar ik had mij twijfels daarom ik vroeg aan jullie.
ik gebruik nu liever include. ik heb 2 vragen:
1- ik zie dat include is function. moet ik deze function in haakjes gebruiken net als hier onder:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
/* Template Name: Contact */
get_header();
the_content();
include ('/contact-form.php');
?>
/* Template Name: Contact */
get_header();
the_content();
include ('/contact-form.php');
?>
of kan ook zonder haakjes gebruiken?
2- hoe ik kan nu zeker zijn n dat ik heb contact-form.php ingebed in contact.php ? of ze nu contact hebben met elkaar?
mij url is : https://webdesignleren.com/
hartelijke bedankt
2) Plaats output in 'contact-form.php', en kijk of die in je script waarin je de include uitvoert terug kan zien.
Let er wel op dat een / aan het begin ervoor zorgt dat er in de webroot gekeken wordt.
Verder hoef je niet steeds de URL te noemen. Dat komt op een gegeven moment spammerig over, tenzij je echt naar je site wilt refereren.
ik heb andere class gemaakt in contact-form.php maar die is niet zichtbaar in contact pagina.
ik denk het zijn niet verbonden met elkaar.
Kijk eens naar de HTML-code in je browser. Zie je daar de HTML van je contact-form.php in je contact.php staan!
ik zie wel contact.php met de alle code maar ik zie geen contact-form.php staan?
voor zekerheid ik laat u hele pagina zien van contact-form.php.
Code (php)
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?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='[email protected]'
$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();
?>
/* 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='[email protected]'
$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 heb het over de HTML-code in je browser. Niet je PHP-code.
er is geen contact-form.php naam in bron code nergens net als ik heb gezegd boven.
Als je wilt weten of iets goed geincludeerd is:
1) Zet in je te includeren bestand contact-form.php bijv. een commentaar-regel neer: <!-- Test! -->
2) Zorg dat je contact-form.php in contact.php includeert.
3) Bekijk in de broncode van de browser (dus geen PHP-script, dat staat er totaal los van) of je de commentaarregel ziet.
Als het goed is moet je volgens de link van WikiHow je commentaarregel moeten zien.
Gewijzigd op 10/07/2022 22:34:06 door - Ariën -
ik zie geen enkele teken .
ik zie geheel code van contact.php in bron code maar ik zie nergens de naam van contact-form.php.
geen naam geen comentaar helemaal niets.
Zet ook je error_reporting volledig aan:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
?>
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);
?>
Probeer anders eerst eens wat simpels die enkel een stukje tekst laat zien i.p.v. een hele pagina.
En test dit eens los van je site uit.
Gewijzigd op 10/07/2022 23:18:25 door - Ariën -
require of require_once zal een fatal error geven en geeft daarmee ook duidelijk aan als je file niet bestaat, of niet op de plek staat waar je denkt, of als je een verkeerd path opgeeft.
--
dat gezegd hebbend.
Ik heb ook de indruk dat je niet helemaal het principe van include begrijpt.
test.php
mijnincludefile.php:
Wat zal de output zijn van de aanroep http://localhost/test.php
Dat is "1025"
Waarom?
Omdat de include ertoe leidt dat het script samengesteld wordt als
Je "ziet" dus niets van een geinclude file, tenzij deze een bepaalde output geeft.
Zou er in mijnincludefile.php alleen maar staan:
Dan zou de output van http://localhost/test.php zijn: "20"
NB: op deze manier werken met includes kan heel lastig debuggen zijn: variabelen lijken in test.php uit het niets te komen. Bijvoorbeeld die $b.
En als je 10 files op die manier include, die zelf ook weer includen, dan vervuil je je globale variabele ruimte met een hoop vars.
En, niet te vergeten, je loopt het risico dat er ergens in zo'n script een $i tellertje gebruikt wordt die een $i in het hoofdscript overschrijft.
Ook heel fijn als dan de include maar soms aangesproken wordt.
Dus: include alleen als het echt moet. En dan het liefst alleen maar met functions of classes er in en niet met direct uitvoerende code.
het heeft geen zin ik heb een class gemaakt in page.php met tekst hello wanneer ik open iedere pagina ik zie deze tekst hello.
ik heb ook op zelfde wijze tekst gemaakt in contact-form.php maar ik zie geen tekst.
tweede ik heb require_once geprobeerd ik krijg error.
Ivo P heeft gelijk:include alleen als het echt moet. En dan het liefst alleen maar met functions of classes er in en niet met direct uitvoerende code.
ik heb zelf bedacht deze code:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$filename = '/contact.php';
if (file_exists($filename)) {
include_once {'/contact-form.php') ;
} else {
echo "The file $filename does not exist";
}
?>
$filename = '/contact.php';
if (file_exists($filename)) {
include_once {'/contact-form.php') ;
} else {
echo "The file $filename does not exist";
}
?>
maar heeft niet geholpen als iemand weet betere syntax of kan corrigeren deze syntax laat mij weten a.u.b .
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$filename = '/contact.php';
if (file_exists($filename)) {
include_once {'/contact-form.php') ;
?>
}
$filename = '/contact.php';
if (file_exists($filename)) {
include_once {'/contact-form.php') ;
?>
}
dank u wel
Moet je niet controleren op /contact-form.php?