• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zawiesza strone, czemu?

VPS Starter Arubacloud
0 głosów
209 wizyt
pytanie zadane 10 października 2017 w PHP przez Raster22 Obywatel (1,640 p.)

Więc tak, mam strone ktora pobeira plik txt. z plliku wyciaga dane i dodaje do tabeli. Dziala to bez odswiezania. Ajax.

XAMP: Jak plik jest w htdocs w folderze z plikami to ladnie wszystko dziala. Ale jesli wezme plik z pulpitu to wywala mi strone  sie wszystko zacina. Dodatkowo jesli te dwa same pliki sa w htdocs i drugi na pulpicie to wtedy z pulpitu plik dziala. Coś jakby nazwe pobieralo ale tresc szukalo w plikach programu. Wiecie przez co tak może być?

<?php
	$polaczenie = @new mysqli("localhost","root","","uczelnia");
	if ($polaczenie->connect_errno!=0)
		{
			echo "Error".$polaczenie->connect_errno;
		}
	else
		{
		function czas_wczyt()
			{ 
				list($usec, $sec) = explode(' ', microtime()); 
				return ((float)$usec + (float)$sec); 
			}
		$time_start = czas_wczyt();
		$tytul = $_FILES["file"]["name"]; 
		$plik=fopen($tytul, "r");  																					
		$zawartosc = '';
		while(!feof($plik))   																						
			{
				$linia = fgets($plik);
				$zawartosc .= $linia;   																							
			}
		$linie = explode("\n", $zawartosc);   										
		for($nr=0; $nr<count($linie); $nr++)         								
			{
				$numer_linii = $linie[$nr];
				if(trim($linie[$nr])==null)																												
			{
				break;																												
			}
		else
			{
				$tablica = explode(";", $numer_linii);
				
				$imie=$tablica[0];
				$nazwisko=$tablica[1];
				$przedmiot=$tablica[2];
				$data=$tablica[3];
				$ocena=$tablica[4];
				$id_ucznia=$tablica[5];
				
				$sprawdz = "select id_ucznia from studenci where id_ucznia='$id_ucznia'";
				$wyslij = $polaczenie->query($sprawdz);
				$wynik = $wyslij->num_rows;
				
		if($wynik == 1)
		{
			$zapytanie = $wyslij = "UPDATE studenci SET imie = '$imie', nazwisko = '$nazwisko', przedmiot = '$przedmiot', data_egzaminu
			= '$data', ocena_egzaminu = '$ocena' WHERE id_ucznia='$id_ucznia'";
		}
		else
		{
			$zapytanie = "INSERT INTO studenci (imie,nazwisko,przedmiot,data_egzaminu,ocena_egzaminu,id_ucznia) VALUES ('$imie','$nazwisko',
			'$przedmiot','$data','$ocena','$id_ucznia')";
		}
		$do_bazy = $polaczenie->query($zapytanie);
		}}
		$time_stop = czas_wczyt();
		$roznica = $time_stop - $time_start;
		
		$liczby = preg_replace('/[^0-9]/', '', $zawartosc);
		$ilosc_liczb= strlen(preg_replace('/[^0-9]/', '', $zawartosc));  
		echo 'W pliku jest <b>'.$ilosc_liczb. '</b> cyfr';
		$cyfry = str_split($liczby, 1);  //
		sort($cyfry);
		$y = count($cyfry);
		$x = ($y / 2 ) ; 
		if($y % 2)
		   $mediana = $cyfry[$x];
		else
		   $mediana = ($cyfry[$x] + $cyfry[$x - 1]) / 2;
		echo " oraz mediana tych cyfr to <b>".$mediana.'</b>'; 
		
		$zapytanie_hist = "INSERT INTO historia (nazwa,czas) VALUES ('$tytul','$roznica')";
		$do_bazy_hist = $polaczenie->query($zapytanie_hist);

	}
	

?>
<?php
include('tlumacz.php');
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
</head>
 <body>
	<div id="left_menu">
		  <div id="jezyk">
				<p style="margin-top:4px; padding-bottom:-15px;"><?php  echo translate('wybierz_jezyk'); ?></p>
				<form style="margin-top:-11px;" action="zmiana_jezyka.php">
					<button name="lang" value="pl">Polski</button>
					<button name="lang" value="en">English</button>
				</form>
			
			</div>
			<div id="strefa">
				<p style="margin-top:4px"><?php  echo translate('strefa'); ?>
					<script type="text/javascript">
						var d = new Date();
						var n = d.getTimezoneOffset();
						var y = n/60;
						var x = y.toFixed(2)
						var str = new String(x);
						var tab = str.split(".");
						document.write('UTC ',tab[0],':',tab[1]);
					</script>
					</br>
					<?php  echo translate('jezyk'); ?>
				</p>
			</div>
		<div id="historia">
			<?php include "select.php";
			?>
		</div>
	</div>
	
	<script type="text/javascript">
		setInterval( "refreshShoutbox()", 2000 );
		function refreshShoutbox ( )
		{
		$('#historia').load('select.php');
		}
	</script>
	
	<div id="right_menu">
		<h1> 	<?php  echo translate('witaj'); ?></h1>
		<h2> 	<?php  echo translate('wybierz_plik'); ?> <h2>
	 
		<form action ="skrypt.php" id="dane"  method="post" enctype="multipart/form-data">   
			<div id="file-input" style="">
				<input type="file" name="file" id="file"/>
				<span class="input-value"><?php  echo translate('przegladaj_pliki'); ?> <img id="img" src="image/lupa.png"/></span>
				<script type="text/javascript">
					$(function(){
						$('#file-input > input').on('change',function(){
							var inputValue = $(this).val();
						$('.input-value').html(inputValue);
						});
					});
				</script>
			</div> </br>
			<input type="submit" value="<?php  echo translate('wyslij'); ?>" id="submit"/>
			</br></br>
     
		</form>
    
	<div id="liczby"> </div>
   
    <script type="text/javascript">
		$("#dane").submit(function(){
		 
			var formData = new FormData(this);
		 
			$.ajax({
				url: "skrypt.php",
				type: 'POST',
				data: formData,										
				async: false,
				success: function (data) {
				 document.getElementById("liczby").innerHTML =data;
				},
				cache: false,
				contentType: false,
				processData: false
				});
				return false;
			});
	</script>
	</div>
     
</body>
 
 
</html>

 

1 odpowiedź

+2 głosów
odpowiedź 10 października 2017 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
Pierwsze wrażanie jakie mam to nie chce mi się patrzeć na ten kod.
Po pierwsze zrób porządek w kodzie i oddziel kod JS-a od HTML-a, bo ja osobiście nie mogę na to patrzeć.
komentarz 10 października 2017 przez Raster22 Obywatel (1,640 p.)
To nie patrz.
3
komentarz 10 października 2017 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
Szanuj czas innych, jak chcesz żeby Ci pomogli.

Bo żeby przebrnąć przez takie spaghetti to potrzeba 3 razy więcej poświęcić czasu, żeby zrozumieć coś z takiego kodu.
komentarz 10 października 2017 przez Raster22 Obywatel (1,640 p.)
problem tkwił w " $tytul = $_FILES["file"]["name"]; " powinno być tmp_name. I sorry, poniosło mnie bo juz sie pierdziele z tym cały dzien :D
komentarz 11 października 2017 przez grzybu Obywatel (1,760 p.)
staraj się na przyszłość utrzymać kod w sposób łatwy do odczytu podzielny na pliki i z komentarzami to pomaga w wyszukiwaniu problemów bo za miesiąc jestem przekonany że sam nie będziesz wiedział o co w tym chodzi.

Polecam też wykonywać małe testy jednostkowe które pomagają zlokalizować błędy od razu

Podobne pytania

0 głosów
1 odpowiedź 211 wizyt
pytanie zadane 27 czerwca 2022 w C i C++ przez MichaelM Bywalec (2,440 p.)
–1 głos
3 odpowiedzi 606 wizyt
pytanie zadane 30 maja 2021 w PHP przez KFC Użytkownik (610 p.)
+1 głos
1 odpowiedź 219 wizyt
pytanie zadane 19 czerwca 2020 w PHP przez Bakkit Dyskutant (7,600 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...