Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przyjazny link, Przyjazny link
mzakrzewski
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 29.12.2016

Ostrzeżenie: (0%)
-----


Witam

Bawię się tym i szczerze to z głupiałem

Może mi ktoś powiedzieć co robię źle

1) Utworzyłem bazę danych o nazwie np url a w niej tabele przyjazne_linki

kod htaccess:

Kod
Kod:
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z-_0-9]+)$ podstrona.php?view=$1 [L,QSA]
RewriteRule ^([a-zA-Z-_0-9]+)$ index.php?view=$1 [L,QSA]



kod łączenia z bazą danych:

Kod
Kod:
<?php

$DB_HOST = 'localhost';
$DB_USER = 'xxx';
$DB_PASS = 'xxx';
$DB_NAME = 'xxx';

try{
$db_con = new PDO("mysql:host={$DB_HOST};dbname={$DB_NAME}",$DB_USER,$DB_PASS);
$db_con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
echo $e->getMessage();
}


kod linku w menu:

Kod
Kod:
<a href="<?php echo $row['nazwa_linku']; ?>"><?php echo $row['nazwa'];?></a>


kod php:

Kod
Kod:
<?php
$rekody_z_bazy_danych = $db_con->prepare('SELECT * FROM przyjazne_linki WHERE nazwa_linku = '.$_GET['view'].';');
$rekody_z_bazy_danych->execute();

if($rekody_z_bazy_danych->rowCount() > 0)
{
while($row=$rekody_z_bazy_danych->fetch(PDO::FETCH_ASSOC))
{
extract($row);
?>

<li>
<?php echo $row['nazwa'] .' <strong>to id = '.$row['id']. '</strong>';?>
</li>

<?php
}
}

?>



Efekt: Odwiedź moją stronę

Może mi ktoś pomóc ?
Mam problem z pobranie zawartości z bazdy danych z danego linku np link: strona-startowa powinno się wyświetlić np nazwa, treść itd.

Ten post edytował mzakrzewski 29.12.2016, 15:28:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Ten print_r na stronie to z czego?
Go to the top of the page
+Quote Post
mzakrzewski
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 29.12.2016

Ostrzeżenie: (0%)
-----


<?php
function parse_path() {
$path = array();
if (isset($_SERVER['REQUEST_URI'])) {
$request_path = explode('?', $_SERVER['REQUEST_URI']);

$path['base'] = rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/');
$path['call_utf8'] = substr(urldecode($request_path[0]), strlen($path['base']) + 1);
$path['call'] = utf8_decode($path['call_utf8']);
if ($path['call'] == basename($_SERVER['PHP_SELF'])) {
$path['call'] = '';
}
$path['call_parts'] = explode('/', $path['call']);

$path['query_utf8'] = urldecode($request_path[1]);
$path['query'] = utf8_decode(urldecode($request_path[1]));
$vars = explode('&', $path['query']);
foreach ($vars as $var) {
$t = explode('=', $var);
$path['query_vars'][$t[0]] = $t[1];
}
}
return $path;
}

$path_info = parse_path();
echo '<pre>'.print_r($path_info, true).'</pre>';
?>



Ten post edytował mzakrzewski 29.12.2016, 15:48:39
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Po pierwsze sprawdz czy $_GET['view'] zawiera to co powinno zawierac.
Po drugie masz blad zapytania wiec nic dziwnego ze nie dziala. Wyswietl sobie blad zapytania, wyswietl sobie wygenerowane zapytanie a wszystko bedzie jasne.

ps: przenosze
Go to the top of the page
+Quote Post
mzakrzewski
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 29.12.2016

Ostrzeżenie: (0%)
-----


&_GET[view]

działa gdyby była taka sytuacja

że np link.php?=id1
wtedy wyświetla zawartość

a gdy zmienimy na przyjazny link to niestety nic nie wyświetla.

A możesz napisać mi gdzie owy błąd występuję ?

po wstawieniu

Kod
ini_set( 'display_errors', 'On' );
error_reporting( E_ALL );


nic mi się nie wyświetla

Ten post edytował mzakrzewski 29.12.2016, 15:59:21
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Napisalem ci dwie proste rzeczy do zrobienia. Nie zrobiles ani jednej
Go to the top of the page
+Quote Post
mzakrzewski
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 29.12.2016

Ostrzeżenie: (0%)
-----


Cytat(mzakrzewski @ 29.12.2016, 15:54:45 ) *
&_GET[view]

działa gdyby była taka sytuacja

że np link.php?=id1
wtedy wyświetla zawartość

a gdy zmienimy na przyjazny link to niestety nic nie wyświetla.

A możesz napisać mi gdzie owy błąd występuję ?

po wstawieniu

Kod
ini_set( 'display_errors', 'On' );
error_reporting( E_ALL );


nic mi się nie wyświetla

Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Po raz ostatni prosze:
1) pokaz co zawieta $_GET['view],
2) Wyswietl sobie jak wyglada wygenerowane zapytanie
3) Mowilem o bledach bazy a nie o bledach php. Jak nie wiesz gdzie sa bledy bazy to zapraszam do manuala do dzialu PDO bo wlasnie PDO uzywasz.

To sa naprawde proste rzeczy i wypadaloby troche je ogarniac
Go to the top of the page
+Quote Post
mzakrzewski
post
Post #9





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 29.12.2016

Ostrzeżenie: (0%)
-----


dobra mam

błąd

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'o' in 'where clause'' in /home/nowo/public_html/daniel/podstrona.php:90 Stack trace: #0 /home/nowo/public_html/daniel/podstrona.php(90): PDOStatement->execute() #1 {main} thrown in /home/nowo/public_html/daniel/podstrona.php on line 90


linia 90

Kod
<?php
                $rekody_z_bazy_danych = $db_con->prepare('SELECT * FROM przyjazne_linki WHERE nazwa_linku = '.$_GET['view'].';');
                $rekody_z_bazy_danych->execute(); // linia 90

                if($rekody_z_bazy_danych->rowCount() > 0)
                {
                    while($row=$rekody_z_bazy_danych->fetch(PDO::FETCH_ASSOC))
                    {
                        extract($row);
                        ?>

                        <li>
                            <?php echo $row['nazwa'] .' <strong>to id = '.$row['id']. '</strong>';?>
                        </li>

                        <?php
                    }
                }

                ?>


Ten post edytował mzakrzewski 29.12.2016, 16:05:34
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Super to teraz wez w koncu zrob jeszcze punkt 1 i 2.
Go to the top of the page
+Quote Post
mzakrzewski
post
Post #11





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 29.12.2016

Ostrzeżenie: (0%)
-----


Array ( [view] => o-tworzeniu-stron-internetowych-i-a-i-e )
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




To punk1. Prosilem jeszcze o punkt 2 (IMG:style_emoticons/default/smile.gif)

ps: ja wiem gdzie masz blad, ja chce, bys sam doszedl do tak prostej rzeczy (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
viking
post
Post #13





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Nigdy nie rób czegoś takiego:
  1. $db_con->prepare('SELECT * FROM przyjazne_linki WHERE nazwa_linku = '.$_GET['view'].';');

Używasz prepare a jednocześnie umożliwiasz wstrzyknięcie dowolnego kodu do zapytania.
Go to the top of the page
+Quote Post
mzakrzewski
post
Post #14





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 29.12.2016

Ostrzeżenie: (0%)
-----


tzn że jak powinno wyglądać zapytanie ?
tzn że nie powinno się używać w tan sposób w ogóle ?

Ten post edytował mzakrzewski 29.12.2016, 16:22:21
Go to the top of the page
+Quote Post
viking
post
Post #15





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Dokumentacja twoim przyjacielem. Jest tam pełno przykładów jak używać prawidłowo prepare.
Go to the top of the page
+Quote Post
mzakrzewski
post
Post #16





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 29.12.2016

Ostrzeżenie: (0%)
-----


no to pozostaje mi dokumentacja

dziękuję za poświęcony czas (IMG:style_emoticons/default/smile.gif)

Pozdrawiam

Problem rozwiązany (IMG:style_emoticons/default/smile.gif)

Wiec temat do zamknięcia (IMG:style_emoticons/default/smile.gif)

ps. Dziękuję za wskazówki (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 04:37