ne trygva link kym DB chrez PHP?id=x

13 отговора 0 прегледа
#1

ne trygva link kym DB chrez PHP?id=x

Moje li nqkoi da podskaje zashto ne raboti slednoto:
----------------------------------------------------------------

<a href="../service/phpmysql/action.php?LinkID=1">ICQ</a>
----------------------------------------------------------------
$result=mysql_query("select * from links
where LinkID = '$_GET[LinkID]'");
----------------------------------------------------------------
A tova e db:
LinkId | LinkDescription | LinkURL
¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
1 |sajt |[линк]

Nqkakvi idei?
10х







Редактирано от vlad на

Отговор
в отговор на vlad #2

Re: ne trygva link kym DB chrez PHP?id=x

поне да кажеш каква грешка ти дава или колко са ти редове в резултата.

бе то аз вече се сетих за едни скобички и кавички, ама все пак да видим твоите идеи

proWebCrafter.com
Отговор
в отговор на Bълk #3

Re: ne trygva link kym DB chrez PHP?id=x

Blagodarq za otgovora.

Ami kato natisna linka mi se otvarq praznica stranica, s adres [линк]

I nikakva druga aktivnost (ili pasivnost ) ne se nablyudava.

Отговор
в отговор на vlad #4

Re: ne trygva link kym DB chrez PHP?id=x

уж не пиша на латиница, ама май ще трябва, че да разбереш какво искам

$result=mysql_query("select * from links where LinkID = '$_GET[LinkID]'");

if(!$result) echo mysql_error();

echo mysql_num_rows($result);

и кажи какво става, че празна страница е празна страница и върху не пише защо е празна

proWebCrafter.com
Отговор
в отговор на Bълk #5

Re: ne trygva link kym DB chrez PHP?id=x

Ami sega sled kato klikna linka(id=1, id=2, id=100 i.t.d.) mi se otvarq prazna stranica i edinstvenoto neshto, koeto izliza e 1, v leviq goren ygyl :(
No tova pone mi dava nadejda:)
Kakvo mislish, che ne e v red?

Отговор
в отговор на vlad #6

Re: ne trygva link kym DB chrez PHP?id=x

Погледни какво имаш в action.php.

Пробвай и да замениш това:

<a href="../service/phpmysql/action.php?LinkID=1">ICQ</a>

С това:

$result_row = mysql_fetch_array ($result);
echo '<a href="' . $result_row["LinkURL"] . '">ICQ</a> ';


Отговор
в отговор на croesus #7

Re: ne trygva link kym DB chrez PHP?id=x

Ama tova (<a href="../service/phpmysql/action.php?LinkID=1">ICQ</a>
) mi se namira v otdelen .htm fail, tam dali moje da vkaram predlojenoto ot Croesus
($result_row = mysql_fetch_array ($result);
echo '<a href="' . $result_row["LinkURL"] . '">ICQ</a> ';)
(i ako moje, kak)

Редактирано от vlad на

Отговор
в отговор на vlad #8

Re: ne trygva link kym DB chrez PHP?id=x

По-скоро погледни какво точно имаш в action.php

След като резултатът от mysql_num_rows е 1 (както уточнихте с Вълк), значи проблемът не е в SQL заявката, или поне на пръв поглед изглежда така.

Тогава според мен в action.php трябва да има следния код:

$result=mysql_query("select * from links where LinkID = '$_GET[LinkID]'");
$result_row = mysql_fetch_array ($result);
header('Location:' . $result_row["LinkURL"]);


Без да променяш другите файлове.

Отговор
в отговор на croesus #9

Re: ne trygva link kym DB chrez PHP?id=x

Blagodarq , croesus
izglejda s tova shte stane
samo che zasega poluchavam takava greshka:

Warning: Cannot modify header information - headers already sent by (output started at /home/www/mysite.com/service/phpmysql/config.php:2) in /home/www/mysite.com/service/phpmysql/action.php on line 10

a tova e moqt action.php

<?php
include 'config.php';
include 'opendb.php';


$result=mysql_query("select * from links where LinkID = '$_GET[LinkID]'");


$result_row = mysql_fetch_array ($result);
header('Location:' . $result_row["LinkURL"]);

mysql_query($sql);
include 'closedb.php';
?>

a tova e moqt config.php


<?php
//PHP Configuration

$dbhost = 'db.myhosting.com';
$dbuser = 'myname';
$dbpass = 'password;
$dbname = 'mydbname';
?>

Tova tuk podseshta li kakvo trqbva da se opravi?
Thanks

Отговор
в отговор на vlad #10

Re: ne trygva link kym DB chrez PHP?id=x

header('Location:' . $result_row["LinkURL"]);
exit;

след това последните 2 реда ги махаш освен ако не ползваш непрекъсната връзка с бозата.

бе тоя action.php по този начин в който си е направо дупката в сигурността през която може да се вкара един тир с проститутки , ама ти си знаеш.

proWebCrafter.com
Отговор
в отговор на Bълk #11

Работи!

Вълк, croesus, blagodarq!
Proraboti neshtoto deto go mycha ot dni.
Inache za sigurnostta - shte proucha vyprosa.
A vsushnost prroblemyt e v izpolzvaneto n action.php ili v tova, kak go potroih?
Pak mersi.

Отговор
в отговор на vlad #12

Re: ne trygva link kym DB chrez PHP?id=x

Охх, сбърках. Header трябва да е на първо място във файла, а не след mysql_query и става грешка.

Значи направи например в opendb.php функция

function get_url ($url_id)
{
$result=mysql_query("select * from links where LinkID = '$url_id'");
$result_row = mysql_fetch_array ($result);
return $result_row["LinkURL"];
}


а action.php остави така:

<?php
include 'config.php';
include 'opendb.php';

header('Location:' . get_url["LinkURL"]);


Така трябва да стане.

Отговор
в отговор на croesus #13

Re: ne trygva link kym DB chrez PHP?id=x

I po tozi nachin se povisha sigurnostta, kakto spomenа Вълк, taka li?

Редактирано от vlad на

Отговор
в отговор на vlad #14

Re: ne trygva link kym DB chrez PHP?id=x

Не,
ето ти нещо като за начало :
function sqlValue($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") {
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "int":
$theValue = ($theValue !== "") ? intval($theValue) : "NULL";
break;
}
return $theValue;
}

употреба - $query = sprintf("SELECT * FROM table WHERE id = %s, sqlValue($id, 'int'));
$query = sprintf("SELECT * FROM table WHERE title = %s, sqlValue($title, 'text'));

За другото си купи нещо книжка, явно така няма да се научиш - не свиквах да да кърпиш колкото да тръгне, защото след години се учиш сам на грешни неща, а количеството на некачествения код расте... в крайна сметка страдаш ти и хората които един ден може да го преправят :) Аз съм минал по този път вече

... Всеки да прави, каквото му се пие ...
Отговор