Queria saber se existe uma ação no PHP para remover multiplos espaços consecutivos, por exemplo, o Dreamweaver não permite que crie vários espaços, mesmo pressionando a tecla SPACE.
Seria assim o caso: Pretendo criar um sistema de cadastro de clientes e o cliente acidentalmente digita dois espaços em branco em seu nome completo no formulário, dai ele clica em Enviar, e o PHP irá tratar a variável e remover o excesso de espaços, e enfim enviar pro MySQL.
Este é o formulário:
form_index.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Cadastro de Clientes</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form name="form1" method="post" action="recebe_form_index.php"> <h1>Formulário - Cadastro de Clientes</h1> <p>Nome: <input name="form_nome" type="text" id="form_nome" size="30" maxlength="80"> <br> E-mail: <input name="form_email" type="text" id="form_email" size="30" maxlength="80"> <br> <br> <input type="submit" name="Submit" value="Enviar"> </p> </form> <p> </p> </body> </html>
Me falaram que devo usar o TRIM, mas parece que não tem efeito.
recebe_form_index.php
<?php $titulo = "Fazendo cadastro"; include("config.php"); $nome = $_POST['form_nome']; $email = $_POST['form_email']; //Retirando espaços $nome = trim($nome); $email = trim($email); $erro = 0; //Verificar se há email cadastrado no BD $RsVerifica = mysql_query("SELECT * FROM tblcad WHERE email = '$email'"); $mnr = mysql_num_rows($RsVerifica); if ($mnr != 0) { echo '<center><font style="color:#FF0000">E-mail já cadastrado em nosso banco de dados!</font>'; $erro++; } //Se não encontrar @ if (!eregi("@", $email)) { echo '<center><font style="color:#FF0000">E-mail incorreto!</font>'; $erro++; } //Encontrar números if (ereg("[0-9\()-.,:;*&¬!?|+}{/]", $nome)) { echo '<center>><font style="color:#FF0000">Nome incorreto!</font>'; $erro++; } //Verificar se campo nome foi setado if (empty($nome)) { echo '<center><font style="color:#FF0000">Campo nome em branco!</font>'; $erro++; } if ($erro == 0) { //Inserir no banco de dados se tudo se tudo for OK $RsInserir = mysql_query("INSERT INTO tblcad (nome, email) VALUES ('$nome', '$email')"); echo '<center>Cadastro efetuado com sucesso!<br><br> <b>Nome: </b>'.$nome.'<br> <b>Email </b>'.$email.''; } ?> <html> <head> <title><?php echo "$titulo"; ?></title> </head> <body> </body> </html>
O código não gera erro nenhum, mas na hora visualizar no phpMyAdmin o campo "nome" da tabela "tblcad" mostra o excesso de espaços.
O que falta no meu exemplo?
Agradeço a quem puder me ajudar.