Meta description via echo in header

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guido  -

Guido -

18/03/2014 23:43:50
Quote Anchor link
Hallo,

Ben al een flinke tijd bezig met het maken van een formulier zodat ik via backend de meta-description in frontend (header) van mijn site kan plaatsen.
Ik wil de meta description via een echo in header laden.

Dit is mijn invoerveld in backend:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type='text' name='meta-setting' value='$setting' />


En dit wordt de functie om ingevoerde data in header aan te roepen (die ik dus niet werkend krijg):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo '<meta name="description" content="?????" />';


Wie kan me helpen?

Guido
Gewijzigd op 18/03/2014 23:46:21 door Guido -
 
PHP hulp

PHP hulp

19/04/2024 07:29:17
 
Michael R

Michael R

19/03/2014 08:22:53
Quote Anchor link
Laat je hele code is zien van je <form>
 
Michael -

Michael -

19/03/2014 08:27:18
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
session_start(); // Voor het voorbeeld slaan we het even op in een sessie. Hiervoor zou je zelf een database moeten gebruiken

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    $_SESSION['meta-setting'] = (isset($_POST['meta-setting']) ? htmlentities($_POST['meta-setting']) : '');
    echo 'Meta-setting opgeslagen';
}

?>

<html>
<head>
<meta name="description" content="<?php echo (isset($_SESSION['meta-setting']) ? $_SESSION['meta-setting'] : ''); ?>" />
<title></title>
</head>
<body>

<form method="POST">

<label>Meta setting</label>
<?php
if(isset($_POST['meta-setting'])) {
    $setting = htmlentities($_POST['meta-setting']);
}
else if(isset($_SESSION['meta-setting'])) {
    $setting = htmlentities($_SESSION['meta-setting']);
}

?>

<input type="text" name="meta-setting" value="<?php echo (isset($setting) ? $setting : ''); ?>" />

<button>Save setting</button>
</form>

</body>
</html>

edit:typo
Gewijzigd op 19/03/2014 08:33:10 door Michael -
 
Michael R

Michael R

19/03/2014 08:36:56
Quote Anchor link
Ik heb je code uitgeprobeert en bij mij werkt het gewoon. Als ik Hoi intyp en ik klik op de knop dan zie ik hem in het tekstvak zitten. Als ik dan de broncode bekijk zie ik hem ook in de meta tag van de header zitten.
 
Michael -

Michael -

19/03/2014 08:42:12
Quote Anchor link
Michael: Dat is mijn voorbeeld voor Guido als antwoord ;) Die werkt inderdaad. Guido is de topicstarter, niet ik :)
 
Michael R

Michael R

19/03/2014 08:43:59
Quote Anchor link
Ohh joh, zag ik niet eens XD
 
Guido  -

Guido -

19/03/2014 09:23:39
Quote Anchor link
Dank allen, ik ga ermee aan de slag.

Het is bestemd voor een WordPress site (plugin), dus de setting wordt in mysql database opgeslagen.
Ik wil niet aan broncode van theme/template/header komen, vandaar dat ik de echo functie gebruik om de metadescription in de head vd site te laden.
Gebruik deze tutorial (tot en met kopje 'Bringing it all Together'):
http://kovshenin.com/2012/the-wordpress-settings-api/

Mvg, Guido

Toevoeging op 19/03/2014 14:51:46:

Toch nog even een aanvullende vraag, omdat ingevoerde data in database wordt weggeschreven, valt bij mij de code van regel 1-8 sowieso af.
Dan komt de variabele $_session nog meerdere keren voor, kan ik dat gewoon weghalen uit de code (regel 11, 22, 23), of is dat te makkelijk gedacht?
Ben helaas geen programmeur, heb slechts basis kennis... ;-)

Guido
 
Michael -

Michael -

19/03/2014 15:34:09
Quote Anchor link
Dat heb ik gedaan omdat het slechts om een voorbeeld ging. Ik kan je kennis nog niet inschatten.
Je kunt niet zomaar session weghalen. Je moet dit namelijk vervangen door de variabele die uit de database komt. Omdat ik niet weet hoe groot je kennis is heb k geprobeerd het zo goed mogelijk uit te leggen in het volgende script. Ik hoor graag of je er wat mee kunt en of het zo duidelijk is.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
85
86
87
<?php
/**
* Verbinding maken
*/

$mysqli = new mysqli('host','user','password','database');

if($_SERVER['REQUEST_METHOD'] == 'POST') {

    if(isset($_POST['meta-setting'])) {
        /**
        * De geposte variabele opslaan in de database
        */

        $sql = "INSERT INTO tabel SET metasetting = '" . $mysqli->real_escape_string($_POST['meta-setting']);
        $res = $mysqli->query($sql);
        /**
        * Controleren of het opslaan is gelukt
        */

        if($res) {
            /**
            * Controleren of er daadwerkelijk iets is opgeslagen
            */

            if($mysqli->affected_rows > 0) {
                /**
                * Opgeslagen
                */

                echo 'Meta-setting opgeslagen';
            }
else {
                /**
                * Niets opgeslagen
                */

                echo 'Er is niet opgeslagen';
            }
        }
else {
            /**
            * Opslaan is mislukt
            */

            echo 'Er is een fout opgetreden';
            /*
            * Tonen wat er fout is gegaan
            * Deze foutmelding is alleen voor jezelf, niet wanneer je je script online gebruikt
            */

            echo $sql . '<br /> ' . $mysqli->error;
        }
    }
}


/**
* De metasetting ophalen uit de database
* WHERE page omdat je moet controleren van welke pagina je de meta data wilt? Of is dit voor elke pagina hetzelfde?
*/

$sql = "SELECT metasetting FROM tabel WHERE page = '" . $mysqli->real_escape_string($_SERVER['SCRIPT_NAME']) . "'";
$res = $mysqli->query($sql);
/**
* Controleren of het ophalen is gelukt en of er daadwerkelijk iets is gevonden
*/

if($res && $res->num_rows > 0) {
    /*
    * Ophalen en in de variabele $metasetting zetten
    */

    $row = $res->fetch_assoc();
    $metasetting = $row['metasetting'];
}

?>

<html>
<head>
<meta name="description" content="<?php /* Als de variabele $metasetting is aangemaakt, deze weergeven */ echo (isset($metasetting) ? $metasetting : ''); ?>" />
<title></title>
</head>
<body>

<form method="POST">

<label>Meta setting</label>
<?php
if(isset($_POST['meta-setting'])) {
    $setting = htmlentities($_POST['meta-setting']);
}
else if(isset($metasetting)) {
    $setting = htmlentities($metasetting);
}

?>

<input type="text" name="meta-setting" value="<?php echo (isset($setting) ? $setting : ''); ?>" />

<button>Save setting</button>
</form>

</body>
</html>
 
Guido  -

Guido -

19/03/2014 15:51:48
Quote Anchor link
Hoi Michael,

Ik ga vanavond proberem om mijn code aan te vullen met de jouwe (gelukkig heeft WordPress veel functies ingebouwd die ik eenvoudig kan aanroepen middels shortcode, het ging mij vooral om data uit invoerveld aan te roepen via echo functie).
Nogmaals hartelijk dank voor je uitgebreide reactie :-)

Guido
 
Michael -

Michael -

19/03/2014 15:53:09
Quote Anchor link
Ik heb geen kennis van de Wordpress functies, dus ik kan je daarop geen passend voorbeeld geven.
Hopelijk lukt het hiermee en anders horen we het wel weer. Succes!
 
Guido  -

Guido -

21/03/2014 21:05:13
Quote Anchor link
Hoi Michael,

Uiteindelijk bleek het vrij eenvoudig te zijn, dankzij de opbouw van WordPress:
https://wordpress.org/plugins/very-simple-meta-description/

Guido
 
Michael -

Michael -

21/03/2014 21:41:03
Quote Anchor link
Guido,
Mooi dat het is gelukt en bedankt voor het delen van je oplossing.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.