2011-01-14 3 views
0

fonction Trim supprimer tous les autres espaces, mais lorsque vous essayez d'enregistrer des données dans la base de données, il a été, sauf avec plus d'espaces pourquoi plaidoyers me aident i, mais vers le bas toutes les constructions de code et base de données pour aider à êtreplaidoyers me aident avec la fonction trim php

CREATE TABLE `test`.`user` (
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY , 
`username` VARCHAR(30) NOT NULL 
) ENGINE = MYISAM ; 

//////////////////////// 
<?php 
    $conn = mysql_connect("localhost","root",""); 
    if(!$conn){ 
     die("there is problem in" .mysql_error()); 
    } 
    $select_db = mysql_select_db("test",$conn); 
    if(!$select_db){ 
     die("there is problem in" .mysql_error()); 
    } 
?> 
<?php 
if(isset($_POST["submit"])){ 
    $fname = trim($_POST["text"]); 
    $name = trim($fname); 
    $insert = mysql_query("insert into user(username)values('{$name}')"); 
} 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 
<form action="" method="post"> 
<input type="text" name="text" value=""/> 
<input type="submit" name="submit" value="submit"/> 
</form> 
<body> 
</body> 
</html> 
+0

S'il vous plaît donner un exemple. – marcog

+0

Vous devriez nous montrer les données que vous utilisez et les résultats obtenus. De même, ne mettez jamais de données non échappées dans une requête. – Andrew

+1

Je suis sous l'impression que vous pensez que l'assiette supprime les espaces dans le mot au lieu de juste avant/après. –

Répondre

3

La fonction trim supprime uniquement les espaces de début et de fin, pas les espaces doubles dans le texte. Vous pouvez utiliser preg_replace pour que, par exemple .:

$output = preg_replace('!\s+!', ' ', $input);

Source: php Replacing multiple spaces with a single space

+0

wow merci pourriez-vous me dire le nom du livre ou du site apprenez-moi régulièrement exp? –

+0

Un bon point de départ est de regarder le screencast [Expressions régulières pour les nuls] (http://blog.themeforest.net/screencasts/regular-expressions-for-dummies/) (ici [parties 2-5] (http : //blog.themeforest.net/? s = regex + for + dummies)). Il y a aussi un bon tutoriel sur [regular-expressions.info] (http://www.regular-expressions.info/tutorial.html), et vous pouvez facilement tester regex en ligne avec [RegExr] (http://gskinner.com/RegExr /). – Alec

1

Encore plus simple que d'utiliser regex

$without_spaces = str_replace(" ", "", $_POST["text"]);