/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
stripslashes() og mysql_close()
Fra : [x]


Dato : 11-07-04 21:59

Hey ng.

Jeg har læst et eller andet sted at brugen af stripslashes() og
mysql_close() ikke er strengt nødvendigt længere. Jeg mener at det
skyldes en ændring i den seneste php version. Nogen der kan fortælle mig
om det forholder sig således ?

På forhånd tak.
--
mvh. [x] - www.ionline.dk

 
 
Johan Holst Nielsen (11-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 11-07-04 22:11

[x] wrote:

> Hey ng.
>
> Jeg har læst et eller andet sted at brugen af stripslashes() og
> mysql_close() ikke er strengt nødvendigt længere. Jeg mener at det
> skyldes en ændring i den seneste php version. Nogen der kan fortælle mig
> om det forholder sig således ?

mysql_close er ikke nødvendig i alle tilfælde (dog en meget god ting at
gøre alligevel).

Grunden til det - er at forbindelsen til MySQL databasen alligevel
lykkes når siden er ekskveret (dog undtagen hvis forbindelsen er åbenet
med mysql_pconnect - men så er mysql_close også unødvendig - da den ikke
lukker forbindelsen).

Som der står på php.net/mysql_close

Using mysql_close() isn't usually necessary, as non-persistent open
links are automatically closed at the end of the script's execution. See
also freeing resources
(http://dk.php.net/manual/en/language.types.resource.php#language.types.resource.self-destruct).


Omkring strip_slashes - jeg tror du tænker på magic_quotes_gpc i
php.ini... den slashes automatisk strenge som bliver sendt via forme :)
Så det er vel mere add_slashes du tænker på? (eller?)...

Men du bør stadig bruge add_slashes kombineret med get_magic_quotes_gpc


mvh
Johan

[x] (11-07-2004)
Kommentar
Fra : [x]


Dato : 11-07-04 22:17

Johan Holst Nielsen wrote:

> Omkring strip_slashes - jeg tror du tænker på magic_quotes_gpc i
> php.ini... den slashes automatisk strenge som bliver sendt via forme :)
> Så det er vel mere add_slashes du tænker på? (eller?)...
>
> Men du bør stadig bruge add_slashes kombineret med get_magic_quotes_gpc

Jo, det var selvfølgeligt add_slashes jeg tænkte på.
get_magic_quotes_gpc kender jeg ikke.. kan du evt. forklare eller linke?

--
mvh. [x] - www.ionline.dk

Johan Holst Nielsen (11-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 11-07-04 22:22

[x] wrote:

> Johan Holst Nielsen wrote:
>
>> Omkring strip_slashes - jeg tror du tænker på magic_quotes_gpc i
>> php.ini... den slashes automatisk strenge som bliver sendt via forme
>> :) Så det er vel mere add_slashes du tænker på? (eller?)...
>>
>> Men du bør stadig bruge add_slashes kombineret med get_magic_quotes_gpc
>
>
> Jo, det var selvfølgeligt add_slashes jeg tænkte på.
> get_magic_quotes_gpc kender jeg ikke.. kan du evt. forklare eller linke?
>

Prøv:
http://dk.php.net/get_magic_quotes_gpc

Reelt set gør du noget ala:

<?php
if(!get_magic_quotes_gpc()) {
$_POST['foo'] = add_slashes($_POST['foo']);
}
?>


Således vil den kun tilføje slashes - hvis magic_quotes_gpc ikke har
gjort det i forvejen...


mvh
Johan

[x] (11-07-2004)
Kommentar
Fra : [x]


Dato : 11-07-04 23:08

Johan Holst Nielsen wrote:

> Prøv:
> http://dk.php.net/get_magic_quotes_gpc
>
> Reelt set gør du noget ala:
>
> <?php
> if(!get_magic_quotes_gpc()) {
> $_POST['foo'] = add_slashes($_POST['foo']);
> }
> ?>
>
>
> Således vil den kun tilføje slashes - hvis magic_quotes_gpc ikke har
> gjort det i forvejen...

Jeg takker endnu en gang.

--
mvh. [x] - www.ionline.dk

Nezar Nielsen (12-07-2004)
Kommentar
Fra : Nezar Nielsen


Dato : 12-07-04 09:07

Johan Holst Nielsen wrote:
> <?php
> if(!get_magic_quotes_gpc()) {
> $_POST['foo'] = add_slashes($_POST['foo']);

Det må være en ny funktion, sidst jeg brugte den, hed den da addslashes :)

--
Mvh. Nezar Nielsen
http://fez.dk/

Ugens strømtip: Leg aldrig med elektricitet når du er i bad.

Johan Holst Nielsen (12-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-07-04 09:07

Nezar Nielsen wrote:

> Johan Holst Nielsen wrote:
>
>> <?php
>> if(!get_magic_quotes_gpc()) {
>> $_POST['foo'] = add_slashes($_POST['foo']);
>
> Det må være en ny funktion, sidst jeg brugte den, hed den da addslashes :)

hehe :) Helt rigtigt - tror jeg skulle været gået tidligere i seng :D
Findes der ikke en newsreader med syntax highlighting så man kan undgå
sådanne typos? :D

mvh
Johan


Nezar Nielsen (12-07-2004)
Kommentar
Fra : Nezar Nielsen


Dato : 12-07-04 09:25

Johan Holst Nielsen wrote:
> Findes der ikke en newsreader med syntax highlighting så man kan undgå
> sådanne typos? :D

Hehe, uden tvivl, emacs kan jo ifølge fanatikerne alt ;)

--
Mvh. Nezar Nielsen
http://fez.dk

Johan Holst Nielsen (12-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-07-04 09:24

Nezar Nielsen wrote:
> Johan Holst Nielsen wrote:
>
>> Findes der ikke en newsreader med syntax highlighting så man kan undgå
>> sådanne typos? :D
>
> Hehe, uden tvivl, emacs kan jo ifølge fanatikerne alt ;)

Når vi tager Linux editors holder jeg nu stadig på vim - og kate hvis
den skal være lidt pænere :D

mvh
Johan


Nezar Nielsen (12-07-2004)
Kommentar
Fra : Nezar Nielsen


Dato : 12-07-04 09:30

Nezar Nielsen wrote:
> Det må være en ny funktion, sidst jeg brugte den, hed den da addslashes :)

Iøvrigt lidt komisk og potentielt misvisende at manualen tilsyneladende
bare stripper underscores:

http://dk2.php.net/add_____________________slashes

--
Mvh. Nezar Nielsen
http://fez.dk


Johan Holst Nielsen (12-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-07-04 09:57

Nezar Nielsen wrote:

> Nezar Nielsen wrote:
>
>> Det må være en ny funktion, sidst jeg brugte den, hed den da
>> addslashes :)
>
>
> Iøvrigt lidt komisk og potentielt misvisende at manualen tilsyneladende
> bare stripper underscores:
>
> http://dk2.php.net/add_____________________slashes

Hmm jah faktisk - du kan godt skrive:
http://php.net/mysql-connect
http://php.net/mysql_connect

Men underligt nok kan du ikke skrive:
http://php.net/mysqlconnect


Logikken hører op :D Når den stripper den ene vej - bør den vel også
tilføje den anden vej :(

mvh
Johan


Johan Holst Nielsen (12-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-07-04 10:02

Johan Holst Nielsen wrote:

> Nezar Nielsen wrote:
>
>> Nezar Nielsen wrote:
>>
>>> Det må være en ny funktion, sidst jeg brugte den, hed den da
>>> addslashes :)
>>
>>
>>
>> Iøvrigt lidt komisk og potentielt misvisende at manualen
>> tilsyneladende bare stripper underscores:
>>
>> http://dk2.php.net/add_____________________slashes
>
>
> Hmm jah faktisk - du kan godt skrive:
> http://php.net/mysql-connect
> http://php.net/mysql_connect
>
> Men underligt nok kan du ikke skrive:
> http://php.net/mysqlconnect
>

Jah - rent faktisk kan du også skrive;:
http://php.net/mysql%20connect

mvh
Johan


[x] (12-07-2004)
Kommentar
Fra : [x]


Dato : 12-07-04 22:25

Johan Holst Nielsen wrote:

> Prøv:
> http://dk.php.net/get_magic_quotes_gpc
>
> Reelt set gør du noget ala:
>
> <?php
> if(!get_magic_quotes_gpc()) {
> $_POST['foo'] = add_slashes($_POST['foo']);
> }
> ?>
>
>
> Således vil den kun tilføje slashes - hvis magic_quotes_gpc ikke har
> gjort det i forvejen...

Hey igen.

Jeg har lavet følgende:

$var1 = $_REQUEST[var1];
$var2 = $_REQUEST[var2];
$var3 = $_REQUEST[var3];
$var4 = $_REQUEST[var4];
$var5 = $_REQUEST[var5];
$var6 = $_REQUEST[var6];

$varArr = array($var1,$var2,$var3,$var4,$var5,$var6);

foreach($varArr as $x)

{

   if(!get_magic_quotes_gpc())

   {

      $varArr = addslashes($varArr);

   }

}

Det tyder på at det umiddelbart virker efterhensigten. Jeg vil bare
gerne have dette:

$_POST['foo'] = add_slashes($_POST['foo']);

puttet ind, men ved ikke lige hvordan. Håber en eller anden kan hjælpe.

På forhånd tak.

--
mvh. [x] - www.ionline.dk

Johan Holst Nielsen (13-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 13-07-04 07:45

[x] wrote:
> Johan Holst Nielsen wrote:
>
>> Prøv:
>> http://dk.php.net/get_magic_quotes_gpc
>>
>> Reelt set gør du noget ala:
>>
>> <?php
>> if(!get_magic_quotes_gpc()) {
>> $_POST['foo'] = add_slashes($_POST['foo']);
>> }
>> ?>
>>
>>
>> Således vil den kun tilføje slashes - hvis magic_quotes_gpc ikke har
>> gjort det i forvejen...
>
>
> Hey igen.
>
> Jeg har lavet følgende:
>
> $var1 = $_REQUEST[var1];
> $var2 = $_REQUEST[var2];
> $var3 = $_REQUEST[var3];
> $var4 = $_REQUEST[var4];
> $var5 = $_REQUEST[var5];
> $var6 = $_REQUEST[var6];
>
> $varArr = array($var1,$var2,$var3,$var4,$var5,$var6);
>
> foreach($varArr as $x)
>
> {
>
> if(!get_magic_quotes_gpc())
>
> {
>
> $varArr = addslashes($varArr);
>
> }
>
> }
>
> Det tyder på at det umiddelbart virker efterhensigten. Jeg vil bare
> gerne have dette:
>
> $_POST['foo'] = add_slashes($_POST['foo']);
>
> puttet ind, men ved ikke lige hvordan. Håber en eller anden kan hjælpe.

Nej ovenstående funktion vil ikke virke :)
Hvis det bare er dine request parametre ville noget ala dette nok være
det bedste:


<?php
if(!get_magic_quotes_gpc()) {
foreach($_REQUEST as $key=>$value) {
$_REQUEST[$key] = addslashes($value);
}
}
?>

mvh
Johan


[x] (13-07-2004)
Kommentar
Fra : [x]


Dato : 13-07-04 09:57

Johan Holst Nielsen wrote:

> Nej ovenstående funktion vil ikke virke :)

Nej, det fandt jeg efterfølgende ud af....erhm...

> Hvis det bare er dine request parametre ville noget ala dette nok være
> det bedste:
>
> <?php
> if(!get_magic_quotes_gpc()) {
> foreach($_REQUEST as $key=>$value) {
> $_REQUEST[$key] = addslashes($value);
> }
> }
> ?>

Tanken var at den skulle gennemløbe en stribe variabler, i dette
tilfælde output'et fra en form. Dette gør din kode vel også.

Jeg takker igen.

--
mvh. [x] - www.ionline.dk

Johan Holst Nielsen (13-07-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 13-07-04 10:16

[x] wrote:

> Johan Holst Nielsen wrote:
>
>> Nej ovenstående funktion vil ikke virke :)
>
>
> Nej, det fandt jeg efterfølgende ud af....erhm...
>
>> Hvis det bare er dine request parametre ville noget ala dette nok være
>> det bedste:
>>
>> <?php
>> if(!get_magic_quotes_gpc()) {
>> foreach($_REQUEST as $key=>$value) {
>> $_REQUEST[$key] = addslashes($value);
>> }
>> }
>> ?>
>
>
> Tanken var at den skulle gennemløbe en stribe variabler, i dette
> tilfælde output'et fra en form. Dette gør din kode vel også.

Well - for du kan gøre det via en foreach skal du have en key + en value
på parametren

Dit eksempel med
$var1 = $_REQUEST[var1];
$var2 = $_REQUEST[var2];
$var3 = $_REQUEST[var3];
$var4 = $_REQUEST[var4];
$var5 = $_REQUEST[var5];
$var6 = $_REQUEST[var6];

Ville være bedre hvis du lavet noget ala:

$foo = array('var1'=>$_REQUEST['var1'],'var2'=>$_REQUEST['var2']...) osv.

Derefter skal du køre $foo igennem loopen - som jeg vidste ovenover - og
bruge $foo['var1'] når du skal hente den ud osv ;)

mvh
Johan


[x] (13-07-2004)
Kommentar
Fra : [x]


Dato : 13-07-04 11:02

Johan Holst Nielsen wrote:

> Well - for du kan gøre det via en foreach skal du have en key + en value
> på parametren
>
> Dit eksempel med
> $var1 = $_REQUEST[var1];
> $var2 = $_REQUEST[var2];
> $var3 = $_REQUEST[var3];
> $var4 = $_REQUEST[var4];
> $var5 = $_REQUEST[var5];
> $var6 = $_REQUEST[var6];
>
> Ville være bedre hvis du lavet noget ala:
>
> $foo = array('var1'=>$_REQUEST['var1'],'var2'=>$_REQUEST['var2']...) osv.

Dette sad jeg faktisk også og rodede med i går, men kunne ikke vurdere
om det var den rigtige løsning og i så fald hvordan det skulle gøres...

> Derefter skal du køre $foo igennem loopen - som jeg vidste ovenover - og
> bruge $foo['var1'] når du skal hente den ud osv ;)

Jeg er nødt til at få et praktisk eksempel, så jeg giver lige noget,
ganske givet inkorrekt, kode jeg har stykket sammen.


<?php

$subject = $_REQUEST['subject'];
$username = $_REQUEST['username'];
$website = $_REQUEST['website'];
$msg = $_REQUEST['msg'];
$ip = getenv('REMOTE_ADDR');


$tagArr =
array('subject'=>'$subject','username'=>'$username','website'=>'$website','msg'=>'$msg');

/* kan jeg ikke lave array'et således, når de bliver request'ed øverst i
koden ? */


$writeToTag = "insert into $db_tag(date, ip, username, website, msg,
subject)
values(now(), '$ip', '$tagArr['username']', '$tagArr['website'],
'$tagArr['$msg']', '$tagArr['subject']')";

/* kan dette overhovedet lade sig gøre ? */

if(!get_magic_quotes_gpc())

{

   foreach($tagArr as $key=>$value) /* eller skal det være $_REQUEST her i
stedet for $tagArr ? */

   {

   $_REQUEST[$key] = addslashes($value);

   }

   $db_open = mysql_connect($server,$db_user,$db_pass);

      if(!$db_open) die("Could not connect to MySQL");

      mysql_select_db($db);

      mysql_query($writeToTag) OR DIE ("SQL: ".$writeToTag."<br>Error:
".mysql_error());

      mysql_close();

}

else

{

$db_open = mysql_connect($server,$db_user,$db_pass);

   if(!$db_open) die("Could not connect to MySQL");

   mysql_select_db($db);

   mysql_query($writeToTag) OR DIE ("SQL: ".$writeToTag."<br>Error:
".mysql_error());

   mysql_close();

}

?>


Jeg er ikke synderligt php kyndig, så det er sikkert helt galt. Jeg
håber du forsår tanken, ellers kan jeg da lige forklare.

Der skal loopes igennem arrayet og addslashes() hvis
get_magic_quotes_gpc() ikke lykkes. Herefter skal data ligges i databasen.

Hvis get_magic_quotes_gpc() lykkes skal de data ligges i databasen.


--
mvh. [x] - www.ionline.dk

[x] (13-07-2004)
Kommentar
Fra : [x]


Dato : 13-07-04 23:53

Johan, jeg takker for din tålmodighed og vilje til at hjælpe. Jeg tror
så småt jeg er ved at fatte det nu... Hvis ikke alligevel, så vender jeg
uden tvivl tilbage igen..

--
mvh. [x] - www.ionline.dk

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste