Hej
Jeg kom idag, ved et tilfælde, til at kigge på nogle links på min hjemmeside og fandt ud af at serveren laver escaping af ting den ikke skal lave escaping af. Problemet fremkommer på alle sider der indeholder forskellige tags, såsom <div>, <a>, <script>, osv.
På min lokale arbejdsinstallation(MAMP) er der ingen problemer, men det sker på online versionen. Jeg har tjekket og min udbyder skulle understøtte brug af MySQLi, men så burde den jo ikke lave escaping på links, javascript og divs.
Siden kan ses
herProblemet kan specifik ses under punkterne
Kompetencer og
Om mig.
Hvad kan fejlen skyldes?
Jeg kan sagtens rette det i phpmyadmin og så virker det hele. Jeg har set noget lignende når jeg har brugt mysql_real_escape_string på sider hostet på amerikanske servere.
Jeg inkluderer lige det script der skal opdatere indholdet i databasen når jeg har redigeret det i en <form>
- <?php
- session_start();
- //Tjekker brugerrettigheder
- if(isset($_SESSION['username']) && $_SESSION['usergroup'] == "admin" ? true : header("Location: ../index.php?msg=ACCESS_DENIED"));
-
- include '../inc/connect.php';
-
- // Indsæt i tabel
- if ($stmt = $mysqli->prepare('UPDATE `content` SET `titel`=?, `tekst`=? WHERE `page_id`=?')) {
- /* Bind parametre */
- $stmt->bind_param('ssi', $titel, $tekst, $page_id);
- /* Sæt værdier på parametrene */
- $titel = $_POST['titel'];
- $tekst = $_POST['tekst'];
- $page_id = $_POST['page_id'];
- /* Eksekver forespørgslen */
- $stmt->execute();
- /* Luk statement */
- $stmt->close();
- $status = 0;
- }
- else {
- $status = 1;
- /* Der er opstået en fejl */
- echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
- }
- if($status == 0) {
- $_SESSION['done'] = 'Dine ændringer er blevet gemt.';
- header ('Location: ../index.php?msg=PAGE_CREATED');
- }
- else {
- $_SESSION['fail'] = 'Der er opstået en fejl og dine ændringer er ikke blevet gemt...'.$mysqli->error;;
- header ('Location: ../index.php?msg=CREATION_FAILED');
- }
- ?>
Jeg har ligeledes prøvet at opdatere både med og uden
$mysqli->set_charset("utf8"); og det gav ingen forandring
Indlæg senest redigeret d. 28.10.2012 19:36 af Bruger #17072