Problema inregistrare date din formular in baza de date
Scris: Mar Aug 06, 2013
Am urmatorul script php pt crearea unui cont care foloseste o clasa si o functie pentru inserarea numelui de utilizator si a parolei.
Problema este urmatoarea: imi adauga inregistrari in baza de date chiar daca nu am completat nimic in formular.Am folosit array-ul $warnings sa retina mesaje in cazul in care nu sunt completate campurile formularului,dar tot imi executa inserarea.
Clasa si functia desi nu am probleme cu ele:
Multumesc anticipat pentru orice sugestii !
Problema este urmatoarea: imi adauga inregistrari in baza de date chiar daca nu am completat nimic in formular.Am folosit array-ul $warnings sa retina mesaje in cazul in care nu sunt completate campurile formularului,dar tot imi executa inserarea.
Cod: Selectaţi tot
<?php
if (isset($_POST['submit'])){
$warnings=array();
if (isset($_POST['user']))
{ $vtosend=array(1=>$_POST['user']);
$ftosend=array(1=>"user");
}
else{
$warnings[]= "Nu ati introdus un nume de utilizator !";
}
if (isset($_POST['pass'])){
$vtosend[]=$_POST['pass'];
$ftosend[]="parola";
}
else {
$warnings[]="Nu ati introdus parola !";
}
$ftosend[]="sex";
$vtosend[]=$_POST['sex'];
if (count($warnings)>0)
{
echo "Va rog remediati urmatoarele:<br>";
foreach ($warnings as $w){
echo "-".$w."<br>";
}
}
else
{
include_once 'PDOwork.class.php';
$pdoobj=new PDOwork("siteph");
$rez=$pdoobj->insertSql("utilizatori",$ftosend,$vtosend);
if ($rez){
echo "Felicitari ! Contul a fost creat !";
}
else
{
echo "Crearea contului a esuat !Incercati din nou !";
}
}
}
?>
Cod: Selectaţi tot
class PDOwork {
private $conn;
public $connstr;
public $stmi;
public function __construct($dbname)
{
$this->connstr="mysql:host=localhost;dbname=$dbname";
$this->conn=new PDO($this->connstr,'root','');
}
public function insertSql($tabel,$fields,$values){
$nr=count($values);
$str="INSERT INTO ".$tabel."(";
$str.=implode(",",$fields);
$str.=") VALUES(";
if ($nr>1){
$str.=str_repeat("?,",--$nr );
}
$str.="?)";
$this->stmi=$this->conn->prepare($str);
foreach($values as $key=>$v){
$this->stmi->bindValue($key,$v);
}
return $this->stmi->execute();
}
}