verschil ' en " en oplossen ' in tekst

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Space gremlin

space gremlin

12/10/2013 23:03:28
Quote Anchor link
Wat hoor je nu eigenlijk te gebruiken in je php

het teken '
of het teken "

Ik had namelijk een probleem dat soms invoer niet werd geplaatst in mijn sql.
na langzoeken kwam ik er dus achter dat de tekst die ik soms invoer ook het teken
' heeft.

Gezien ik in mijn php werk met ' gezien dit gemakkelijker is met het invoegen van "
word door deze tekst met het teken ' de boel weer afgesloten.

Hoe moet je dit eigenlijk goed verwerken, want als je alles afsluit met "
en je hebt een keer een " in je tekst dan zal ik het zelfde probleem hebben.

ik hoop dat ik een beetje begrijpelijk heb uit gelegd wat ik wil weten.

bedankt.
 
PHP hulp

PHP hulp

24/11/2024 09:05:35
 
Dennis WhoCares

Dennis WhoCares

12/10/2013 23:04:26
Quote Anchor link
je invoer escapen ?
met mysqli_real_escape_string()
Gewijzigd op 12/10/2013 23:04:51 door Dennis WhoCares
 
Space gremlin

space gremlin

12/10/2013 23:06:54
Quote Anchor link
Ik ga kijken wat dat commando inhoud bedankt.

Ik ben geen beroepsprogrammeur , dus ik weet niet alles vandaar.
 
Donny Wie weet

Donny Wie weet

12/10/2013 23:09:18
Quote Anchor link
Sorry, had niet gezien dat het SQL was
Gewijzigd op 12/10/2013 23:12:11 door Donny Wie weet
 
Space gremlin

space gremlin

12/10/2013 23:09:35
Quote Anchor link
ja okee ik zie dat dit command de tekens weghaald
maar er zal toch wel een manier zijn dat je die gewoon kan laten staan?
 
- Ariën  -
Beheerder

- Ariën -

12/10/2013 23:09:37
Quote Anchor link
Daarvoor hoef je ook geen beroepsprogrammeur te zijn.
Ik heb in mijn jongere PHP-jaren ook veel op php.net rondgeneusd. ;-)
 
Space gremlin

space gremlin

12/10/2013 23:10:36
Quote Anchor link
klopt aar en is ook zo. maar ik wilde alleen even mijn niveau neerzetten.
natuurlijk al doende ga je steeds meer leren
 
Dennis WhoCares

Dennis WhoCares

12/10/2013 23:18:03
Quote Anchor link
Als je de ' of " toch wilt behouden in je output, zou je deze ook als ascii kunnen invoeren:

' = '
" = "

dan wordt je query niet afgebroken :)
Als dit invoer is van enige gebruikers, kun je eerst str_replace() gebruiken om dit op te lossen
Gewijzigd op 12/10/2013 23:18:56 door Dennis WhoCares
 
Space gremlin

space gremlin

12/10/2013 23:29:41
Quote Anchor link
Ik had inderdaad nu al een replace geplaatst aan de hand van dit topic.
om ze voorlopig maar te verwijderen.

Ik hoef nu eigenlijk alleen maar jouw codes er in te zetten bedankt.
en ik zat al aan chr te denken maar dat ging dat ook niet zogemakkelijk
echter zie ik wel dat de code gewoon het zelfde is want chr$(34) is ook ".
 
Dennis WhoCares

Dennis WhoCares

12/10/2013 23:30:49
Quote Anchor link
:) alleen " is gewoon hex en kan je gewoon als output zetten, html zet dat zelf om
Gewijzigd op 12/10/2013 23:31:25 door Dennis WhoCares
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/10/2013 02:31:07
Quote Anchor link
ik lees hier allemaal oplossingen maar in mijn ogen niet de goede.

om op de eerste vraag van de ts mijn idee te geven:

zowel singelequotes als doublequotes zijn goed in PHP.

Omdat php minder grappen uithaalt met singlequotes dan met doubleqoutes zouden de singlequotes iets sneller zijn.
denk bij 'grappen' aan het zoeken naar variabelen in de tekst.

wat ik zelf doe is het volgende:
Ik gebruik binnen php overal singlequotes behalve bij het formuleren van een query. Die doe ik juist wel tussen doublequotes zodat je waardes in je query tussen singlequotes kunt zetten zonder te escapen. Variabelen hou ik altijd buiten de quotes.

wat betreft het opslaan van quotes in de database:
ik gebruik altijd de collatie ci_unicode_utf8.

hierdoor kun je beiden quotes alsmede speciale tekens als é en â opslaan in je database zonder deze karakters door als htmlentities of als ascii opgeslagen hoeven te worden.
Gewijzigd op 13/10/2013 02:36:16 door Frank Nietbelangrijk
 
Space gremlin

space gremlin

13/10/2013 02:41:52
Quote Anchor link
(overbodige code heb ik weggelaten betreft variabele die zijn normaal dus wel aanwezig)

okee ga ik onthouden en eventueel aanpassen.

Alleen wat mijn probleem is volgens mij.
Is dat voordat het de sql in gaat gaat hij al in de war met de ' ik zal even de code plaatsen die ik gebruik. misschien dat ik daar wat verkeerd doet.

Op dit moment loop het wel goed met de eerst genoemde oplossingen.

Toevoeging op 13/10/2013 02:48:11:

eerste gedeelte hier voer ik een omschrijving in.
ps: filmnaam post word nog uit een voorgaande php weggehaald

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
<?php

$filmnaam
=$_POST['filmnaam'];

// sluiten php

<p align="center">&nbsp;</p>
<
p align="center"><span class="bb"></span></p>
toevoegen
<form action="index2.php?p=fgezientoevoegen3" method="post">
  <
div align="center">
    <
table width="694" height="139" border="1">
      <
tr>
        <
td width="141" height="37">Omschrijving:<a href="http://www.google.nl//search?q=<?php echo $filmnaam ?> moviemeter" target="_blank"><img src="http://www.msxflash.nl/plaatjes/zoeken-20x20.png" alt="Zoeken Cover" width="19" height="19" /></a></td>
        <
td width="537"><textarea name="omschrijving" cols="100" rows="8" id="omschrijving"></textarea></td>
      <
/tr>
    <
/table>
  <
/div>
  <
p align="center">&nbsp;</p>
<
/form>
<
/body>
<
/html>

?>


2de gedeelte word aangeroepen na de submit.


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
<?php


include 'inf.php';



$omschrijving2=$_POST['omschrijving'];


$order   = array("'",'"');
$replace = array('&#39','&#34');

$omschrijving = str_replace($order, $replace, $omschrijving2);

mysql_connect($host,$username,$password);
@
mysql_select_db($database) or die( "Unable to select database");

$query = "INSERT INTO filmsgezien VALUES ('','$naam','$jaartal','$categorie','$beoordeling','$extrainfo','$h','$datum','$cover','$omschrijving','$tr')";
mysql_query($query);
mysql_close();

echo '<BR><BR><BR>Toegevoegd<br><br>';

// sluiten php




</form></td>
<
td width="341"><p align="center">&nbsp;</p>
  <
p align="center">&nbsp;</p>
  <
p align="center">Bij toevoeging telling. Niet vergeten</p>
  <
form action="index2.php?p=countinvoer" method="post">
    <
p align="center"> Telling:
      <
select name="filmstellensub" size="1" id="filmstellensub">
        <
option selected>-1</option>
        <
option>+1</option>
      <
/select>
      <
input type="submit" class="buttondgreen" value="Telling D" />
    <
/p>
  <
/form></td>
  <
/tr>
<
/table>


?>


als ik dit niet toevoeg heb ik het probleem dat de php totaal niet word doorgevoerd
en kwam ik tot de conclusie dat dit door de ' komt. nu kan ik de sql eigenschappen wel aanpassen
maar dan los ik nog steeds niet het probleem om.
ps: met het onderstaande misschien zit mijn probleem elders

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$omschrijving2
=$_POST['omschrijving'];


$order   = array("'",'"');
$replace = array('&#39','&#34');

?>
Gewijzigd op 13/10/2013 02:55:06 door space gremlin
 
- SanThe -

- SanThe -

13/10/2013 10:40:56
Quote Anchor link
Dennis WhoCares op 12/10/2013 23:04:26:
je invoer escapen ?
met mysqli_real_escape_string()


Gebruik geen mysql_ maar mysqli_.
En gebruik dan gewoon mysqli_real_escape_string().
Gewijzigd op 13/10/2013 10:43:09 door - SanThe -
 
Space gremlin

space gremlin

13/10/2013 13:06:38
Quote Anchor link
Gebruik geen mysql_ maar mysqli_

Ik ga maar weer aan de slag want ik zie dat ik weer heel veel moet aanpassen.
 



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.