ugrás a tartalomhoz

Adatfeltöltés

Met30 · 2005. Már. 18. (P), 02.39
Sziasztok!

Egy "kis" problémával küszködök pár napja, s nem igazán akar összejönni. A következőröl van szó.
Van egy PHP-Nuke -os portálom. Szeretnék csinálni egy új modult hozzá. Ez a modul az sql adatbázis egy tábláját használja, innen nyeri az információkat. A lekérdezések működnek is, azzal nincs egyenlőre probléma. Viszont ami a gondot okozza az, hogy php-s űrlap segítségével szeretném az adatokat felvinni az adatbázisba, s ez nem igazán működik. Mindig hibaüzenetet kapok. A kód a következő képpen néz ki:
<?php
if ( isset( $kat ) && isset( $alkat ) && isset( $ec ) && isset( $meret ) && isset( $hossz ) && isset( $szolam ) && isset( $nev )  )
	{
	$dbhiba = "";
	$vissza = adatbazis_bovit( $kat, $alkat, $ec, $meret, $hossz, $szolam, $nev, $dbhiba );
	if ( ! $vissza )
		print "Hiba: $dbhiba<BR>";
	else
		print "Köszönjük!";
	}
else {
	urlap_keszit();
	}

function adatbazis_bovit( $kat, $alkat, $ec, $meret, $hossz, $szolam, $nev, &$dbhiba )
	{
	$felhasznalo = "user";
	$jelszo = "jelszo";
	$adatbazis = "dbname";
	$kapcsolat = mysql_connect( "localhost", $felhasznalo, $jelszo);
	if ( ! $kapcsolat)
		{
		$dbhiba = "Nem lehet kapcsolódni a kiszolgálóhoz!";
		return false;
		}
	if ( ! mysql_select_db( $adatbazis, $kapcsolat ) )
		{
		$dbhiba = mysql_error();
		return false;
		}
$parancs = "INSERT INTO midi_dalok ( kat, alkat, ec, meret, hossz, szolam, nev )
	VALUES ( '$kat', '$alkat', '$ec', '$meret', '$hossz', '$szolam', '$nev' )";
	if ( ! mysql_query ( $parancs, $kapcsolat ) )
		{
		$dbhiba = mysql_error();
		return false;
		}
	return true;
	}

function urlap_keszit()
	{
	global $PHP_SELF;
	print "Kategória";
	print "<select name=\"kat\">\n";
	print "\t<option value=\"\">  \n";
	print "\t<option value=\"Dalrészletek\"> Dalrészletek\n";
	print "\t<option value=\"Komolyzene\"> Komolyzene\n";
	print "\t<option value=\"Teljes dalok\"> Teljes dalok\n";
	print "</select>\n";
	print "Alkategória";
	print "<select name=\"alkat\">\n";
	print "\t<option value=\" \">  \n";
	print "\t<option value=\"Disco\"> Disco\n";
	print "\t<option value=\"Komolyzene\"> Komolyzene\n";
	print "\t<option value=\"Magyar eloadók\"> Magyar eloadók\n";
	print "\t<option value=\"Pop\"> Pop\n";
	print "\t<option value=\"Rock\"> Rock\n";
	print "\t<option value=\"Örökzöld slágerek\"> Örökzöld slágerek\n";
	print "</select>\n";
	print "<form action=\"$PHP_SELF\" method=\"POST\">\n";
	print "Eloadó és számcím";
	print "<input type=\"text\" name=\"ec\"><p>";
	print "Fájl mérete (maszk: 00:00)";
	print "<input type=\"text\" name=\"meret\"><p>\n";
	print "Dal hossza (maszk: 00:00)";
	print "<input type=\"text\" name=\"hossz\"><p>\n";
	print "Szólamok száma (maszk 00)";
	print "<input type=\"text\" name=\"szolam\"><p>\n";
	print "Fájl neve";
	print "<input type=\"text\" name=\"nev\"><p>\n";
	print "<input type=\"submit\" value=\"Elküld\">\n</form>\n";
	}
?>
S amikor az elküldre klikkelek a következő hibaüzenetet kapom: Sorry, such file doesn't exist...
A tábla midi fájlokról tartalmaz információkat, de magát a fájlt nem ezzel töltöm fel. Csupán adatbővítésről lenne szó.

Ne kövezzetek meg ha alapdolgot kérdeztem, de most ismerkedem mégcsak a témával. Ezt a pár sort is a php 24 óra alatt könyvből vettem, s mégsem megy.

Ha valaki tudna segíteni mi a gond azt nagyon megköszönném.
 
1

Fájl hiba? Hol?

Anonymous · 2005. Már. 18. (P), 09.24
Nem teljesen világos, hogy honnan jön ez a such file doesn't exist hibaüzenet, mert nem látok egyetlen fájl műveletet sem... jó lenne pontosabban behatárolni a hiba helyét.

Más: úgy látom, hogy soha nem fog lefutni az adatbazis_bovit() függvény, mert a kategória és alkategória select-ek a form-on kívül vannak, viszont az értéküket ellenőrzi a script, mielőtt meghívná az adatbazis_bovit() függvényt.

Nadi
2

Adatbevitel

Met30 · 2005. Már. 18. (P), 11.33
Akkor pontosan leírom hogy néz ki a php tartalma. Bár amit lehagytam, az a rész szerintem független a működéstől. A meghívott fájlok mindegyike megtalálható a gyökérben.
<?php

if (!eregi("modules.php", $_SERVER[PHP_SELF])) { 
    die ("You can't access this file directly..."); 
} 

require_once("mainfile.php"); 
$module_name = basename(dirname(__FILE__)); 
/*get_lang($module_name);*/ 
/*$pagetitle = "- $module_name";*/ 
$index = 0; 

/*$subject = "$sitename "._TEMODULE."";*/ 
include("header.php"); 

OpenTable();

	$felhasznalo = "név";
	$jelszo = "jelszó";
	$adatbazis = "adatbázis";
	$kapcsolat = mysql_connect( "localhost", $felhasznalo, $jelszo);
	
if ( isset( $kat ) && isset( $alkat ) && isset( $ec ) && isset( $meret ) && isset( $hossz ) && isset( $szolam ) && isset( $nev )  )
	{
	$dbhiba = "";
	$vissza = adatbazis_bovit( $kat, $alkat, $ec, $meret, $hossz, $szolam, $nev, $dbhiba );
	if ( ! $vissza )
		print "Hiba: $dbhiba<BR>";
	else
		print "Köszönjük!";
	}
else {
	urlap_keszit();
	}

function adatbazis_bovit( $kat, $alkat, $ec, $meret, $hossz, $szolam, $nev, &$dbhiba )
	{

	if ( ! $kapcsolat)
		{
		$dbhiba = "Nem lehet kapcsolódni a kiszolgálóhoz!";
		return false;
		}
	if ( ! mysql_select_db( $adatbazis, $kapcsolat ) )
		{
		$dbhiba = mysql_error();
		return false;
		}
$parancs = "INSERT INTO midi_dalok ( kat, alkat, ec, meret, hossz, szolam, nev )
	VALUES ( '$kat', '$alkat', '$ec', '$meret', '$hossz', '$szolam', '$nev' )";
	if ( ! mysql_query ( $parancs, $kapcsolat ) )
		{
		$dbhiba = mysql_error();
		return false;
		}
	return true;
	}

function urlap_keszit()
	{
	global $PHP_SELF;
	print "<form action=\"$PHP_SELF\" method=\"POST\">\n";
	print "Kategória";
	print "<select name=\"kat\">\n";
	print "\t<option value=\"\">  \n";
	print "\t<option value=\"Dalrészletek\"> Dalrészletek\n";
	print "\t<option value=\"Komolyzene\"> Komolyzene\n";
	print "\t<option value=\"Teljes dalok\"> Teljes dalok\n";
	print "</select>\n";
	print "Alkategória";
	print "<select name=\"alkat\">\n";
	print "\t<option value=\" \">  \n";
	print "\t<option value=\"Disco\"> Disco\n";
	print "\t<option value=\"Komolyzene\"> Komolyzene\n";
	print "\t<option value=\"Magyar eloadók\"> Magyar eloadók\n";
	print "\t<option value=\"Pop\"> Pop\n";
	print "\t<option value=\"Rock\"> Rock\n";
	print "\t<option value=\"Örökzöld slágerek\"> Örökzöld slágerek\n";
	print "</select>\n";
	print "Eloadó és számcím";
	print "<input type=\"text\" name=\"ec\"><p>";
	print "Fájl mérete (maszk: 00:00)";
	print "<input type=\"text\" name=\"meret\"><p>\n";
	print "Dal hossza (maszk: 00:00)";
	print "<input type=\"text\" name=\"hossz\"><p>\n";
	print "Szólamok száma (maszk 00)";
	print "<input type=\"text\" name=\"szolam\"><p>\n";
	print "Fájl neve";
	print "<input type=\"text\" name=\"nev\"><p>\n";
	print "<input type=\"submit\" value=\"Elküld\">\n</form>\n";
	}

/*$parancs = "INSERT INTO midi_dalok ( kat, alkat, ec, meret, hossz, szolam, nev ) VALUES ( '$kat', '$alkat', '$ec', '$meret', '$hossz', '$szolam', '$nev' )";
mysql_query ( $parancs, $kapcsolat );
$azonosito = mysql_insert_id();
print "A dal a $azonosito szám alatt került be az adatbázisba.";*/

CloseTable(); 


include("footer.php"); 

?>
A válaszod második részét korrigáltam, s ez a figyelmetlenségemnek köszönhető. De a hiba korrigálása után is megmaradt a hibaüzenet. Milyen fájlt akarhat behívni amit nem talál?
3

Sorry, such file doesn't

Anonymous · 2005. Már. 19. (Szo), 12.26
Sorry, such file doesn't exist...

Gondolom ez egy Nuke -os hibauzenet. Az elso sorba rakj egy error_reporting(E_ALL); -t. Igy megkapod azt is , hogy melyik fajl hianyzik.

bongyi
4

Megoldódott

Met30 · 2005. Már. 19. (Szo), 15.32
Köszi a segítséget. Sikerült összehozni egy másik megoldást s azzal tökéletesen működik.