[ Upss @ 07.08.2010. 20:44 ] @
Pomagajte...

Prvo evo skripte koja je krivac za sve:

Code:
<?php
    include "konekt.php";

    $naziv_txt_fajla = "kartica.txt";
    $datum_upisa = date("Y-m-d");

        mysql_query("TRUNCATE TABLE kartica") ;

        $fajl_citac = fopen($naziv_txt_fajla, "r");
        
        while (!feof($fajl_citac)) {
          $linija = fgets($fajl_citac);
          $linija_niz = explode("#",$linija);
          
          $sifra = $linija_niz[0];
          $naziv = $linija_niz[1];
          $adresa = $linija_niz[2];
          $saldo = $linija_niz[3];
          $datrac = $linija_niz[4];
          $iznrac = $linija_niz[5];
          $datupl = $linija_niz[6];
          $iznupl = $linija_niz[7];

          mysql_query("INSERT INTO kartica1 (sifra, naziv, adresa, saldo, datrac, iznrac, datupl, iznupl, datupis)
                     VALUES ('$sifra','$naziv','$adresa','$saldo','$datrac','$iznrac','$datupl','$iznupl','$datum_upisa')") ;

        }
        fclose($fajl_citac);
        
    $msg_poruka="uspijesno je izvrsen prenos podataka+1"; // + 1 Uspijesno, + 2 Upozorenje

    mysql_close($connection);

?>

Kao sto ste mogli da vidite citam txt fajl i iz njega liniju po liniju upisujem u neku MySQL tabelu. I ovo radi.
E sad sta je moj problem.
Kad sam prebacio na server i uradio prvi test napravio sam jednu gresku a to je da nisam dobro naveo naziv txt fajla. I zbog toga txt fajl pod imenom koje sam naveo nisam imao na serveru. I onda on nesto radi pa radi i nikad da stane ... i ja klik pa zatvorim browser.
Posle pogledam tabelu na serveru ona se i dalje puni. I velicina raste pa raste. Dok sam ja pogledao vec je imala preko milon slogova.
KAKO DA ZAUTAVIM OVO. Ova moja luda skripta kao da tamo na serveru i dalje radi.
Brisao sam tabelu. I tad stane. Kad je ponovo kreiram pocinje ponovo. Dobro dosjetio sam se da je obrisem pa kreiram tabelu sa novim imenom. Ali sta ako mi se to desi nekad i sa novom tabelom.

Ima li ko kavu ideju kako da ovo zaustavim. A ocigledno da mi je i skripta losa pa sta bi mogao da uradim da se to ne desi.

POZDRAV

[Ovu poruku je menjao Goran Rakić dana 07.08.2010. u 23:00 GMT+1]
[ AMD guy @ 07.08.2010. 20:59 ] @
Probaj ovo
Code:
        $fajl_citac = fopen($naziv_txt_fajla, "r");


da stavis u neki exception, da ako taj fajl ne postoji izbaci poruku o gresci.
[ aleksandar.dragojlovic @ 07.08.2010. 21:30 ] @
Skini skriptu, restartuj Apache i MySql, popravi skriptu...
[ Upss @ 07.08.2010. 22:55 ] @
Dobro, kod sam odmah zakrpio jednom provjerom da li postoji txt fajl:

Code:
if (file_exists($naziv_txt_fajla)) {
   ... onaj moj kod
       za citanje i upis
}else{
      $msg_poruka="fajl sa podacima nije prenesen na server +2"; // 1, Uspijesno + 2, Upozorenje
}

Sto se tice ove ideje za resetovanje apaca i MySql-a ja ne bi reko da ja imam ta ovlascenja na hosting serveru . To znam uraditi ma mom lokalnom racunaru ali ne znam kako se to radi na hosting serveru. I dalje ne znam kako da zaustavim ovu skriptu ili bilo koju koja bi mi izmakla kontroli kao ova.
[ Milos911 @ 08.08.2010. 00:19 ] @
Testiraj sve u lokalu pre postavljanja na hosting, a ako se vec zeznes pa postavis nesto kao to gedaj da ispunis uslov zbog kog taj loop konstantno radi. I pazi da ti ne suspenduju nalog na hostingu, jer to sto si sad uradio previse opterecuje server (sigurno vise od onoga sto shared hosting dozvoljava).
[ Miroslav Ćurčić @ 08.08.2010. 10:55 ] @
Da bi ti skript radio i nakon zatvaranja browsera, moras imati negde ignore_user_abort(true); uz eventualno dodat i set_time_limit(0);, verovatno tamo u konekt.php.

Ako si na shared hostingu ne mozes resetovati Apache, sacekaj, administratori na vecini hostinga sami povremeno opale restart.
[ Upss @ 08.08.2010. 18:19 ] @
Nemam sigurno ignore_user_abort(true), set_time_limit(0) ni u jednoj jedinoj skripti CMS-a. Poznajem svaku liniju koda. Evo kako izgleda konekt.php

Code:
<?php
$host = "localhost";

$user = "rrrrrrr";
$password = "ppppppp";
$database = "bbbbbbb_baza";

$connection = mysql_connect("$host","$user","$password")
          or die("Povezivanje neuspjesno.");

mysql_select_db("$database")
          or die("Baza nije dostupna.");

mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");

?>


Probao sam i danas kreirati ponovo tabelu koju ova pomenuta skripta i dalje puni tabelu. I njena velicina i dalje raste. Znaci ova skripta i danas na serveru radi. Kontaktirao bih ja i administratora ali me pokoleba ovaj sto rece mogli bi mi i da ukinu nalog zbog toga. Mada nije nista ucinjeno sa losom namjerom.
[ Goran Rakić @ 08.08.2010. 18:57 ] @
Javi se administratoru ili tehničkoj podršci firme koja ti nudi hosting i ispričaj im sve detalje. Pitaj i kako je moguće da ta skripta ostane neograničeno pokrenuta i da li je to uopšte uzrok problema? Možda ti je ostao negde ovaj skript ili funkcija pa ga neko treći iznova poziva?

Pogledaj i rezultat sledećeg koda:
Code (php):

<?php
  passthru("ps auxw|grep php");
?>
 


To bi trebalo da ti da listu aktivnih procesa na serveru koji sadrže php u naredbi. Tu će se pojaviti i tvoja skripta ako je PHP instaliran kao CGI, a ne kao Apache modul.