Ik heb diverse html codes die gewoon worden opgeslagen in mysql database. Maar ik heb een header menu die niet wordt opgeslagen. wat ik vreemd vind. Wat is er aan deze html code anders. Onderstaande een voorbeeld van beide codes. Wat betreft het veld van de database gebruik ik "text". Ik heb wel gemerkt wanneer ik <header> en </header> weglaat dat de html code wel wordt opgeslagen!

Onderstaande code wordt wel opgeslagen

 
<link rel="stylesheet" href="scripts/5-hero-simpel/hero-simpel.css" />
<link rel="stylesheet" href="scripts/34-flexboxcontainer-2-4/flexboxcontainer-2-4.css" />
<div style="background-image:  url(uploads/images/hero/<?php echo $imagepath1;?>)" alt="" title="" class="small-hero-bg-img">
<div class="small-hero-text">
<h1 class="font-white heading-medium" id="rijxx"><?php echo $titel1; ?></h1>
<h2 class="heading-small font-white"><?php echo $titel2; ?></h2>
<div class="container-flexbox-2-4">
<div class="box-flexbox-2-4">
<div class="button-boxpulse">
<a href="#" class="btn-pulse btn-pulse-white btn-pulse-animate"><?php echo $button1; ?></a>
</div>
</div>
<div class="box-flexbox-2-4">
<div class="button-container">
<a href="#" class="button-slidein">Verder</a>
</div> 
</div>
</div>
</div>
</div>



Onderstaande code wordt niet opgeslagen


<div id="rij-rijzoek">
<link rel="stylesheet" href="scripts/menu/1-1/1-1-menu-standaard.css" />
<header class="header"><a href="#" class="logo res-logo"><img src="images/logo/logo.png" title="Goochelshow"  alt="Goochelshow voor alle leeftijden kinderen en volwassenen, kinderfeestjes, verjaardagen en evenementen. ook shows aan huis mogelijk"></a>
<input class="menu-btn" type="checkbox" id="menu-btn" />
<label class="menu-icon" for="menu-btn"><span class="navicon"></span></label>
<ul style="margin-top: 10px;" class="menu">
<li><a href="#"><i class="fa fa-fw fa-lg fa-home"></i>Home</a></li>
<li><a href="#"><i class="fa fa-fw fa-lg fa-youtube-play"></i>Video</a></li>
<li><a href="#"><i class="fa fa-fw fa-lg fa-phone"></i>Bel ons</a></li>
<button class="button-menu" onclick="#'"><i class="fa fa-fw fa-home"></i>Contact</button>
</ul></header>
<link rel="stylesheet" href="scripts/menu/1-1/button-menu.css" />
<div style="position:relative; padding-top:90px"></div>
<div id="verwijderen">
<!--
<button data-id="hero1-rijzoek" id="hero1-rijzoek" onclick="changeimage(this)">
verander bovenste afbeelding
</button>     

-->
<button data-id="rij-rijzoek" onclick="wisselen(this)">
Wissel met bovenste rij
</button>
<button data-id="rij-rijzoek" onclick="remove_div(this)">
Verwijder rij
</button>
</div>
</div>

Hoe ziet je query eruit!
Bedankt voor je reactie. De html code wordt in een variable opgeslagen. Dat gedeelte gaat nog goed. vervolgens stuur ik doormiddel vam ajax deze door naar onderstaande php die de data vervolgens moet opslaan in de database




$code = trim( $_REQUEST['code'] );




$sql = "UPDATE paginatest SET code='$code' WHERE pagina = '" . $paginanaam . "'";

if ($conn->query($sql) === TRUE) {
  echo "Record 1 updated successfully";
} else {
  echo "Error updating record: " . $conn->error;
}




[size=xsmall]Toevoeging op 19/08/2023 23:02:22:[/size]

met alle andere html code gaat alles goed, alleen met de ene. niet. is om gek van te worden. Ik heb wel een workarround gevonden, waarbij ik de htmo code niet in de database opsla maar steeds in een bestand.
Ik zou $code maar even escapen met real_escape_string. Als er een ' of een ander verboden teken in MySQL in voorkomt, zal je query worden geweigerd. Want ik vermoed dat je onbedoeld een SQL-injection triggert. Tevens ook gevaarlijk m.b.t. hacking.

tevens raad ik $_POST aan i.p.v. $_REQUEST.
heb ik volgens mij al gedaan. zo bedoel je?

$code = mysql_real_escape_string($code);
Ja, als je dat op de juiste manier toepast, dus VOOR je query dan moet het werken.
Ik zou anders eens je $sql echo'en, en kijken welke data er in staat.

Deze zou je dan ook bijv. in PhpMyAdmin moeten kunnen plakken en uitvoeren.
Lijn 11 echo-ed de fout. Wat verteld deze?

Ik zie ook dat de 2° lap html groter is dan de 1°. Is de veldgrootte groot genoeg?
veldgroote is inderdaad groot genoeg. heb ook grotere text velden gebruikt en daar werkt het ook niet bij. heb zelfs grotere html bestanden die wel worden opgeslagen. zal even kijken wat de foutmelding is? krijg alleen niets te zien omdat het php bestand extern wordt opgeroepen. zal het php bestand eens apart testen.

[size=xsmall]Toevoeging op 20/08/2023 11:53:22:[/size]

Ik heb $code = mysql_real_escape_string($code); geprobeerd. maar dan wordt er geen enkele html code opgeslagen.
Dan doe je het behoorlijk fout, want mysql_real_escape_string() bestaat al jaren niet meer. mysqli_real_escape_string daarentegen wel. Maar als je toch al object-georienteerd bezig bent met queries, dan zal het iets als $conn->real_escape_string(....) zijn.

Je kan procedureel (de functies) en object-georienteerd (met pijltje -> ) prima door elkaar mengen. Maar ik raad het af voor de leesbaarheid en de afwijkende syntax.
Hoi arien. bedankt voor je reactie. heb inmiddels de fout gevonden. er zit een fout in de html code die niet werkt. het betreft dit stukje code na onclick="#'"> i.p.v. onclick="#">

Dat merkt je met het testen van de html code niets van, maar hierdoor loopt het php bestand fout.
Bedankt iedereen voor het meedenken.

Reageren