Skocz do zawartości
Zaloguj się, aby obserwować  
Fajfi

Problem z działaniem pliku php na VPS-ie.

Polecane posty

Witajcie!

 

Mam pewien problem z instalacją php na serwerze. Zawsze robiłem to z tego poradnika: http://www.blueman.p...cja-serwera.pdf i wszystko śmigało jak trzeba. Kupiłem od kumpla parę skryptów i jest pewien problem, skrypt który ma aktualizować informację w bazie danych nie działa na vpsie (http://wklej-link.pl/cron.php) ale już na przykład na hostingu dzielonym z directadminem działo i to bardzo dobrze (fajfi.aey.pl/cron.php). Więc pomyslałem że zainstaluję sobie jakiś panel hostingowy i niestety dalej ten plik nie działa (obecnie na serwie jest Open Panel) nie wiem co robić, pomóżcie. Proszę nie sugerować się domenami one są tylko na okres testu. Chodż obydwie strony wyglądają inaczej to kod w pliku cron.php i funkcje.php jest ten sam.

 

 

<meta name="generator" content="Namo WebEditor">
<?
function polacz()
{
$host='xxxxx';
$user='xxxxx';
$pass='xxxxx';
$baza='xxxxx';
if (mysql_connect($host, $user, $pass) && mysql_select_db($baza)) return true;
else return false;
}

function czytaj_rss($tytul,$id,$licz='7',$tryb='0')
{
global $numer;$zap=mysql_query("SELECT * FROM `$id` ORDER BY id DESC LIMIT 0, $licz");
if ($zap) {$tytul=strtoupper($tytul);
$p=rand(1,50);
echo("<div class=\"rss1\">\n<div class=\"maintitle\">\n<img src=\"include/ico.png\" alt=\"\"> $tytul<br></div>\n");if ($tryb=='0')
{
while ($wyn=mysql_fetch_array($zap))
{
echo("<div class=\"title\"><a href=\"$wyn[link]\" target=\"_blank\" rel=\"clearbox(960,,600,,click)\"><b>$wyn[title]</b></a><br /><br />\"$wyn[description]\"<a href=\"$wyn[link]\" target=\"_blank\" rel=\"clearbox(960,,600,,click)\"><b> Czytaj więcej...</b></a><hr size=\"1\" style=\"color:#DFDFDF\"></div>\n\n");
}}
else
{
while ($wyn=mysql_fetch_array($zap))
{
echo("<div class=\"title\"><a href=\"$wyn[link]\" rel=\"clearbox(960,,600,,click)\"><b>$wyn[title]</b></a> <a href=\"$wyn[link]\ rel=\"clearbox(960,,600,,click)\"><i>więcej...</i> </a><br /><br /><hr size=\"1\" style=\"color:#DFDFDF\"></div>\n\n");
}}
echo("</div>\n\n");
if ($numer % 3 == 0) echo("</div>\n\n<div class=\"rss2\">\n\n");
return true;
}
else { echo '<span id="potwierdz">Error: '.mysql_error().'</span><br />'; return false; }}

//bezpieczne zapytania
function zapytanie($query,$typ='0') {
if ($typ=='1') $query=mysql_escape_string(mysql_query($query));
else { $query=htmlspecialchars(strip_tags($query)); $query=mysql_escape_string(mysql_query($query)); }if ($query) return true;
else return false;
}


function aktualizuj_rss($adres,$id) {if (zapytanie("SELECT * FROM `$id`")) {
// dodawanie newsaini_set("user_agent", $_SERVER['SERVER_NAME']);
$xml = @simplexml_load_file($adres);
if ($xml){
$ile=1;
foreach($xml->xpath('//item') as $item)
{
if ($ile<8)
{
$description=strip_tags($item->description);
if (zapytanie("INSERT INTO `$id` (`id`, `link`, `title`, `description`) VALUES ( NULL, '$item->link', '$item->title', '$description' );"))
echo 'OK<br />';
else echo '<span id="potwierdz">Error: '.mysql_error().'</span><br />';
}
$ile++;
}
return true;
}
else
{return false;
}
}else
//dodawanie tabeli{
if(!(zapytanie("CREATE TABLE `$id` (
 `id` int(11) NOT NULL auto_increment,
 `link` text NOT NULL default '',
 `title` text NOT NULL default '',
 `description` text NOT NULL default '',
 PRIMARY KEY  (`id`));")))
aktualizuj_rss($adres,$id);}
}

function porzadkuj($id) {
$ile=mysql_fetch_array(mysql_query("SELECT id from `$id` ORDER BY id DESC LIMIT 1"));
$ile=(intval($ile['id'])-40);if (mysql_query("DELETE FROM `$id` WHERE `id` < $ile")) return true;
else return false;
}
?>

 

 

W logach wyskakiwało coś o linijce 67 czyli:

else { $query=htmlspecialchars(strip_tags($query)); $query=mysql_real_escape_string(mysql_query($query)); }

 

Jestem zdziwiony że skrypt odpowiednio działa na directadminie a na vpsie już nie, próbowałem różnych konfiguracji i poddaję się. Proszę o pomoc.

Edytowano przez Fajfi (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

W logach wyskakiwało coś o linijce 67 czyli:

else { $query=htmlspecialchars(strip_tags($query)); $query=mysql_real_escape_string(mysql_query($query)); }

 

To coś co wyskakiwało to co to było?

 

Z drugiej strony linijka $query=mysql_real_escape_string(mysql_query($query)); jest mistrzostwem świata w beznadziejności programowania.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W logach mam coś takiego:

Warning: mysql_escape_string() expects parameter 1 to be string, resource given in /home/open-panel/sites/www.wklej-link.pl/public_html/funkcje.php on line 67

 

Najlepsze jest to że directadmin nie ma żadnego błędu w logach.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A dlaczego miałby DA mieć jakikolwiek błąd w logach?

Przecież po pierwsze to warning a nie error, a po drugie to warning php, który nie ma nic wspólnego z DA.

 

Przetłumacz sobie ten komunikat błędu, sprawdź w dokumentacji php jaki typ parametru przyjmuje funkcja podana w tym warningu. Zresztą ten warning wynika właśnie ze źle napisanego skryptu, o którym pisałem wyżej.

 

A to, że na jednym serwerze się nie pokazuje a na drugim się pokazuje wynika z różnej konfiguracji php (error_reporting i/lub display_errors - http://www.php.net/m...nfiguration.php)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dziwi mnie to że na serwerze z DA ten plik działa tak jak powininien i wypełnia baze danymi które są potem na stronie a właśnie na VPS-ie już to nie działa, ale i tak dzięki za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jak już tak bardzo chcesz tego używać, to zamień wspominaną linijkę na

else { mysql_query(mysql_real_escape_string(strip_tags($query))); }

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×