Problema inregistrare date din formular in baza de date
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
hi_ella
- Mesaje:40
Problema inregistrare date din formular in baza de date
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.
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 !";
}
}
}
?>
Clasa si functia desi nu am probleme cu ele:
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();
}
}
Multumesc anticipat pentru orice sugestii !
MarPlo
Mesaje:4343
Salut
Trebuie verificat si daca sunt date in campurile din formular, cu: empty() sau strlen().
Exemplu:
Cod: Selectaţi tot
if (isset($_POST['user']) && strlen($_POST['user']) > 0) {
$vtosend=array(1=>$_POST['user']);
$ftosend=array(1=>"user");
}
else{
$warnings[]= "Nu ati introdus un nume de utilizator !";
}
Subiecte similare
- Adaugare orar zilele saptamanii in baza de date
PHP - MySQL - XML
Primul mesaj
Salut
Am o baza de date cu toate locatiile
location_id | name |address |telephone | open
Si un formular prin care incarc datele in bd....
Ultimul mesaj
Treaba cu adaugare json in mysql e simpla, se rezuma la adaugarea unui sir care contine ghilimele duble.
Problema la tine e ca acele ghilimele sunt...
- Eroare la un formular cu PHP
PHP - MySQL - XML
Primul mesaj
Salut. Am si eu o problema. In primul rand nu stiu daca am postat unde trebuie si am cautat pe forum ceva asemanator cu problema mea insa nu am...
Ultimul mesaj
Am rezolvat. Multumesc oricum pentru timpul acordat. Am folosit phpmailer pt ca cei de unde am webhostul asa lucreaza. Multumesc inca o data !
- Formular de contact cu upload imagini
Scripturi de pe site
Primul mesaj
Salutare si la multi ani!
Revin cu o intrebare pentru scriptul formular de contact, de la pagina: marplo.net/php-mysql/formular_contact
Este...
Ultimul mesaj
M-am uitat pe codul din formularul de contact.
Am decis sa nu ma complic cu asa multe adaugari si verificari in acel script.
- O mica problema de animatie CSS
HTML - XHTML - CSS
Primul mesaj
Noroc, MarPlo!
1. Am vizitat pe twitter un site de animatie, in care website-ul actual se numeste CSS-Challenges,com. In respectivul website, sunt...
Ultimul mesaj
1. Multumesc pentru raspuns.
2. Am inteles raspunsul tau: este un mic examen oferit voluntarilor online, pentru a le afla capacitatile de rezolvare...
- Problema curs de Engleza
Sesizari Erori si Greseli
Primul mesaj
Buna.
Am descarcat cursul curs_eurocor-engleza_incepatori_1-16.rar si cand vreau sa-l dezarhivez imi da eroarea asta:
An error occures whilw...
Ultimul mesaj
Buna,
Poti sa descarci cursul de engleza, nivel intermediar, de la urmatoarele linkuri:
- Lectiile 1-16...