[PHP] Insert van externe txt-file in MySQL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 51022

Topicstarter
Ik heb het volgende probleem:

Om te testen of de string ' \' '' \\' \\\' " \" "" \\" \\\" ` \` `` \\` \\\` ook goed geinsert wordt in de DB zet ik hem met een _POST in de DB

Ik heb dan ook ' \' '' \\' \\\' " \" "" \\" \\\" ` \` `` \\` \\\` in mijn DB staan.
Doordat ik niet de mogelijkheid heb om de DB te copieren moet ik de DB per regel gaan lezen.
Deze zet ik dan in een tekst-file.
Ik krijg het voor elkaar om deze naar binnen te halen als
' \' '' \\' \\\' " \" "" \\" \\\" ` \` `` \\` \\\` of als \' \\\' \'\' \\\\\' \\\\\\\' \" \\\" \"\" \\\\\" \\\\\\\" ` \\` `` \\\\` \\\\\\` (deze laatste zie ik ook als ik hem _POST in mijn gewone pagina (met magic_quotes_gpc ON)

Om het terug te plaatsen:
Hierna creeer ik later de database met ook de juiste tabel.
Nu doe ik het volgende:
PHP:
1
mysql_query("INSERT INTO stock (id , description_text , description_short , pic_name , country_id , price , insert_date) VALUES ( '117' , '"Aardappels' , '".addslashes_html_entity_decode("\' \\\' \'\' \\\\\' \\\\\\\' \" \\\" \"\" \\\\\" \\\\\\\" ` \\` `` \\\\` \\\\\\`")."' , 'pb220001 (small).jpg' , '73' , '1.25' , '1123523548')")or die("Fout bij het maken van de tabel stock: ".mysql_error());


De functie addslashes_html_entity_decode($data):

PHP:
1
2
3
4
5
function addslashes_html_entity_decode($data)
{
    $data =  mysql_real_escape_string($data);
    return $data;
}


en komt er op de plaats van description_short
\' \\' \'\' \\\' \\\\' " \" "" \\" \\\" ` \` `` \\` \\\` te staan ipv
' \' '' \\' \\\' " \" "" \\" \\\" ` \` `` \\` \\\`

PS magic_quotes_gpc staat in dit geval op OFF!

Op dit moment wil ik nog even niet denken aan SQL-injection. Ik wil dit scripje gewoon gebruiken om de database (extern gehost dus GEEN EXTERNE AANPASSINGEN MOGELIJK) uit te lezen. Voor het updaten zal ik dan tzt mijn insert pagina updaten om het scripje te draaien

Kan hier iemand mij een hint geven wat ik in ****-naam fout doe, ik ben al bijna een maand aan het klooien

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 11-06 00:38

NMe

Quia Ego Sic Dico.

Wat geeft deze functie terug: get_magic_quotes_runtime()? Als deze 1 teruggeeft, gebruik dan deze functie om er 0 van te maken. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 51022

Topicstarter
-NMe- schreef op zondag 02 april 2006 @ 13:28:
Wat geeft deze functie terug: get_magic_quotes_runtime()? Als deze 1 teruggeeft, gebruik dan deze functie om er 0 van te maken. ;)
PHP:
1
2
echo"get_magic_quotes_runtime = ".get_magic_quotes_runtime()."</br>\n";
echo"get_magic_quotes_gpc status = ". get_magic_quotes_gpc()."</br>\n";

geeft:
get_magic_quotes_runtime = 0
get_magic_quotes_gpc status = 0
PS
PHP Version 4.3.1
MySQL Version 3.23.49

[ Voor 9% gewijzigd door Anoniem: 51022 op 02-04-2006 13:55 ]


Acties:
  • 0 Henk 'm!

Anoniem: 51022

Topicstarter
Iemand nog een idee?
Dit moet toch mogelijk zijn :)

Acties:
  • 0 Henk 'm!

Anoniem: 59363

Heb je het stukje uit de FAQ gezien? Programming FAQ - PHP

Verder vind je op php.net deze note:
Note: If the directive magic_quotes_sybase is ON it will completely override magic_quotes_gpc. So even when get_magic_quotes_gpc() returns TRUE neither double quotes, backslashes or NUL's will be escaped. Only single quotes will be escaped. In this case they'll look like: ''

Let op of deze optie aanstaat, daarmee weet je of http://nl2.php.net/manual....get-magic-quotes-gpc.php de juiste waarde teruggeeft.