ändra meta keyword och meta description

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004

ändra meta keyword och meta description

försöker göra så att när man inte är inne på en sida där det finns ett blogID så ska meta keyword och description vara typ blablablabla. Men om man är inne på ett blogginlägg så ska keyword och description infon hämtas från databasen. Fungerar halvt för mig, när man går in på ett inlägg hämtas rätt information och skrivs ut, men när man inte är inne på något inlägg får jag ingen som helst information i taggarna...

koden ser ut som följande:

<?php $dsn = "sqlsrv:Server=localhost;Database=blog"; $conn = new PDO($dsn, "******", "********"); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $id = $_GET['postID']; $sql = "SELECT * FROM blog_posts WHERE blogID=:id"; $stmt = $conn->prepare($sql); $stmt->execute (array($id)); while($metta = $stmt->fetch(PDO::FETCH_BOTH) ) if (isset($metta['blogID']) && !empty($metta['blogID'])) { $keywords = $metta['keywords']; $description = $metta['description']; } else { $keywords = 'bladiblooo'; $description = 'blablabla.'; } sqlsrv_close($con); ?>

if (isset($_GET['postID']) && !empty($_GET['postID']))

har jag även prövat.

och såhär ser html koden ut

<meta name="description" content="<?php echo "$description"; ?>"> <meta name="keywords" content="<?php echo "$keywords"; ?>">

Jag har provat allt jag kan komma på men får det fan inte att fungera, så jag undrar om nån här har något förslag?!

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)

Trädvy Permalänk
Medlem
Registrerad
Jun 2014

isset($metta['blogID'])

!empty($metta['blogID'])

kolla vad de ger för värden och gå bakåt därifrån

<?php $dsn = "sqlsrv:Server=localhost;Database=blog"; $conn = new PDO($dsn, "******", "********"); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); if (isset($_GET['blogID']) && !empty($_GET['blogID'])) { $id = $_GET['postID']; $sql = "SELECT * FROM blog_posts WHERE blogID=:id"; $stmt = $conn->prepare($sql); $stmt->execute (array($id)); while($metta = $stmt->fetch(PDO::FETCH_BOTH)) if (isset($metta['blogID']) && !empty($metta['blogID'])) { $keywords = $metta['keywords']; $description = $metta['description']; } // else här också för om databasen inte har några keywords/descr? } else { $keywords = 'bladiblooo'; $description = 'blablabla.'; } sqlsrv_close($con); ?>

^ Kanske fungerar

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004
Skrivet av non_noutils:

isset($metta['blogID'])

!empty($metta['blogID'])

kolla vad de ger för värden och gå bakåt därifrån

<?php $dsn = "sqlsrv:Server=localhost;Database=blog"; $conn = new PDO($dsn, "******", "********"); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); if (isset($_GET['blogID']) && !empty($_GET['blogID'])) { $id = $_GET['postID']; $sql = "SELECT * FROM blog_posts WHERE blogID=:id"; $stmt = $conn->prepare($sql); $stmt->execute (array($id)); while($metta = $stmt->fetch(PDO::FETCH_BOTH)) if (isset($metta['blogID']) && !empty($metta['blogID'])) { $keywords = $metta['keywords']; $description = $metta['description']; } // else här också för om databasen inte har några keywords/descr? } else { $keywords = 'bladiblooo'; $description = 'blablabla.'; } sqlsrv_close($con); ?>

^ Kanske fungerar

Tack för att du tagit dig tid, ska kolla när jag kommer hem från jobbet!

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004
Skrivet av non_noutils:

isset($metta['blogID'])

!empty($metta['blogID'])

kolla vad de ger för värden och gå bakåt därifrån

<?php $dsn = "sqlsrv:Server=localhost;Database=blog"; $conn = new PDO($dsn, "******", "********"); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); if (isset($_GET['blogID']) && !empty($_GET['blogID'])) { $id = $_GET['postID']; $sql = "SELECT * FROM blog_posts WHERE blogID=:id"; $stmt = $conn->prepare($sql); $stmt->execute (array($id)); while($metta = $stmt->fetch(PDO::FETCH_BOTH)) if (isset($metta['blogID']) && !empty($metta['blogID'])) { $keywords = $metta['keywords']; $description = $metta['description']; } // else här också för om databasen inte har några keywords/descr? } else { $keywords = 'bladiblooo'; $description = 'blablabla.'; } sqlsrv_close($con); ?>

^ Kanske fungerar

Med den koden fick jag bara blablabla på både startsida och i inlägg :/

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Nov 2002

// kör bara en gång eftersom du bara skickar in ett ID
$metta = $stmt->fetch(PDO::FETCH_ASSOC);

// kolla vad du får tillbaka, ta bort sen
var_dump($metta);

// förenklad if-sats
$keywords = (isset($metta['keywords']) AND $metta['keywords']) ? $metta['keywords'] : 'blablabla';
$description = (isset($metta['description']) AND $metta['description']) ? $metta['description'] : 'blablabla';

sqlsrv_close($con);

Gigabyte GA-Z170N-WIFI | Intel i5 6600K | Corsair Hydro H110i | Corsair Vengeance 16GB | MSI GTX 1060 3GB | Intel 540 SSD 120GB, 180GB & 240GB | BitFenix Phenom mATX

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004

Detta gjorde susen. nu ger jag fan i att röra det nå mer!

<?php $dsn = "sqlsrv:Server=localhost;Database=blog"; $conn = new PDO($dsn, "*****", "*******"); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $id = $_GET['postID']; $sql = "SELECT * FROM blog_posts WHERE blogID=:id"; $stmt = $conn->prepare($sql); $stmt->execute (array($id)); $metta = $stmt->fetch(PDO::FETCH_BOTH) ; if (isset($_GET['postID'])) { $keywords = $metta['keywords']; $description = $metta['description']; } sqlsrv_close($con); ?>

<meta name="description" content="<?php if (isset($description)){echo $description;}else{echo 'adsadasdadasd';} ?>"> <meta name="keywords" content="<?php if (isset($keywords)){echo $keywords;}else{echo 'NLALNALBAVA';} ?>">

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)

Trädvy Permalänk
Medlem
Registrerad
Jan 2008

Ska du ha if-sats och skriva ut text på en rad bör du använda ternary-operatorn istället.

<meta name="keywords" content="<?php echo isset($keywords) ? $keywords : 'foobar'; ?>">

Eftersom du skriver in php-kod direkt i din html kan du använda <?= istället, det är kort för <?php echo.

<meta name="keywords" content="<?= isset($keywords) ? $keywords : 'foobar'; ?>">

Använder du nyaste PHP versionen, PHP 7.0 kan du använda ?? (Null coalescing operator) för att förkorta det ännu mer.

<meta name="keywords" content="<?= $keywords ?? 'foobar'; ?>">

Trädvy Permalänk
Medlem
Plats
Piteå
Registrerad
Okt 2004
Skrivet av Marwelln:

Ska du ha if-sats och skriva ut text på en rad bör du använda ternary-operatorn istället.

<meta name="keywords" content="<?php echo isset($keywords) ? $keywords : 'foobar'; ?>">

Eftersom du skriver in php-kod direkt i din html kan du använda <?= istället, det är kort för <?php echo.

<meta name="keywords" content="<?= isset($keywords) ? $keywords : 'foobar'; ?>">

Använder du nyaste PHP versionen, PHP 7.0 kan du använda ?? (Null coalescing operator) för att förkorta det ännu mer.

<meta name="keywords" content="<?= $keywords ?? 'foobar'; ?>">

Tack, alltid lär man sig då någonting

CPU: AMD Ryzen 1700x @ 3.8GHz || Mem: 16GB Corsair LPX 3000mhz || Mobo: Asus x370 Prime || GPU: EVGA Geforce GTX1070 SC || SSD: WD black 500GB m2 || OS: Linux Mint/Win 10 || Monitor: Dell 43" 4K P4317Q

Citera om du vill ha svar :)