Autor Zpráva
arakon
Profil *
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
Premenné načítavaj cez $_GET["premenna"] alebo $_POST["premenna"] nie cez $premenna, potom by Ti to malo ísť
arakon
Profil *
moc sem tě nepochopil mužeš mi dát email? mohol by ses na to kouknout?
DoubleThink
Profil *
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 *
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 *
ří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
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 *
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
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 *
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
miesto: <?php htmlspecialchars($_SERVER['PHP_SELF']); ?>
napis: <?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>
arakon
Profil *
nic : - / když tam dám echo tak mi nezustane otevřený přepínač
arakon
Profil *
někdo nějakej nápad?
arakon
Profil *
já věděl že to je čudné :- / : - D
arakon
Profil *
nevíte jak bych to měl řešit tedka? nebo kdo by mi mohl pomoct? :-/ nevím comám dělat
siki
Profil *
čé čé 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ý.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0