verificare elemente de formular in php

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
sterica
Mesaje: 285

verificare elemente de formular in php

Salutare,

Am urmatorul cod:

Cod: Selectaţi tot

<?php
	if(isset($_POST['submit'])) {
		if(isset($_POST['name'], $_POST['start_date'], $_POST['end_date'])) {
			$insert_str = [];
			$name = $_POST['name'];
			$start_date = $_POST['start_date'];
			$end_date = $_POST['end_date'];
			
			echo 'sunt valori in $name, $start_date si $end_date';
		}
		else {
			echo 'nu sunt valori in $name, $start_date si $end_date';
		}
		echo 'exista variabila $_POST['submit']';
	} 
	else {
		echo 'nu exista variabila $_POST['submit']';
	}
?>
Cand deschid pagina ce contine codul de mai sus, imi este afisat direct mesajul:

Cod: Selectaţi tot

nu sunt valori in $name, $start_date si $end_date
. Mesajul de ce nu apare la apasarea butonului submit? Unde gresesc in codul meu?
Multumesc!

MarPlo Mesaje: 4343
Cum e form-ul prin care deschizi pagina? Elementul "submit" are atribut value?
- Sunt si greseli in cod, nu se adauga ghilimele simple intre acelasi tip de ghilimele.
Corect e asa:

Cod: Selectaţi tot

echo 'nu exista variabila $_POST["submit"]';

sterica Mesaje: 285
Recapitulez codul:

Cod: Selectaţi tot

<form action="fisier.php" method="POST">
	<input type="text" name="name" placeholder="numele">
	<input type="text" name="start_date" class="start_date" placeholder="start date">
	<input type="text" name="end_date" class="end_date" placeholder="end date">
	<input type="submit" class="btn btn-2" name="submit" value="creaza">
</form>
iar codul php:

Cod: Selectaţi tot

<?php
   if(isset($_POST['submit'])) {
      if(isset($_POST['name'], $_POST['start_date'], $_POST['end_date'])) {
         $insert_str = [];
         $name = $_POST['name'];
         $start_date = $_POST['start_date'];
         $end_date = $_POST['end_date'];
         
         echo 'sunt valori in $name, $start_date si $end_date';
      }
      else {
         echo 'nu sunt valori in $name, $start_date si $end_date';
      }
      echo 'exista variabila $_POST['submit']';
   }
   else {
      echo 'nu exista variabila $_POST['submit']';
   }
?>

MarPlo Mesaje: 4343
Functia isset() verifica existenta variabilei, nu si daca sunt valori in ea (poate fi goala).
Pentru ceea ce vrei, cred ca verificarea e buna asa:

Cod: Selectaţi tot

if(isset($_POST['name'], $_POST['start_date'], $_POST['end_date']) && strlen($_POST['name'])>0 && strlen($_POST['start_date'])>0 && strlen($_POST['end_date'])>0){
//...
}

sterica Mesaje: 285
in cazul meu variabilele:

Cod: Selectaţi tot

$name = $_POST['name'];
$start_date = $_POST['start_date'];
$end_date = $_POST['end_date'];
vor exista numai cand contin valori si sunt trimise cu submit?

Multumesc!

MarPlo Mesaje: 4343
Da, si numai daca nici una nu e goala.
Eventual, poti sa adaugi atributul "required" in tag-urile html respective.

sterica Mesaje: 285
am inteles, multumesc mult de ajutor.

Subiecte similare