Autor | Zpráva | ||
---|---|---|---|
arakon Profil * |
#1 · Zasláno: 17. 7. 2006, 09:58:38
mám problém mám napsaý script a nechce mi jet na některých hosting servrech náhodou nevíte proč že? neháže to chybu jen postisknutí formuláře blikneto na bílé pole a nic vic nic to neudělá : - /
třeba na pipni.cz jede freehosting a na placenem cesky-hosting.cz nejede : - / nevím proč vím že bez zdrojáku mi moc nepomůžete ale nechci ho tu zveřejnovat je není zrvona na 5 řádků je tu někdo ochoten pomoct a poslal bych mu ho na email? thx |
||
tiso Profil |
#2 · Zasláno: 17. 7. 2006, 10:06:50
Premenné načítavaj cez $_GET["premenna"] alebo $_POST["premenna"] nie cez $premenna, potom by Ti to malo ísť
|
||
arakon Profil * |
#3 · Zasláno: 17. 7. 2006, 10:12:01
moc sem tě nepochopil mužeš mi dát email? mohol by ses na to kouknout?
|
||
DoubleThink Profil * |
#4 · Zasláno: 17. 7. 2006, 10:22:08 · Upravil/a: DoubleThink
Aby ti mohl někdo pomoci, tak napřed potřebuje vědět:
* ve kerém jazyce vůbec píšeš? * pokud v PHP - co ti píše parser? (po lokálním povolení error reportingu) * jakou verzi PHP máš na ČH aktivní? |
||
arakon Profil * |
#5 · Zasláno: 17. 7. 2006, 10:27:22
na cesky-hosting je php4 na pipni taky ten jejich script sem nezapojoval jen sem to zkoušel jestli to tam jede nebo ne na pipni ano dal sem to na hosting kde se vypysijí chyby normálně a testuji na něm vše je placený netron.cz mám tam už i jiné věci a a jedou mi jak na ceskyhosting tak pipni
jen tadle věc hodí prázdné okno |
||
arakon Profil * |
#6 · Zasláno: 17. 7. 2006, 10:39:36
říkám mi zřejmě mužete pomoct jen když se na to někdo kouknete vám to pošlu na mail
|
||
tiso Profil |
#7 · Zasláno: 17. 7. 2006, 11:41:57
Ty niečo chceš tak by si sem mal dať ten kód, nie aby Ti ešte niekto písal svoju mailovú adresu... Komplikuješ si vyriešenie svojho problému - keby si to sem dal, tak už to máš dávno vyriešené... Pokiaľ trváš na poslaní mailom, tak sem už radšej nepíš, diskusné fórum je o diskutovaní v rámci diskusného fóra a nie o mailoch alebo icq...
|
||
arakon Profil * |
#8 · Zasláno: 17. 7. 2006, 12:18:54
já jenže je to dlouhé , dá mto teda tu:
formular.php <?php if(isset($_POST['tbl_name'])) { require('imp.php'); $tbl_name = get_magic_quotes_gpc() ? stripslashes(trim($_POST['tbl_name'])) : trim($_POST['tbl_name']); if(isset($_FILES['datafile'])) { $append = $_POST['append'] == 1 ? true : false; $err = import($tbl_name, $_FILES['datafile']['tmp_name'], $append); } else { $err = drop_table($tbl_name); } } ?> <?php if($err !== true) { if(!is_array($err)) { echo '<p>'.$err.'</p>'; } else { echo "<ul>\n"; foreach($err as $error) { echo '<li>'.$error."</li>\n"; } echo '</ul>'; } } else { echo '<p>Operace byla úspěšně dokončena.</p>'; } ?> <form action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post"> <fieldset> <legend>Odstranění tabulky z databáze</legend> <label for="tbl_name">Název tabulky:</label> <input id="tbl_name" type="text" name="tbl_name" value="polozky" /> <br /> <input type="submit" value="Odstranit tabulku" onclick="this.style.visibility = 'hidden'" /> </fieldset> </form> <form action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post" enctype="multipart/form-data"> <fieldset> <legend>Import dat do databáze</legend> <label for="tbl_name">Název tabulky:</label> <input id="tbl_name" type="text" name="tbl_name" value="polozky" /> <br /> <label for="datafile">Soubor s CSV daty:</label> <input id="datafile" type="file" name="datafile" /> <br /> <label for="append">Připojit k existující tabulce?</label> <input id="append" type="checkbox" name="append" value="1" checked="checked" /> <br /> <input type="submit" value="Provést import" onclick="this.style.visibility = 'hidden'" /> </fieldset> </form> imp.php <?php /* Konfigurační údaje databáze */ define('DB_SERVER', ''); define('DB_SERVER_PORT', ''); define('DB_NAME', ''); define('DB_USER', ''); define('DB_PASS', ''); define('DB_CHARSET', 'Cp1250'); /* Funkce na import CSV dat z daného souboru do dané tabulky */ function import($tbl_name, $file_name, $use_existing = false) { /* Připojení k serveru */ if(false === $link = @mysql_connect(DB_SERVER.':'.DB_SERVER_PORT, DB_USER, DB_PASS, true)) { return 'Nepodařilo se připojit k MySQL serveru: '.mysql_error(); } /* Otevření databáze */ if(false === @mysql_select_db(DB_NAME, $link)) { $err = 'Nepodařilo se otevřít databázi: '.mysql_error($link); @mysql_close($link); return $err; } /* Nastavení charset */ @mysql_query('SET CHARACTER SET '.DB_CHARSET); /* Kontrola jestli tabulka již existuje */ $exists = exists($tbl_name, $link); if($exists && !$use_existing) { $err = 'Tabulka '.$tbl_name.' již v databázi existuje!'; @mysql_close($link); return $err; } if(!$exists && $use_existing) { $err = 'Tabulka '.$tbl_name.' v databázi neexistuje!'; @mysql_close($link); return $err; } /* Otevření CSV souboru */ if(false === $csv_file = @fopen($file_name, 'r')) { $err = 'Nepodařilo se otevřít soubor '.$file_name.'!'; @mysql_close($link); return $err; } /* Kontrola a načtení záhlaví */ if(feof($csv_file)) { $err = 'Soubor '.$file_name.' je prázdný!'; @fclose($csv_file); @mysql_close($link); } $headers = explode(';', trim(fgets($csv_file))); $column_count = count($headers); if(!$use_existing) { /* Vytvoření tabulky pro CSV data */ if(false === create_table($tbl_name, $headers, $link)) { $err = 'Nepodařilo se vytvořit tabulku '.$tbl_name.': '.mysql_error($link); @fclose($csv_file); @mysql_close($link); return $err; } } else { /* Kontrola existující tabulky vůči CSV */ if(false === $result = @mysql_query('SHOW COLUMNS FROM '.$tbl_name, $link)) { $err = 'Nepodařilo se získat seznam sloupců: '.mysql_error($link); @fclose($csv_file); @mysql_close($link); return $err; } if(@mysql_num_rows($result) != $column_count + 1 /* primární klíč */) { $err = 'Počty sloupců si nejsou rovny!'; @fclose($csv_file); @mysql_close($link); return $err; } $i = 0; mysql_fetch_row($result); // naprázdno kvůli primárnímu klíči while($row = mysql_fetch_row($result)) { if($headers[$i++] != $row[0]) { $err = 'Názvy sloupců nesouhlasí!'; @fclose($csv_file); @mysql_close($link); return $err; } } } /* Čtení souboru a vkládání do tabulky */ $errs = array(); $line_no = 1; while(!feof($csv_file)) { $line_no++; set_time_limit(10); // prodloužení doby běhu skriptu o 10 vteřin (doby se sčítají, takže by mělo stačit s VELKOU rezervou) $line = trim(fgets($csv_file)); if(empty($line)) // přeskakuje prázné řádky (jde hlavně o poslední prázdný řádek) continue; $data = explode(';', $line); if(count($data) != $column_count) { // kontrola struktury řádku (počtu sloupců) array_push($errs, 'Chybný řádek v CSV: '.$line_no); // záznam chybného řádku a přeskočení na další continue; } if(false === insert_row($tbl_name, $data, $link)) { array_push($errs, 'Chyba při vkládání řádku '.$line_no.': '.mysql_error()); // záznam chyby MySQL a pokračování dalším řádkem continue; } } @fclose($csv_file); @mysql_close($link); return count($errs) == 0 ? true : $errs; } /* Pomocná funkce na vytvoření tabulky v databázi */ function create_table($tbl_name, $headers, $link) { $sql = 'CREATE TABLE `'.str_replace('`', '', $tbl_name).'` ('; $sql.= 'PrimaryKey BIGINT NOT NULL AUTO_INCREMENT, '; foreach($headers as $header) { $sql.= '`'.str_replace('`', '', $header).'` TEXT NOT NULL, '; } $sql.= 'PRIMARY KEY (PrimaryKey))'; // Lze přidat ještě definici typu tabulky - já to nechávám na defaultním nastavení databáze return @mysql_query($sql, $link); } /* Pomocná funkce pro vložení řádku do tabulky */ function insert_row($tbl_name, $data, $link) { foreach($data as &$value) { $value = '\''.mysql_real_escape_string($value, $link).'\''; // ošetření dat } $sql = 'INSERT INTO '.$tbl_name.' VALUES(NULL, '.implode(', ', $data).')'; return @mysql_query($sql, $link); } /* Funkce na kontrolu existence tabulky */ function exists($tbl_name, $link = null) { $old_link = $link; if($link == null) { /* Připojení k serveru */ if(false === $link = @mysql_connect(DB_SERVER.':'.DB_SERVER_PORT, DB_USER, DB_PASS, true)) { return 'Nepodařilo se připojit k MySQL serveru: '.mysql_error(); } /* Otevření databáze */ if(false === @mysql_select_db(DB_NAME, $link)) { $err = 'Nepodařilo se otevřít databázi: '.mysql_error($link); @mysql_close($link); return $err; } /* Nastavení charset */ @mysql_query('SET CHARACTER SET '.DB_CHARSET); } if(false === $result = @mysql_query('SHOW TABLES', $link)) { $err = 'Nepodařilo se získat seznam tabulek: '.mysql_error($link); @mysql_close($link); return $err; } $exists = false; while($row = mysql_fetch_row($result)) { if($row[0] == $tbl_name) { $exists = true; break; } } if($link != $old_link) { @mysql_close($link); } return $exists; } /* Funkce na odstranění tabulky z databáze */ function drop_table($tbl_name, $link = null) { $old_link = $link; if($link == null) { /* Připojení k serveru */ if(false === $link = @mysql_connect(DB_SERVER.':'.DB_SERVER_PORT, DB_USER, DB_PASS, true)) { return 'Nepodařilo se připojit k MySQL serveru: '.mysql_error(); } /* Otevření databáze */ if(false === @mysql_select_db(DB_NAME, $link)) { $err = 'Nepodařilo se otevřít databázi: '.mysql_error($link); @mys |
||
tiso Profil |
#9 · Zasláno: 17. 7. 2006, 12:40:18
Prečo tam máš 2 formuláre, keď ich spracovávaš jednou stránkou? Veď Ti stačí jeden, rozdelený cez fieldset na 2 časti... Ak Ti to nepôjde ani potom, tak napíš, budem sa v tom vŕtať ďalej...
|
||
arakon Profil * |
#10 · Zasláno: 17. 7. 2006, 12:51:02
furt nic mi to příde spíše jak by z těch funkcí ty informace nešly ven jak by vubec nepracovaly : -D prostě třeba změním heslo do DB a ono to udělá to asmé a nenapíše to
Nepodařilo se připojit k MySQL serveru |
||
tiso Profil |
#11 · Zasláno: 17. 7. 2006, 13:54:34
miesto: <?php htmlspecialchars($_SERVER['PHP_SELF']); ?>
napis: <?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> |
||
arakon Profil * |
#12 · Zasláno: 17. 7. 2006, 15:31:57
nic : - / když tam dám echo tak mi nezustane otevřený přepínač
|
||
arakon Profil * |
#13 · Zasláno: 17. 7. 2006, 15:58:04
někdo nějakej nápad?
|
||
arakon Profil * |
#14 · Zasláno: 18. 7. 2006, 10:21:11
já věděl že to je čudné :- / : - D
|
||
arakon Profil * |
#15 · Zasláno: 19. 7. 2006, 13:56:55
nevíte jak bych to měl řešit tedka? nebo kdo by mi mohl pomoct? :-/ nevím comám dělat
|
||
siki Profil * |
#16 · Zasláno: 20. 7. 2006, 14:56:37
čé čé napadlo mě nedá se náhodou na servru zablokovat import do mysql db? jak z phpmyadmina tak třeba zvenčí? si myslím jeslti to nemáš blokované jenže jak se ta funkce nazyva nebo tak to ti musi poradit někdo jiný.
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0