Jump to content
cachopo

Duvida caracteres especiais php

Recommended Posts

cachopo

Boa tarde,

Sou novo aqui no forum Portugal a Programar.

Gostava de saber se existe alguma forma de fazer com que nenhum dos campos possa ter caracteres especiais, sem ter de estar a criar cada um código assim:

if (!empty($_POST['teste']))
{
   $teste = $_POST['teste'];

   if (preg_match('/^[a-z A-Z0-9]+$/', $teste)) {
            echo 'Username OK!';
   }else {
            echo 'Username tem caracteres inválidos';
   }  
}

para cada uma das variaveis.

Gostava da vossa ajuda.

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Podes utilizar o foreach. Por exemplo:

if ( ! empty( $_POST['teste'] ) )
{

foreach( $_POST as $campo ) {

	if ( preg_match( '/^[a-z A-Z0-9]+$/', $campo ) ){

		echo 'Campo OK!';

	} else {

		echo 'O campo tem caracteres inválidos';

	}

}

}

Share this post


Link to post
Share on other sites
cachopo

Onde está $campo coloco as variaveis dos campos por exemplo : $teste1, $teste2, $teste3 assim??

if ( ! empty( $_POST['teste'] ) )
{

foreach( $_POST as $campo ) {

	if ( preg_match( '/^[a-z A-Z0-9]+$/', $campo ) ){

		echo 'Campo OK!';

	} else {

		echo 'O campo tem caracteres inválidos';

	}

}

}

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Não, é mesmo assim.

O que isso faz é percorrer o array $_POST e verifica todos os campos.

Ou seja, o $campo vai ser o teu $teste1, $teste2, $teste3, etc...

Share this post


Link to post
Share on other sites
cachopo

Eu tenho 1 campo que apenas pode ter números, como é que eu restrinjo a função para ela não ir buscar esse campo?

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Neste caso, como estás a verificar se os campos apenas têm letras e números, podes deixar como está e no fim adicionar um if, depois do foreach.

Share this post


Link to post
Share on other sites
cachopo

Boas,

Não, é mesmo assim.

O que isso faz é percorrer o array $_POST e verifica todos os campos.

Ou seja, o $campo vai ser o teu $teste1, $teste2, $teste3, etc...

Nao percebi. Onde está $campo coloco assim $exemplo1, $exemplo2, $exemplo3 é??

if ( ! empty( $_POST['teste'] ) )
{

        foreach( $_POST as $campo ) {

                if ( preg_match( '/^[a-z A-Z0-9]+$/', $campo ) ){

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Não ! Não compliques. Como está, já está a fazer a verificação a todos os campos...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.