Apostrof en tekstvakken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tymo M

Tymo M

31/01/2013 03:42:54
Quote Anchor link
Beste kenners!

Als beginner op het gebied van PHP een vraag over het bekende verschijnsel bij apostrofjes.

Op een adminpagina heb ik een formulier met een gewoon tekstvak (textarea) en gewone éénregelige inputs (edit.php).
Bij de verwerking (submit.php) maak ik gebruik van de "mysql_real_escape_string" functie.

Zodra ik iets typ met een ' apostrof ' dan krijg ik nu geen errors meer, en ook als de teksten op de website verschijnen dan zijn de teksten keurig voorzien van apostrofjes....
..MAAR als ik de tekst weer wil bewerken dan zie ik dat bij de input de regel wordt afgebroken. En dat terwijl de textarea nergens last van lijkt te hebben.

Mijn vraag: hoe kan het dat bij de input de regel wordt afgebroken, en bij de textarea niet? Hoe kan ik dit verhelpen?

Alvast mijn dank! :)

Tymo

Edit.php (hier breekt de tekst af bij de apostrof)
Quote:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
$id
= $_GET['id'];
$query = mysql_query("SELECT * FROM artikelen WHERE id LIKE '$id'") or die (mysql_error());
$var = mysql_fetch_object($query);
echo "<input name='titel' type='text' value='". $var->titel ."' size='100'>";
?>


Submit.php
Quote:
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
<?
// Database gegevens includen.
include('../../dbconnect_nieuws.php');
$id=$_GET['id'];
$titel=$HTTP_POST_VARS['titel'];
$bericht=$HTTP_POST_VARS['bericht'];
$dag=$HTTP_POST_VARS['dag'];
$auteur=$HTTP_POST_VARS['auteur'];
$maand=$HTTP_POST_VARS['maand'];
$jaar=$HTTP_POST_VARS['jaar'];
$categorie=$HTTP_POST_VARS['categorie'];
$thematisch=$HTTP_POST_VARS['thematisch'];
$actief=$HTTP_POST_VARS['actief'];
$link1=$HTTP_POST_VARS['link1'];
$link2=$HTTP_POST_VARS['link2'];
$link3=$HTTP_POST_VARS['link3'];
$link4=$HTTP_POST_VARS['link4'];
$url1=$HTTP_POST_VARS['url1'];
$url2=$HTTP_POST_VARS['url2'];
$url3=$HTTP_POST_VARS['url3'];
$url4=$HTTP_POST_VARS['url4'];
$extentie1=$HTTP_POST_VARS['extentie1'];
$extentie2=$HTTP_POST_VARS['extentie2'];
$extentie3=$HTTP_POST_VARS['extentie3'];
$extentie4=$HTTP_POST_VARS['extentie4'];

mysql_query ("UPDATE artikelen SET
titel = '"
. mysql_real_escape_string( $_POST['titel'] ) . "',
bericht = '"
. mysql_real_escape_string( $_POST['bericht'] ) . "',
dag= '"
.$dag."',
maand= '"
.$maand."',
jaar= '"
.$jaar."',
auteur= '"
. mysql_real_escape_string( $_POST['auteur'] ) . "',
thematisch= '"
.$thematisch."',
categorie= '"
.$categorie."',
link1= '"
.$link1."',
link2= '"
.$link2."',
link3= '"
.$link3."',
link4= '"
.$link4."',
url1= '"
.$url1."',
url2= '"
.$url2."',
url3= '"
.$url3."',
url4= '"
.$url4."',
extentie1= '"
.$extentie1."',
extentie2= '"
.$extentie2."',
extentie3= '"
.$extentie3."',
extentie4= '"
.$extentie4."',
actief= '"
.$actief."' WHERE id = '".$id."'") or die(mysql_error());

echo "" ;
?>
 
PHP hulp

PHP hulp

29/03/2024 07:58:24
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

31/01/2013 04:17:54
Quote Anchor link
Heel simpel, je gebruikt de verkeerde quotes
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$var
->titel = "foto's"
echo "<input name='titel' type='text' value='". $var->titel ."' size='100'>";
//Output: <input name='titel' type='text' value='foto's' size='100'>
echo '<input name="titel" type="text" value="' . $var->titel . '" size="100">';
//Output: <input name="titel" type="text" value="foto's" size="100">
?>
 
Tymo M

Tymo M

31/01/2013 17:23:42
Quote Anchor link
Zeer bedankt Ger!!

Het werkt nu :)

Ik schrijf alle echo's tussen aanhalingstekens. Nu heb jij deze tussen apostrofjes geplaatst, maar wat is precies het verschil? Zijn er regels voor dat het de ene keer

echo 'dit en dat'

en de andere keer

echo "dit en dat" is?
 
Veur Heur

Veur Heur

31/01/2013 17:33:37
Quote Anchor link
Toevallig vandaag mee zitten stoeien. Zoals Ger het oplost werkt het wel voor de " (dubbel quote) maar volgens mij weer niet voor de ' (enkele quote). htmlentities biedt de oplossing. Voor het tonen dus even die functie eroverheen halen en je bent de man.
 
Tymo M

Tymo M

31/01/2013 22:27:13
Quote Anchor link
Dank! Ik heb weer huiswerk voor nu. Ik heb vaker gehoord dat htmlentities bij dit soort dingen helpt, ik denk dat ik het in de toekomst echt eens moet gaan toepassen..
 
Veur Heur

Veur Heur

31/01/2013 22:30:31
Quote Anchor link
Ben het nooit eerder tegengekomen als ik eerlijk ben, toevallig vandaag dus, en ik loop toch al wat jaartjes mee :)
 



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.