Eroare verificare date din formular si baza de date
Scris: Dum Ian 06, 2013
Probleme la codu asta:
Orice nume scriu zice ca exista in baza de date.
La fel si la id-ul de messenger.
Am asa in formularul de inregistrare :
Orice nume scriu zice ca exista in baza de date.
La fel si la id-ul de messenger.
Am asa in formularul de inregistrare :
Cod: Selectaţi tot
=php<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
include('conectare.php');
$user_bd = mysql_query("SELECT `nume`,`idm` FROM membri");
$user_baza = mysql_fetch_array($user_bd);
// Se defineste un Header pt. a utiliza setul de caractere cu format UTF-8
$mesaj = ''; // Variabila folosita pt. mesajul ce va fi afisat pt. utilizator
// Se verifica daca sunt primite datele de la formular
if($_SERVER['REMOTE_ADDR']);
if (isset($_POST['nume']) && isset($_POST['parola']) && isset($_POST['idm']) && isset($_POST['select1']) && isset($_POST['select2']) && isset($_POST['zi_nastere']) && isset($_POST['luna_nastere']) && isset($_POST['an_nastere']) && isset($_POST['sex']) && isset($_POST['stare']) && isset($_POST['interes']) && isset($_POST['descriere'])) {
// Se filtreaza datele pt. eliminare posibile spatii exterioare si tag-uri
$_POST = array_map("trim", $_POST);
$_POST = array_map("strip_tags", $_POST);
// Se verifica daca "magic_quotes_gpc()" este setat ON
// Daca e ON, se aplica stripslashes() pentru a nu se adauga de 2 ori '\' cand va fi aplicat "mysql_real_escape_string()"
if(get_magic_quotes_gpc()) { $_POST = array_map("stripslashes", $_POST); }
// Se verifica daca au fost completate corect toate campurile
// Daca au fost completate le preia in variabile, in caz contrar seteaza o variabila tip Array cu mesaj de eroare
// Verifica daca Numele are cel putin 3 caractere si maxim 12
if(strlen($_POST['nume'])>2 && strlen($_POST['nume'])<13) $nume = $_POST['nume'];
else $eroare[] = 'Numele de <b>Utilizator</b> trebuie sa contina intre 3 si 12 caractere';
// Verifica daca exista numele in baza de date //
if (strtolower($_POST['nume']) == $user_baza['nume']){
echo 'Acest nume de <b>Utilizator</b> exista pe site!';
} else
// Verifica daca exista numele in baza de date //
if (strtolower($_POST['idm']) == $user_baza['idm']){
echo 'Acest <b>Id de messenger</b> exista pe site!';
} else{
// Verifica daca parola are cel putin 3 caractere si maxim 50
if(strlen($_POST['parola'])>2 && strlen($_POST['parola'])<51) $parola = $_POST['parola'];
else $eroare[] = '<b>Parola</b> trebuie sa contina intre 3 si 50 caractere';
// Verifica daca id-ul de messenger are cel putin 5 caractere si maxim 50
if(strlen($_POST['idm'])>4 && strlen($_POST['idm'])<51) $idm = $_POST['idm'];
else $eroare[] = '<b>Id-ul de messenger</b> trebuie sa contina intre 5 si 50 caractere';
// Verifica daca a fost selectata o valoare pt. 'tara'
if(strlen($_POST['select1'])>2) $select1 = $_POST['select1'];
else $eroare[] = 'Nu ai ales <b>Tara si Orasul</b>';
// Verifica daca a fost selectata o valoare pt. 'oras'
if(strlen($_POST['select2'])>2) $select2 = $_POST['select2'];
else $eroare[] = 'Nu ai ales <b>Orasul</b>';
// Verifica daca a fost selectata o valoare pt. 'ziua de nastere'
if(strlen($_POST['zi_nastere'])>1) $zi_nastere = $_POST['zi_nastere'];
else $eroare[] = 'Nu ai ales <b>Ziua de nastere</b>';
// Verifica daca a fost selectata o valoare pt. 'luna de nastere'
if(strlen($_POST['luna_nastere'])>0) $luna_nastere = $_POST['luna_nastere'];
else $eroare[] = 'Nu ai ales <b>Luna de Nastere</b>';
// Verifica daca a fost selectata o valoare pt. 'anul de nastere'
if(strlen($_POST['an_nastere'])>2) $an_nastere = $_POST['an_nastere'];
else $eroare[] = 'Nu ai ales <b>Anul de Nastere</b>';
// Verifica daca a fost selectata o valoare pt. 'sex'
if(strlen($_POST['sex'])>2) $sex = $_POST['sex'];
else $eroare[] = 'Nu ai ales <b>Sexul</b>';
// Verifica daca a fost selectata o valoare pt. 'stare'
if(strlen($_POST['stare'])>2) $stare = $_POST['stare'];
else $eroare[] = 'Nu ai ales <b>Situatia amoroasa</b>';
// Verifica daca a fost selectata o valoare pt. 'interes'
if(strlen($_POST['interes'])>2) $interes = $_POST['interes'];
else $eroare[] = 'Nu ai ales <b>Interesul</b>';
// Verifica daca descrierea are cel putin 10 caractere si maxim 200
if(strlen($_POST['descriere'])>10 && strlen($_POST['descriere'])<201) $descriere = $_POST['descriere'];
else $eroare[] = '<b>Descrierea</b> trebuie sa contina intre 10 si 200 caractere';
// Verifica daca a fost selectata o poza
if(isset($_FILES['fileup']) && strlen($_FILES['fileup']['name']) > 1);
else $eroare[] = 'Nu ai ales <b>Poza</b>';
$max_size=500;
if($_FILES['fileup']['size'] < $max_size*1000);
else $eroare[] = '<b>Poza</b> trebuie sa fie de maxim 500 Kb';
// Daca nu exista nici un mesaj de eroare, filreaza datele cu mysql_real_escape_string() si le adauga in baza de date
// Altfel, in cazul vreunei erori, adauga in variabila $mesaj
if (!isset($eroare)) {
include('conectare.php'); // Include fisierul pt. conectare-selectare baza de dat
// Se aplica functia de filtrare mysql_real_escape_string()
$nume = mysql_real_escape_string(strtolower($nume));
$parola = mysql_real_escape_string(md5($parola));
$idm = mysql_real_escape_string(strtolower($idm));
$tara = mysql_real_escape_string($select1);
$oras = mysql_real_escape_string($select2); // la fel si la oras (nu modifica nici in sql)
$zi_nastere = mysql_real_escape_string($zi_nastere);
$luna_nastere = mysql_real_escape_string($luna_nastere);
$an_nastere = mysql_real_escape_string($an_nastere);
$sex = mysql_real_escape_string($sex);
$stare = mysql_real_escape_string($stare);
$interes = mysql_real_escape_string($interes);
$descriere = mysql_real_escape_string($descriere);
$ipreg = $_SERVER['REMOTE_ADDR'];
setlocale(LC_TIME, array('ro.utf-8', 'ro_RO.UTF-8', 'ro_RO.utf-8', 'ro', 'ro_RO', 'ro_RO.ISO8859-2'));
date_default_timezone_set('Europe/Bucharest');
$dtreg = strftime('%d-%B-%Y ora %H:%M:%S');
$ipvisit = $_SERVER['REMOTE_ADDR'];
setlocale(LC_TIME, array('ro.utf-8', 'ro_RO.UTF-8', 'ro_RO.utf-8', 'ro', 'ro_RO', 'ro_RO.ISO8859-2'));
date_default_timezone_set('Europe/Bucharest');
$dtvisit = strftime('%d-%B-%Y ora %H:%M:%S');
// Acum se adauga mai in siguranta aceste date in MySQL
$sql = "INSERT
INTO `membri` (`nume`, `parola`, `idm`, `tara`, `oras`, `zi_nastere`,
`luna_nastere`, `an_nastere`, `sex`, `stare`, `interes`, `descriere`,
`ipreg`, `dtreg`, `ipvisit`, `dtvisit`) VALUES ('$nume', '$parola', '$idm', '$tara', '$oras', '$zi_nastere', '$luna_nastere', '$an_nastere', '$sex', '$stare', '$interes', '$descriere', '$ipreg', '$dtreg', '$ipvisit', '$dtvisit')";
if (mysql_query($sql, $connect)) {
$mesaj = "
<div id=mesaj-succes-inregistrare>Inregistrarea a fost efectuata cu succes. Acum te poti loga in contul tau
<meta http-equiv='refresh' content='5; url=/profil-$nume.php' />";
$nume = 'exista'; $idm = 'idm exista';
} else $mesaj = '<div id=eroare-inregistrare>Datele nu au putut fi adaugate '. mysql_error(). '</div>';
mysql_close($connect);
}
else $mesaj = '<font color="red">'. implode('<br />', $eroare). '</font>';
}
}
echo $mesaj;
?>