Jump to content
php.lv forumi

Aizsargāšanās no mysql inserta pārrāvumiem.


Recommended Posts

Sveiki, es atkal te! :D

 

Nu tātad vēršos ar problēmu jo nebija apskaidrība kā aizsargāties no mysql errora kurš cik sapratu ir pārrāvuma dēļ.

 

Mēģinu no formas insertot teikumu

 

They're also very useful to keep the inside of a building cooler during how weather - a much more 
sustainable option than the increasingly-ubiquitous air conditioning

 

respektīvi ' simbols izraisa pārrāvumu inserta funkcijā.

 

$teksts = $_POST['apraksts'];
$text = mysql_real_escape_string($teksts);
$text = stripslashes($teksts);

mysql_query("INSERT INTO tabula(apraksts) VALUES ('$text');") or die(mysql_error());

 

Tiek izvadīta kļūda

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server 
version for the right syntax to use near 're also very useful to keep the inside of a 
building cooler during how weather -' at line 1

 

Kā panākt lai šādi pārrāvumi nerastos ja tekstā ir vai nu " vai ' simboli? Ir gadījies ka arī " simbols pārrauj insertu.

Edited by Cibiņš
Link to post
Share on other sites

Noņem $text = stripslashes($teksts);

Ar šo $text = mysql_real_escape_string($teksts); tu eskeipo apostrofu, bet ar stripslashes($teksts); uzreiz dari pretējo

Edited by Jackal
Link to post
Share on other sites

Kodam tagad jaiet bez problēmām (mūžu mācies mūžu dzīvo) šis lai kalpo teu ka piemērs nakotnej .

$text = $_POST['text'];
$text = mysql_real_escape_string($_POST['text']);
$text = stripslashes($_POST['text']);
mysql_query("INSERT INTO tabula(apraksts) VALUES ('".$text."') ") or die(mysql_error());

Edited by Faks
Link to post
Share on other sites
Kodam tagad jaiet bez problēmām (mūžu mācies mūžu dzīvo) šis lai kalpo teu ka piemērs nakotnej .

$text = $_POST['text'];
$text = mysql_real_escape_string($_POST['text']);
$text = stripslashes($_POST['text']);
mysql_query("INSERT INTO tabula(apraksts) VALUES ('".$text."') ") or die(mysql_error());

Faks...fujjj...

Kā piemērs jau nu noteikti nē.

Izlasi skaidrā ko esi samurgojis, tādam kodam pirmās divas rindiņas vispār ir bezjēdzīgas.

Nemaz jau nerunājot par to, ka trešā rindiņa atkal visu dēlī salaiž.

 

P.S. Atcerējos, ka labāk ir tomēr citēt tādas lietas lai vēlāk nav domstarpību:)

Edited by mounkuls
Link to post
Share on other sites

Kaut kā tā, bet vispār būtu jāpāriet uz PDO...

 

$text = $_POST['text'];
$text = stripSlashes( $text );
$text = mysql_real_escape_string( $text );
mysql_query( "..." ) or exit( mysql_error() );

Link to post
Share on other sites

Domāji kaut kā šitā ?

 

function put_text( PDO $pdo )
{
  $text = isset( $_POST['text']) ? $_POST['text'] : '';

  $stmt = $pdo->prepare('INSERT INTO tabula(apraksts) VALUES( :text )');

  $stmt->bindParam(':text', $text, PDO::PARAM_STR);
  $stmt->execute();
}

Link to post
Share on other sites

Noņem $text = stripslashes($teksts);

Ar šo $text = mysql_real_escape_string($teksts); tu eskeipo apostrofu, bet ar stripslashes($teksts); uzreiz dari pretējo

 

NEMELO! :D

 

Ja novāc to tavu herņu tad

<img src="tralalaa">

kam vajadzētu parādīties kā attēls parādās kā

<img src=\"tralalaa\">

piedevm kaa teksts ar slashiem nevis kaa atteels.

Link to post
Share on other sites

NEMELO! :D

 

Ja novāc to tavu herņu tad

<img src="tralalaa">

kam vajadzētu parādīties kā attēls parādās kā

<img src=\"tralalaa\">

piedevm kaa teksts ar slashiem nevis kaa atteels.

 

Izslēdz magic quotes un to stripslashes sūdu vairs nekad nevajadzēs lietot.

http://php.net/manual/en/security.magicquotes.disabling.php

Link to post
Share on other sites

function sanitize($input){
if(is_array($input)){
	foreach($input as $k=>$i){
		$output[$k]=sanitize($i);
	}
} else {
	if(get_magic_quotes_gpc()){
		$input=stripslashes($input);
	}
	$output=mysql_real_escape_string($input);
}
return $output;
}

 

Nevajadzēs ne pielāgot servera konfigu, ne bāzt stripslashes, ne rakstīt ūber garo mysql_real_escape_string katrā vietā :)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...