trim + empty niet meewerkend

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Afra ca

Afra ca

07/05/2009 18:02:00
Quote Anchor link
Gegroet wederom,

Ik maak het jullie lekker makkelijk vandaag. Krijg een foutmelding die mij niet bekend is.

Quote:
Fatal error: Can't use function return value in write context in G:\xampplite\htdocs\in_dev\registratie3.php on line 25


betreffende stuk code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if(empty(trim($_POST['Gebruikersnaam']))){
            $errors[] = "Je hebt geen gebruikersnaam ingevuld!";
        }

?>


De combinatie van trim en empty deed het 'm. Had eerst de trim functie niet gebruikt, maar dan kon je er met 4 spaties (minimale lengte gebruikersnaam) gewoon doorkomen.
 
PHP hulp

PHP hulp

19/04/2024 01:54:13
 
Mark PHP

Mark PHP

07/05/2009 18:14:00
Quote Anchor link
empty() checkt of variabelen leeg zijn, trim($_POST['gebruikersnaam']) is geen variabele.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$gebruikersnaam
= trim($_POST['gebruikersnaam']);
if(empty($gebruikersnaam)) {
            $errors[] = "Je hebt geen gebruikersnaam ingevuld!";
}

?>

Staat by the way letterlijk in de manual:
Quote:
Note: empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).
 
Steen

steen

07/05/2009 18:27:00
Quote Anchor link
Waar is dat eigenlijk goed voor?
 
Afra ca

Afra ca

07/05/2009 18:38:00
Quote Anchor link
Agirre schreef op 07.05.2009 18:14:
Staat by the way letterlijk in de manual:
Quote:
Note: empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).


Hmmm..... En dat terwijl ik normaal gesproken eerst even de moeite neem de manual erbij te pakken.

Pff, vind dat dat zeker een item voor op de php 6.0 wishlist!
 
Emmanuel Delay

Emmanuel Delay

07/05/2009 18:57:00
Quote Anchor link
Wat je dus wel kan doen, is zo-iets

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$_POST
['Gebruikersnaam'] = ( isset($_POST['Gebruikersnaam']) ? trim( $_POST['Gebruikersnaam'] ) : null ); // verkorte if/then/else notatie (ternary operator)
if(empty( $_POST['Gebruikersnaam'] )){
            $errors[] = "Je hebt geen gebruikersnaam ingevuld!";
        }

?>


Trouwens, je kan functies schrijven die al je POSTs voorberieden.

Iets als

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$errors
= postVoorbereiden($_POST); // maar kan gebruikt worden voor gelijk welke array ('t moet wel een variabele zijn)

function postVoorbereiden(&$posts)
{

  $errors = array();
  if ( empty($posts) || ! is_array($posts) )
    return false;
  foreach ( $posts as $key => $post )
  {

    $posts[$key] = trim( $post ) ;
    // en eventueel strip_tags, of wat je ook wil van van controle
    if ( empty($posts[$key]) )
      $errors [$key] = 'leeg';  // eventueel met een switch op $key specifieke fouten weergeven
  }
return $errors;
}

?>

(niet getest)
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.