Problema INSERT date in MySQL

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

Problema INSERT date in MySQL

Am facut un cod, si nu imi trimite datele la baza de date.
Uite aici codu PHP:

Cod: Selectaţi tot

<?php 
// Se defineste un Header pt. a utiliza setul de caractere cu format UTF-8
header('Content-type: text/html; charset=utf-8');

$mesaj = '';          // Variabila folosita pt. mesajul ce va fi afisat pt. utilizator

// Se verifica daca sunt primite datele de la formular
if (isset($_POST['nume']) && isset($_POST['idm']) && isset($_POST['sex']) && isset($_POST['parola']) && isset($_POST['tara']) && isset($_POST['nastere']) && isset($_POST['stare']) && isset($_POST['interes']) && isset($_POST['oras']) && isset($_POST['descriere']) && isset($_POST['poza'])) {
  // 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 40
  if(strlen($_POST['nume'])>2 && strlen($_POST['nume'])<41) $nume = $_POST['nume'];
  else $eroare[] = 'Utilizator trebuie sa contina intre 3 si 40 caractere';

  // Verifica daca id-ul de messenger e scris corect
  if(preg_match('/^([a-zA-Z0-9]+[a-zA-Z0-9._%-])$/', $_POST['idm'])) $idm = $_POST['idm'];
  else $eroare[] = 'Completati corect id-ul de messenger';

  // Verifica daca a fost selectata o valoare pt. 'sex'
  if(strlen($_POST['sex'])>2) $sex = $_POST['sex'];
  else $eroare[] = 'Selectati Sex-ul';

    // 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)) {



$host = '';         // Serverul MySQL
$utilizator = '';         // Utilizator pt. server
$parola = '';         // Parola utilizator
$numebd = '';         // Numele bazei de date

// Conectarea la server
$conn = mysql_connect($host, $utilizator, $parola);
if (!$conn) { echo '<h4>Conectare nereusita la MySQL</h4>'; }

// Selectarea bazei de date
if (!mysql_select_db($numebd, $conn)) { echo '<h4>Baza de date nu a putut fi selectata deoarece : '. mysql_errno(). ' : '. mysql_error().'</h4>'; }
mysql_set_charset('utf8', $conn);         // Setarea pt. lucru cu format UTF-8

    // Se aplica functia de filtrare mysql_real_escape_string()
    $nume = mysql_real_escape_string($nume);
    $idm= mysql_real_escape_string($idm);

    // Acum se adauga mai in siguranta aceste date in MySQL
    $sql = "INSERT INTO `membri` ('id', 'nume', 'idm', 'parola', 'tara', 'oras', 'nastere', 'sex', 'stare', 'descriere', 'interes', 'referal') VALUES ('$id', '$nume' , '$idm' , '$parola', '$tara', '$oras', '$nastere', '$sex', '$stare', '$descriere', '$interes', '$referal', '$ip', '$data')";
    if (mysql_query($sql, $conn)) {
      $mesaj = '<font color="blue">Datele au fost adaugate</font>';
      $nume = '';  $email = '';
    }
    else $mesaj = '<font color="red">Datele nu au putut fi adaugate '. mysql_error(). '</font>';

    mysql_close($conn);
  }
  else $mesaj = '<font color="red">'. implode('<br />', $eroare). '</font>';
}

echo $mesaj;
?>
Nu da eroare nu nimic, pur si simplu dau trimite (inregistreaza-ma ) si da refresh la pagina.

MarPlo Mesaje:4343
In primul rand la acest cod trebuie sa fii sigur ca pentru fiecare: isset($_POST['nume_caseta']) exista in formular o caseta cu: name="nume_caseta". Poti sa adaugi un "echo" dup a if() ca sa vezi daca trece de acel if().
Iar greseli, sunt la aceasta linie de cod:

Cod: Selectaţi tot

$sql = "INSERT INTO `membri` ('id', 'nume', 'idm', 'parola', 'tara', 'oras', 'nastere', 'sex', 'stare', 'descriere', 'interes', 'referal') VALUES ('$id', '$nume' , '$idm' , '$parola', '$tara', '$oras', '$nastere', '$sex', '$stare', '$descriere', '$interes', '$referal', '$ip', '$data')";
- Sunt 12 coloane adaugate, dar 14 valori la VALUES(...). Ar trebui sa fie egale ca numar, si in aceeasi ordine coloana si valoare pentru ea.
- Nu sunt definite toate variabilele trecute pt Insert, de exemplu: $id, $stare.

cadou Mesaje:328
Imi da eroarea asta:

Cod: Selectaţi tot

Parse error: syntax error, unexpected T_ECHO, expecting '(' in /home/a5485229/public_html/test.php on line 8
Am modificat, dar la fel, tot nu-mi merge , uite aici, link: scapadeplictiseala.tk/aaa .

steell Mesaje:190
salut
M-am uitat putin prin sursa paginilor tale de pe site si vreau sa-ti zic ca sunt zeci de greseli de exemplu nu sunt taguri inchise, lipsesc ghilimele la link-uri, ai inchis tagul textarea cu slash / in tagul de deschidere si apoi ai mai adaugat si </textarea> (sterge acel slash), si mai sunt si alte greseli. Recomand sa folosesti mozilla firefox si sa instalezi pluginul html validator de la pagina, URL:
addons.mozilla.org/en-US/firefox/addon/html-validator/
Apesi add to firefox si urmezi pasii, crede-ma ca te ajuta foarte mult deoarece este imposibil sa scri un cod fara absolut nici o gresala, chiar si un singur caracter poate strica multe, stiu din experienta. dupa ce il instalezi dai click dreapta in pagina respectiva si view source si o sa-ti arate toate greselile si erorile din pagina. Dupa ce faci treaba asta, refa codul de mai sus daca nu merge nici atunci si incearca sa-l faci pe bucati. Adica scri o parte, o testezi, daca functioneaza mergi mai departe si tot asa pana la final.

cadou Mesaje:328
imi pare rau sa te anunt dar nu e bun de nimic acel addons de la mozilla ... am creat un fisier gol , fara continut si scria ca am 2 erori. .... de unde acele erori daca nu am nimic pe acea fila ? fara niciun caracter ..

steell Mesaje:190
Am creat si eu un fisier gol si in avertizari spune ca nu am tagul title, html, etc. E si normal sa dea acele erori din moment ce nu am aceste taguri (principale).
Crede-ma ca este foarte folositor pluginul, poate sa-ti confirme si marplo, doar incearca sa lucrezi cu el ceva timp si o sa iti dai seama. Doar vezi ce zice fiecare eroare de HTML (nu PHP), si mergi la linai respectiva pentru a o rezolva.

Subiecte similare