Błąd w lini której nie ma [php&mysql]

0

hej, jestem początkujący w php ale chcę zrobić dodawaniu obrazka na serwer i dodanie jego nazwy do bazy danych lecz wyrzuca mi błąd w lini 75 a wszystkich linii jest 74. I nie mogę znaleźć błędu ;/ Będę wdzięczny za pomoc ;)

<?php	
	function pokaz() {
   			 echo ('<div align="center" style="font-family:Courier; font-color: green;margin-top:100px;"><table width="600" border="2" bordercolor="green"><td>');
			 echo ('<p><table><td>Plik <strong>'.$p_nazwa_zm.'</strong> został dodany |</td><td><div style="margin-top:12px;"><form action="index.html" method="POST"><input type="submit" value=" Wróć " ></form></div></p></table>');
	      		
			 }
			 
   	$p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku
	$p_typ=$_FILES['plik']['type']; // typ pliku
	$p_nazwa=$_FILES['plik']['name']; // nazwa pliku
	$p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku

	//wycinamy rozszerzenie z pobieranego pliku
	$p_roz= array_pop(explode(".", $p_nazwa));

	/* odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca 
	             po przecinku/dzielimy przez 1204*1024 by było w MB*/
	$max_size=round(($_POST['max_file_size']/1048576),3)."MB";


	//zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB
	$poj_MB=round(($p_pojemnosc/1048576),2).'MB'; 

	//kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku
	//$p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;
	$p_nazwa_zm=strtolower($p_nazwa);
	$folder="galery/";

	//---Kolorki HTML---
	$k_cze="<font color=#ff0000>";
	$f_koniec="</font>";
	$k_nieb="<font color=#0000ff>";
	
	if ($p_pojemnosc <= 0)
 	 {
	    echo ("Plik jest pusty nie mogę go przesłać <b>".$k_cze.$p_nazwa." ".$poj_MB.$f_koniec."</b><br />");
	    echo "<a href=index.html>Wracaj ...</a>";
	    exit;
  	}

	if ($poj_MB > $max_size)
  	{	
    		echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />");
      	 	echo "<a href=index.html>Wracaj ...";
    		exit;
  	 }

	if (file_exists($folder.$p_nazwa_zm))
  	{
    		echo ("Plik o nazwie ".$p_nazwa_zm." jest już na serwerze!<br />");
    		echo "<a href=index.html>Wracaj ...";
    		exit;
  	}
  	else 

        	if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm)) { 
                exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');}
                else
                {	/* Laczenie sie z Baza Danych */
                  	$host="*******"; // Nazwa hosta.
  			$db_user="****"; // Nazwa uzytkownika - MySQL.
  			$db_password="********"; // Haslo do bazy.
  			$database="******"; // Nazwa bazy.
    			mysql_connect($host,$db_user,$db_password);
    			mysql_select_db($database);
    			$zapytanie = "INSERT INTO 'galeria' VALUES ($p_nazwa._zm,'');
			$zapytaj = mysql_query($zapytanie); 
    			


    		pokaz();	

		}
?>

</span>
0

Tak na moje oko brakuje klamry w przedostatnim bloku else, ale mógłbyś napisać jaki to błąd :-).

0

dodałem klamry i dalej to samo ;/
a bład wygląda tak:

Parse error: syntax error, unexpected $end in C:\xampp\htdocs\test\dodaj.php on line 76

Linia się zwiększyła o jeden po dodaniu klamry.

0

Cudzysłów przy zapytaniu $zapytanie = "INSERT INTO 'galeria' VALUES ($p_nazwa._zm,'');

Nie zamknąłeś.

0

Dzięki bardzo ;-) czasem przydaje się rzucenie okiem doświadczonych programistów ;) Pozdrawiam

0

Chyba żartujesz - to nie jest problem programistyczny - na forum.php.pl od razu miał byś zamknięty temat i jakieś punkty ostrzeżenia - tu ludzie jeszcze nie stracili cierpliwości.
Ale do rzeczy - użyj edytora z porządnym podświetleniem składni (notepad++/eclipse/netbeans/cokolwiek), takie błędy powinieneś od razu sam widzieć.

0

Zenku, czasami przydaje się choćby edytor z kolorowaniem składni. Nawet kolorowanie składni z forum bywa pomocne. Włączysz je tutaj, jeśli zamiast samego znacznika < code > (muszę dodać niepotrzebne spacje w znacznikach, żeby forum tego nie interpretowało jako tagi) zastosujesz < code=NAZWA_JEZYKA >. W Twoim przypadku < code=php > (bez tych spacji!). Wygląda to tak:

<?php       
        function pokaz() {
                            echo ('<div align="center" style="font-family:Courier; font-color: green;margin-top:100px;"><table width="600" border="2" bordercolor="green"><td>');
                         echo ('<p><table><td>Plik <strong>'.$p_nazwa_zm.'</strong> został dodany |</td><td><div style="margin-top:12px;"><form action="index.html" method="POST"><input type="submit" value=" Wróć " ></form></div></p></table>');
                             
                         }
                         
           $p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku
        $p_typ=$_FILES['plik']['type']; // typ pliku
        $p_nazwa=$_FILES['plik']['name']; // nazwa pliku
        $p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku

        //wycinamy rozszerzenie z pobieranego pliku
        $p_roz= array_pop(explode(".", $p_nazwa));

        /* odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca
                     po przecinku/dzielimy przez 1204*1024 by było w MB*/
        $max_size=round(($_POST['max_file_size']/1048576),3)."MB";


        //zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB
        $poj_MB=round(($p_pojemnosc/1048576),2).'MB';

        //kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku
        //$p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;
        $p_nazwa_zm=strtolower($p_nazwa);
        $folder="galery/";

        //---Kolorki HTML---
        $k_cze="<font color=#ff0000>";
        $f_koniec="</font>";
        $k_nieb="<font color=#0000ff>";
       
        if ($p_pojemnosc <= 0)
          {
            echo ("Plik jest pusty nie mogę go przesłać <b>".$k_cze.$p_nazwa." ".$poj_MB.$f_koniec."</b><br />");
            echo "<a href=index.html>Wracaj ...</a>";
            exit;
          }

        if ($poj_MB > $max_size)
          {       
                    echo("Plik jest za duży maksymalnie można wysłać <b>".$k_cze.$max_size.$f_koniec."</b>"." .Plik wysyłany ma rozmiar <b><i>".$k_nieb.$poj_MB.$f_koniec."</b></i><br />");
                       echo "<a href=index.html>Wracaj ...";
                    exit;
           }

        if (file_exists($folder.$p_nazwa_zm))
          {
                    echo ("Plik o nazwie ".$p_nazwa_zm." jest już na serwerze!<br />");
                    echo "<a href=index.html>Wracaj ...";
                    exit;
          }
          else

                if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm)) {
                exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');}
                else
                {        /* Laczenie sie z Baza Danych */
                          $host="*******"; // Nazwa hosta.
                          $db_user="****"; // Nazwa uzytkownika - MySQL.
                          $db_password="********"; // Haslo do bazy.
                          $database="******"; // Nazwa bazy.
                            mysql_connect($host,$db_user,$db_password);
                            mysql_select_db($database);
                            $zapytanie = "INSERT INTO 'galeria' VALUES ($p_nazwa._zm,'');
                        $zapytaj = mysql_query($zapytanie);
                           


                    pokaz();       

                }
?>

Zauważ proszę, że stringi są pokolorowane na czerwono. Na końcu skryptu czerwony zaczyna się od "INSERT INTO ... i powinien kończyć się w tej samej linijce, a kończy się... nigdzie! Do końca pliku jest czerwień. To znaczy, że nie domknąłeś stringu.

Więc biegiem po edytor z kolorowaniem składni. LEĆ. I nie, nie ignoruj tej rady, nie klep dalej w Notatniku, nie uśmiechaj się pod nosem tylko leć do Google po ten cholerny edytor. To jest po prostu mus. Eclipse PDT ma kolorowanie składni, a jeśli szukasz czegoś bardzo lightowego, to taki VIM też je ma (jest też wersja dla Windows). O ile pamiętam, Notepad++ jest niezły dla newbies i też koloruje składnię, choć sam go już od dość dawna nie używam.</span>

0

insert chyba ma tez inna skladnie?

INSERT INTO osoby (idOs,imie) VALUES (NULL,'Adam')

0

Nie, taka wersja jest poprawna. Przynajmniej w MySQL. Można nie wymieniać pól do których się wstawia, ale wtedy trzeba coś wstawić do wszystkich.

1 użytkowników online, w tym zalogowanych: 0, gości: 1