Wątek przeniesiony 2014-09-28 20:30 z PHP przez dzek69.

Nie potrafię odczytać danych z tabeli MySQL

0

Witam,
Mam problem odnośnie odczytania rekordów z tabeli w bazie danych.
Kod mojego skryptu wygląda tak:

<?php
include("connect.php");

if(isset($_GET['user'])){

    $name = $_GET['user'];

    $select_query = "SELECT * FROM `users` where user_name='$name'"  or die (mysql_error());

    $run_query = mysql_query($select_query);

    while($row=mysql_fetch_array($run_query)){
    $row['user_id'];
    $row['user_upr'];
    }
    }
    ?>
        <?php
session_start();
?>

Twoja nazwa uzytkownika to: <b><font color="red" size="5"> <?php echo "$name"; ?></font></b>
<p> twoje uprawnienia na forum to: <?php echo $user_upr; ?> </p>
<p> 0 - uzytkownik, 1= administrator</p>
<p> <a href="../index.php"> Strona Glowna </a></p>

Skrypt pobiera nazwę użytkownika w linku wcześniej, stąd te


if(isset($_GET['user'])){
$name = $_GET['user'];

ale nie o to chodzi.
Po połączeniu z bazą danych i pobraniu reszty rekordów użytkownika według jego nazwy, nie da się do nich odwołać.

Błąd występujący na profile.php :

Notice: Undefined variable: user_upr in C:\xampp\htdocs\gameover\user\profile.php on line 25

Próbowałem połączyć się z bazą danych na różne sposoby, ale po prostu nie chce mi to trybić.
Od razu mówię, że dane do połączenia z bazą danych są w connect.php i znajdują się w odpowiednim miejscu i mają wypisane na pewno dobre dane.

Jeśli ktoś będzie w stanie mi pomóc, będę wdzięczny.
Pozdrawiam.

2

Undefined variable: user_upr mówi to panu coś ?

0

zainteresuj sie PDO, bo masz SQL Injection wielki jak słoń.

0

Undefined variable: user_upr

Tak, mówi mi to tyle, że nie wyciągnęło danych z rekordu user_upr.
Błąd jest wywołany odwołaniem się do

$user_upr 

na dole strony, ponieważ nie potrafi zdefiniować co to znaczy, a nie potrafi dlatego, że nie pobrało go z bazdy danych.
Ten rekord ma służyć do uprawnień użytkownika w przyszłości.

Ciekawostką jest to, że jeżeli zamienię

  $select_query = "SELECT * FROM `users` where user_name='$name'"  or die (mysql_error()); 

na $select_query = "SELECT * FROM users " or die (mysql_error());


 To wczytuje całą tą tabelę, razem z user_upr z takim szczegółem, że wczytuje tylko ostatnio zarejestrowanego użytkownika, a nie tego, którego ma poszukiwać według imienia, które jest zdefiniowane w linku i nie wiem w jaki sposób to zrobić. 
Zrobiłem cały panel administratora, czyli :
- rejestracja + login,
- dodawanie posta,
- usuwanie posta,
- edycja posta,

Do edycji posta, potrzebowałem użyć podobnego połączenia z bazą danych, bo wiadomo, że jeśli mamy 10 postów, to musi mi znaleźć ten, który chcę zedytować.
I działa to na tej samej zasadzie, z tym, że edycja działa, a to niestety nie.

Jakieś sugestie? bo na prawdę już nie mam pomysłów.

> zainteresuj sie PDO, bo masz SQL Injection wielki jak słoń.

Póki co się uczę, a to jest dla mnie bardziej czytelne, jak już ogarnę to w takiej postaci, to przejść będzie łatwo. Jeśli chodzi o programowanie, to uczę się w tempie diametrycznym i szybko wiążę koniec z końcem, więc będzie ok, tylko tego jednego nie potrafię wyjaśnić.
0

http://php.net/manual/en/book.pdo.php

BTW, nie widzę żebyś cokolwiek, gdziekolwiek przypisywał do $user_upr więc jak chcesz coś z tego pobrać?

0

Chcę wyświetlić to funkcją

echo 

w 24 lini tego kodu.

 <p> twoje uprawnienia na forum to: <?php echo $user_upr; ?> </p>

Pobierając to z bazy danych:

    while($row=mysql_fetch_array($run_query)){
    $row['user_id'];
    $row['user_upr']; 

Pozdrawiam

/// EDIT

Dobra poradziłem już sobie, nie zdefiniowałem $user_upr, bo nie dopatrzyłem, zwracam honor osobie, która mi to powiedziała.
Dzięki za pomoc i pozdrawiam.

0

A teraz ktoś wywoła Ci skrypt z parametrem ?user=' OR '1'=='1 to jaki wynik Ci zwróci zapytanie?
albo ?user='; DROP TABLE users; SELECT 'a
albo ?user='; DROP SCHEMA nazwa_bazy; SELECT 'a

0

Niestety nie do końca zrozumiałem pytanie, ale gdy zrobiłem to o czym napisałeś, nie zwróciło żadnego wyniku:P

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0