Problema inserare in bd

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Avatar utilizator
trif
Mesaje:500

Problema inserare in bd

salut, am si eu o problema cu care ma confrunt de multa vreme, am codul acesta:

Cod: Selectaţi tot

//********************* valideaza campurile din formularul student
function valideaza_formular($editare = false) {
   $errors = array();
   if(! $editare) {
   if(cantare_existenta($_POST['urlf'], $_POST['denumire'], $_POST['categoria'])) { $errors[] = 'Cantarea deja existent. Va rugam verificati';}
   }
   //********* verifica numele sa fie in formatul corect
   if(empty($_POST['urlf']))  { $errors[] = 'campul UPLOAD FISIER nu este completat corect';}
   if(empty($_POST['denumire']))  { $errors[] = 'campul DENUMIRE nu este completat corect';}
   if(empty($_POST['categoria']))  { $errors[] = 'campul CATEGORIA nu este completat corect';}
   return $errors;
}
function cantare_existenta($urlf, $denumire, $categoria) {
   global $connection;
   $query = "SELECT urlf, denumire, categoria FROM cantari_ppt WHERE urlf='$urlf'";
   $result_set = run_query($query);
   return(mysql_num_rows($result_set) >0) ? true: false;
}

function confirm_query($query) {
	if(!$query) {
		die("Eroare " . mysql_error());
	}
}
function run_query($query) {
	global $connection;
	$result_set = mysql_query($query);
	confirm_query($result_set);
	return $result_set;
}
function mysql_prep($value) {
	$magic_quotes_active = get_magic_quotes_gpc();
	$new_enough_php = function_exists('mysql_real_escape_string');
	if ($new_enough_php) {
		if ($magic_quotes_active){
			$value = stripslashes($value);
		}
		$value = mysql_real_escape_string($value);
	}
	else {
		$value = addslashes($value);
	}
	return $value;
}
codul de mai sus imi verifica daca s-au mai introdus in bd datele si daca s-au introdus ma anunta si nu mai le introduce inca o data.
mai jos am codul cu inserare

Cod: Selectaţi tot

<?php 
if(isset($_POST['submit'])) {
	$errors = valideaza_formular();
	if(empty($errors)) {
//******* pregateste valorile sa fie bagate in BD
$autor = ''.$_SESSION['utilizator'].'';
$categoria = mysql_prep($_POST['categoria']);
$uploadpath = 'cantari/'. $categoria. '/';  
$denumire=mysql_prep($_POST['denumire']);
$data=$_POST['data'];
$data = date("Y-m-d H:i:s ");
$allowtype = array('ppt');
$urlf= mysql_prep($uploadpath. basename( $_FILES['urlf']['name']));
 if(strlen($denumire)<1)
         {
           print "Nu este nici o cantare!";
         }
         else
         {
       if(move_uploaded_file($_FILES['urlf']['tmp_name'], $urlf))  {
        }
		//******* baga in BD
		$query = "Insert into cantari_ppt (denumire, data, urlf, categoria, autor) values('{$denumire}', '{$data}', '{$urlf}', '{$categoria}', '{$autor}')";
		$result_set = mysql_query($query);
		confirm_query($result_set);
			if(mysql_affected_rows() == 1) {
				$message = "<img src='imagini/atentie.jpg' align='left'>&nbsp;&nbsp;&nbsp;<b>Nota: </b><br>
&nbsp;&nbsp;&nbsp;Cantarea:<b> ". basename( $_FILES['urlf']['name']). "</b> a fost Uploadata cu succes. <br>
&nbsp;&nbsp;&nbsp;El va fi analizat de catre moderator inainte ca sa devina disponibil in cadrul site-ului.
<br>&nbsp;&nbsp;&nbsp;Documentul uploadat va fi analizat in aproximativ 2-3 zile lucratoare
<br>&nbsp;&nbsp;&nbsp;Echipa Cantari-videoproiector iti multumeste pentru ajutorul acordat !";
				$message .='<br/>' . '<a href="adaugare_cantare.php" class="button">Cantare noua</a>';
				$disabled = 'disabled = "disabled"';
			}
		}

			$message = 'CATEGORIA si CHEIA nu au putut fi introduse sau mai sunt o data. <br> Va rugam incercati din nou.</p>';
		}
	}
	
?>
		<?php
		if(!empty($message)) {
			echo '' . $message . '';
		}
	?>

Cod: Selectaţi tot

<form action="adaugare_cantare.php" method="post" id="idf" enctype="multipart/form-data">
 Upload fisier: <input type="file" name="urlf" onchange="checkName(this, 'fname', 'submit')" /><br>
 Denumire fisier: <input type="text"  value="" name="denumire" id="fname" /><br>
Selectati CATEGORIA: <select name="categoria" id="categoria" tabindex="55" >
                    	<option value="0"> --- </option>
                    	<?php
$id=0;
$sql="SELECT * FROM categorie ORDER BY denumire_categorie ASC"; 
$res=mysql_query($sql);
while($rand=mysql_fetch_array($res)) {
   echo '<option value="' . $rand['cheie'] . '" ';
echo '>' . $rand['denumire_categorie'] . '</option>';
}
 ?>
                        </select><br>
 <input type="submit" name="submit" id="submit" value="Adauga cantare" disabled="disabled" />
</form>
faza este ca nu stiu unde am gresit ca nu imi insereaza si nici nu imi zice nimic. uitati-va va rog si vedeti care este problema. astept raspuns. multumesc anticipat. cu stima trif
M-am hotarat!
De ce sa fiu trist?
Oricum nu intereseaza pe nimeni...!
Mai bine sunt fericit si ii enervez pe toti cu fericirea mea!
http://www.cantaricrestine.ro
---> cu stima Trif

MarPlo Mesaje:4343
Salut
M-am uitat putin pe cod, dar nu stiu care e problema (prea multe functii de verificat).
Pot da doar niste indicatii cum se verifica.

Vezi daca face upload, daca pe server salveaza fisierul. Fiindca insertu-ul e adaugat sa fie executat daca upload-ul e True. Daca nu face upload, vezi daca directorul de upload are permisiuni de scriere CHMOD 0775 (sau 0777), daca are, trebuie verificat amanuntit, puse conditiile if() si cu un else{} in caz ca if() e false, ca sa vezi unde se opreste.
De asemenea, verificat cu echo ce returneaza acele functii, si ce contine variabila cu adresa pt. upload.
Pt. erori, la inceputul fisierului sa fie codul urmator (care activeaza afisarea oricarei erori).

Cod: Selectaţi tot

ini_set('display_errors',1);
error_reporting(E_ALL); 

Subiecte similare