Avatar billede delphiuser Mester
21. februar 2014 - 17:36 Der er 8 kommentarer og
1 løsning

alle tegn i database...

Hej eksperter.

Jeg prøver at lave en blog hvor jeg gerne vil kunne lægge komplette kode eksempler ud. men problemet er at den ikke acceptere alle tegn når jeg skal uploade til min database.

når jeg bruger følgende tegn uploader den ikke til min database.
'}{
det er dem jeg har prøvet med indtil videre. og der sker intet. bruger jeg ikke de tegn virker det fint. Det er bare lidt skidt når man skal bruger de tegn tit i sine koder.

på nuværende tidspunkt når jeg prøver at uploade en komplet kode får jeg følgende fejl.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'Septembe' at line 1

den kode jeg ville uploade ser sådan her ud.

function cmsdato() {
    $maaned = array(1=>'Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'Nevember', 'December');
    $dag = array('Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag');
    $d = date('d');
    $n = date('n');
    $w = date('w');
    $y = date('Y');
   
    echo '<p>'.$dag[$w] . ' d. ' .$d. ' ' .$maaned[$n]. ' &aring;r '. $y. '</p>';
}

som sagt de tegn som den ikke vil tillade er der masser af her i denne kode. nu kommer mit egentlige spørgsmål. hvad skal jeg gøre for at kunne tillade alle tegn i min database når jeg uploader noget.

Den kode jeg har nu til at uploade ser sådan her ud.

function addquestion() {
    ?>
    <table border="0" cellpadding="0" cellspacing="0" width="750" align="center">
    <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    <input type="hidden" name="forum_user_id" value="<?php echo $_SESSION['user_id']; ?>">
    <input type="hidden" name="forum_date" value="<?php echo date("d-m-Y"); ?>">
    <input type="hidden" name="forum_time" value="<?php echo date("H:i:s"); ?>">
    <tr>
        <th colspan="3">Opret Sp&oslash;rgsm&aring;l</th>
    </tr>
    <tr>
        <td width="140" height="20">Brugernavn</td>
        <td width="10" height="20" align="center">:</td>
        <td width="600" height="20"><input type="text" name="forum_user" value="<?php echo $_SESSION['username']; ?>" class="input"></td>
    </tr>
    <tr>
        <td width="140" height="20">Overskrift</td>
        <td width="10" height="20" align="center">:</td>
        <td width="600" height="20"><input type="text" name="forum_title" class="input"></td>
    </tr>
    <tr>
        <td width="140" height="20">Kategori</td>
        <td width="10" height="20" align="center">:</td>
        <td width="600" height="20"><select name="forum_cat" class="input">
        <?php
        $sql = "select * from categories order by cat_title";
        $list = mysql_query($sql);
        if(mysql_num_rows($list)) {
            while($row = mysql_fetch_assoc($list)) {
                $title = $row['cat_title'];
                $id = $row['cat_id'];
                echo '<option value="'.$id.'">'.$title.'</option>';
            }
        }
        ?>
        </select></td>
    </tr>
    <tr>
        <td colspan="3" height="20">Beskrivelse</td>
    </tr>
    <tr>
        <td colspan="3" height="200"><textarea name="forum_desc" class="desc"></textarea></td>
    </tr>
    <tr>
        <td colspan="2" height="20"><input type="submit" name="addquest" value="Opret Sp&oslash;rgsm&aring;l"></td>
        <td width="600" height="20"><input type="reset" value="Fortryd"></td>
    </tr>
    </form>
    </table>
    <?php
    if(isset($_POST['addquest'])) {
        // trækker point fra bruger med det samme
        $forum_user = $_POST['forum_user'];
        $forum_title = $_POST['forum_title'];
        $forum_cat = $_POST['forum_cat'];
        $forum_desc = strip_tags($_POST['forum_desc']);
        $forum_user_id = $_POST['forum_user_id'];
        $forum_date = $_POST['forum_date'];
        $sql1 = "insert into forum(forum_title, forum_desc, forum_date, forum_user, forum_cat, forum_user_id) values('$forum_title', '$forum_desc', '$forum_date', '$forum_user', '$forum_cat', '$forum_user_id')";
        mysql_query($sql1) or die(mysql_error());
        echo '<p class="home">Du har nu oprettet sp&oslash;rgsm&aring;let<br><b>'.$forum_title.'</b>';
    }
}

håber i kan hjælpe mig med dette problem. på forhånd tak for hjælpen.

Delphiuser
Avatar billede erikjacobsen Ekspert
21. februar 2014 - 20:03 #1
Man bruger ikke mysql-funktioner på den måde længere. Du skal til at bruge mysqli-funktioner med parameters (eller PDO tilsvarende).
Avatar billede MadsHaupt Juniormester
21. februar 2014 - 20:10 #2
Problemet er at den kode du vil uploade indeholder det her tegnet ' som den tolker som en kommando, prøv at lave tegnet ' om til &#39;

Hvis du laver det om til &#39; vil det være anderledes i databasen, men når det bliver vist på siden vil det være det samme.
Avatar billede MadsHaupt Juniormester
21. februar 2014 - 20:13 #3
Avatar billede erikjacobsen Ekspert
21. februar 2014 - 20:17 #4
Man skal ikke lave ' om til en HTML-tingest for at putte den i databasen. Man skal bare bruge mysqli med parameters - det er lavet til det, og det virker.

Pas gevaldigt på med nemprogrammering.dk - noget er rigtigt nok, men der er også meget der er decideret noget vrøvl.
Avatar billede delphiuser Mester
21. februar 2014 - 23:50 #5
Nu prøver jeg lidt med mysqli i noget test før end at jeg koder det hele om inde på min anden side.

det går fint med at lægge op i databasen. men når jeg skal lave et udtræk automatisk får jeg denne fejl.

Notice: Undefined variable: mysqli in C:\xampp\htdocs\login\index.php on line 83

Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\login\index.php on line 83

min kode ser sådan her ud...

function hent() {
    if($stmt=$mysqli->prepare('SELECT `b_title`, `b_desc` FROM `blog`')) {
                $stmt->execute();
                $stmt->bind_result($b_title, $b_desc);
                while($stmt->fetch()) {
                    echo $b_title.'<br>'.nl2br($b_desc).'<br />';
                }
                $stmt->close();
            }
}
hvad gør jeg forkert?
Avatar billede arne_v Ekspert
22. februar 2014 - 01:25 #6
hvor bliver $mysqli connectet henne?
Avatar billede delphiuser Mester
22. februar 2014 - 09:56 #7
det inkludere jeg fra en anden fil. en ting jeg ikke forstår. når jeg lægger noget op i min database. tillader den ikke æøå hvad skal jeg skrive for at den gør det?
Avatar billede delphiuser Mester
02. marts 2014 - 11:37 #8
jeg lukker her...
Avatar billede MadsHaupt Juniormester
02. marts 2014 - 12:07 #9
delphiuser jeg tror det kan være fordi den tolker tegnene som kommandoer, prøv at erstatte { med &#123; og } med &#125; ved at bruge str_replace, det vil ikke være det samme i databasen, men det vil være det samme når det bliver vist på siden. http://dk1.php.net/str_replace

Det er her jeg har fundet html kode tegnene: http://www.ascii.cl/htmlcodes.htm
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester