Versio

trim + empty niet meewerkend

Overzicht Reageren

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

25/05/2012 16:38:08
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
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

Get Adobe Flash player