Controllo stringa

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, come posso controllare una stringa prevenuta da un $_GET che questa $_GET carica una query e fa vedere il contenuto a video?

Vorrei fare che non posso far inserire simboli cosi \ - , *.

ho provato (string)$_GET

ma non funziona...

aspetto risposta e buona serata.
 
ciao
se vuoi che la stringa non contenga quei caratteri puoi usare str_replace
PHP:
<?php
$non_ammessi = array("\\", "\'", "-", "*",".");
$stringa_da_usare=str_replace($non_ammessi, "", $_GET['pinco']);
//......
?>
oppure al contrario verificare che contenga solo caratteri alfabetici con preg_match
es.
PHP:
<?php
if(preg_match("/^[a-zA-Z]$/",$_GET['pinco'])){
	echo "get valido";
}else{
	echo "get con caratteri non ammessi";
}
//....
?>
 
ciao, grazie per la risposta..

ti posto il codice che sto usando.. pero quando metto nella barra degli indirizzi ad esempio pages.php?url=\ . salta fuori un errore mysql syntax.

PHP:
<?php
// Includo 
require_once(dirname(__FILE__) . '/inc.php');
require_once(dirname(__FILE__) . "/template/".$template_client."/header.php");

		$url = (isset($_GET["url"])) ? trim ((string)$_GET["url"]): '';

		
		$query = "SELECT * FROM pagine WHERE url='".$url."' and active=1";
		$result = $db->query($query)or die($db->error);
		if(empty($url)) {
		echo "ID non specificato";
}
elseif ($result->num_rows == 0) { echo "Record non trovato"; }
else
{
		
        $row = $result->fetch_array();
		$titolo = $row['titolo'];
        $testo = $row['testo'];
	    $result->free_result(); 



?>

<?php	if ( isset ( $error ) )	{ echo '			<p class="error">' . $error . '</p>' . "\n";	}	?>
<?php	if ( isset ( $msg ) )	{ echo '			<p class="msg">' . $msg . '</p>' . "\n";	} else {?>
 
				<p class="_h2"><?php echo $titolo; ?></p>
				<p><?php echo $testo; ?></p>
              
	<?php 
	}
	}
	?><?php
require_once(dirname(__FILE__) . "/template/".$template_client."/footer.php");
?>

come posso inserirlo qui. il tuo codice?

grazie mille.
 
Mi pare che tu stia utilizzando mysqli quindi non faresti prima ad utilizzare real_escape_string sulla variabile?

PHP:
$query = "SELECT * FROM pagine WHERE url='".$db->real_escape_string($url)."' and active=1"; 
$result = $db->query($query)or die($db->error);


Sennò per adattare il codice di borgo basta che metti la query nella condizione

PHP:
if(preg_match("/^[a-zA-Z]$/",$_GET['pinco'])){ 
    //qui esegui la query....
    $query = "SELECT * FROM pagine WHERE url='".$db->real_escape_string($url)."' and active=1"; 
    $result = $db->query($query)or die($db->error); 
}
 
Ultima modifica:
hai ragione @ Nefyt , mi ero scordato.. ed ho provato funziona senza problemi..

ti ringrazio molto..

e buona serata a domani..
ciaoo.
 

Discussioni simili