backslash invoeren > submit knop indrukken > dubbele backslash

Status
Niet open voor verdere reacties.

lautje145

Gebruiker
Lid geworden
22 okt 2007
Berichten
110
Hallo,

Ik heb een probleem
als je op http://lautje145.gethost.nl/inloggen.php bij de gebruikersnaam een backslash ( '\' ) invoert en op de submit button drukt dan krijg je twee backslashen, weet iemand hoe dit komt, of het liefst kan verhelpen ? ... Alvast bedankt

Met vriendelijke groeten Lautje145
 
Laatst bewerkt:
Dat is niet de oplossing. Zo te horen staat 'magic_quotes' aan. Zet dat in php.ini op 0, restart PHP, probleem verholpen.

Geen toegang tot php.ini? Gebruik ini_set. magic_quotes is deprecated en gevaarlijk.

Als je met data werkt, is de _enige_ juiste manier van beveiligen door éérst je input te controleren (is het gevuld, bestaat het uit alphanumerieke tekens, etc.) en daarna, wanneer je het aan de database voert, mysql_real_escape_string te gebruiken.
 
"In computer software standards and documentation, the term deprecation is applied to software features that are superseded and should be avoided."

Je moet het niet gebruiken om 3 redenen:

A) Het verneukt je data.
B) Het escapet niet alles.
C) Je dient pas te escapen bij het invoeren in de database, en bij MySQL is dat _altijd_ en _uitsluitend_ met mysql_real_escape_string().

http://nl3.php.net/magic_quotes
Op die pagina staat ook nog in grote rode letters dat het gebruik niet wordt aangeraden.
 
Ik heb de functie stripslashes() toegevoegd ,alleen als je nu een dubbel quote ( " ) invoert dan verdwijnt hij (, dat had ik ook al voor dat ik die stripslashes had toegevoegd) hoe kan ik dit vermijden ?
 
Je moet de functie stripslashes niet toevoegen, je moet magic_quotes uitzetten. :rolleyes:
 
Je kunt het het best in php.ini doen, maar anders met ini_set, zoals ik al zei.

PHP:
ini_set('magic_quotes_gpc', 'off'); 
ini_set('magic_quotes_runtime', 'off');
 
Je kunt het het best in php.ini doen, maar anders met ini_set, zoals ik al zei.

PHP:
ini_set('magic_quotes_gpc', 'off'); 
ini_set('magic_quotes_runtime', 'off');
heeft die code invloed op php ini of niet ?
 
Ik zou zeggen: kijk eens in de PHP manual.
 
Ik heb die code toegevoegd en die stripslashes tijdelijk verwijdert, maar het heeft niet geholpen :confused: . Ik heb die stripslashes nu weer toegevoegd, het is volgens mij verholpen :o .
alleen heb ik dit nu nog steeds :
Ik heb de functie stripslashes() toegevoegd ,alleen als je nu een dubbel quote ( " ) invoert dan verdwijnt hij (, dat had ik ook al voor dat ik die stripslashes had toegevoegd) hoe kan ik dit vermijden ?
 
way-around: lekker een replace functie eroverheen donderen:
PHP:
str_replace($what,$withWhat,$inWhat)
-->
PHP:
$text = "Hallo \\PHP\ backslash";
$text = str_replace("\\","\",$text);

/* je krijgt iets van "Hallo PHP\ backslash" */

lekker slecht, maar hier werkt het meestal wel.
:thumb:
 
Laatst bewerkt:
Nee, die output krijg je niet, want je vervangt elke dubbele slash voor een enkele. Daarnaast snap ik niet dat de topicstarter m'n oplossing afwijst en gewoon doorgaat met slechte methoden.

Als je geen hulp wilt, vraag er dan ook niet om.
 
maar die functie werkt niet op mijn website 'k heb hem uitgeprobeerd ( die functie van magic quotes uitzetten ).
 
Als je met data werkt, is de _enige_ juiste manier van beveiligen door éérst je input te controleren (is het gevuld, bestaat het uit alphanumerieke tekens, etc.) en daarna, wanneer je het aan de database voert, mysql_real_escape_string te gebruiken.

C) Je dient pas te escapen bij het invoeren in de database, en bij MySQL is dat _altijd_ en _uitsluitend_ met mysql_real_escape_string().

Heb je dit nou al eens gedaan?

Daarnaast werkt jouw methode ook niet Vegras aangezien je met die slash er voor zorgt dat je een quote escaped en dus de hele code onbruikbaar maakt.
 
ik snap echt niks van die mysql real espace string ik heb op php .net gekeken maar snap er nog niks van :( , sorry hoor dat 'k zo moeilijk ben :o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan