• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Biała strona przy wykonywaniu UPDATE do abzy danych

Object Storage Arubacloud
0 głosów
215 wizyt
pytanie zadane 23 sierpnia 2016 w PHP przez Mistrz0000000 Bywalec (2,780 p.)
zamknięte 24 sierpnia 2016 przez Mistrz0000000

Witam, mam taki problem że robię coś takiego jak edycja produktów i coś nie działa.

Kod po wciśnięciu przycisku do zakończenia edycji:

if (isset($_POST['edit_product']))
{
    $name = $_POST['edit_name'];
    $price = $_POST['edit_price'];
    $description = $_POST['edit_description'];
    $file = $_FILES['edit_plik'];
    $id = $_POST['edit_productid'];
    $max_rozmiar = 1024*1024;
    if (is_uploaded_file($_FILES['edit_plik']['tmp_name'])) {
        if ($_FILES['edit_plik']['size'] > $max_rozmiar) {
            echo 'Błąd! Plik jest za duży!';
        } else
        {
            if (isset($_FILES['edit_plik']['type'])) {
                product_edit($id,$name,$price,$_FILES['edit_plik']['name'],$description);
            }
            move_uploaded_file($_FILES['edit_plik']['tmp_name'],
                $_SERVER['DOCUMENT_ROOT'].'/graph/'.$_FILES['edit_plik']['name']);
        }
    } else {
        product_edit($id,$name,$price,$_POST['edit_plik'],$description);
    }
}

a tu kod funkcji do której wysyła dane:

function product_edit($id,$name,$price,$picture,$description)
{
    $phpro_id = filter_var($id, FILTER_SANITIZE_NUMBER_INT);
    $phpro_name = filter_var($name, FILTER_SANITIZE_STRING);
    $phpro_price = filter_var($price, FILTER_SANITIZE_STRING);
    $phpro_picture = filter_var($picture, FILTER_SANITIZE_STRING);
    $phpro_description = filter_var($description, FILTER_SANITIZE_STRING);
    $stmt = getDBH()->prepare("UPDATE products SET name=:name, price=:price, picture=:picture, description=:descripion WHERE id = :id");
    $stmt->bindParam(':id', $phpro_id, PDO::PARAM_INT);
    $stmt->bindParam(':name', $phpro_name, PDO::PARAM_STR);
    $stmt->bindParam(':price', $phpro_price, PDO::PARAM_STR);
    $stmt->bindParam(':picture', $phpro_picture, PDO::PARAM_STR);
    $stmt->bindParam(':description', $phpro_description, PDO::PARAM_STR);
    $stmt->execute();
}

I do tego kodu po wciśnięciu przycisku są przesyłane wszystkie dane bo wyświetlałem je przez echo

komentarz zamknięcia: już nie ma problemu. Chodziło o literówkę bo zamiast :description było :descripion
komentarz 23 sierpnia 2016 przez efiku Szeryf (75,160 p.)
To w końcu jak jest z wywołaniem tego product_edit, bo raz jest tak, raz inaczej?

Protip:
1. pracuj z PHPStormem

2. Zainstaluj i podłącz mu xdebug i tak debuguj, a nie przez echo

3. Może nie masz włączonego wyswietlania bledow w php.ini?
komentarz 23 sierpnia 2016 przez Mistrz0000000 Bywalec (2,780 p.)
Pracuję z PHPstormem

a z tym wywołaniemt to jest tak że jak go staram się wywołac to jest biała strona, ale jak usunę wywoływanie funkcji i dam echo i przesłane dane to się wszystko wyświetla
komentarz 23 sierpnia 2016 przez efiku Szeryf (75,160 p.)
To podepnij xdebug :P Trochę na pierwszy raz roboty będzie zanim ogarniesz ale warto :P

+ Włącz wyświetlanie błędów.

Ja mówię, zwróć uwagę jak wywołujesz ten product_edit. Za każdym razem parametry się różnią, może tu jest problem?  Tablica a string hm? świta już coś? ;)
komentarz 23 sierpnia 2016 przez Mistrz0000000 Bywalec (2,780 p.)
edycja 23 sierpnia 2016 przez Mistrz0000000

No niestety nie za bardzo mi świta + po wyłączeniu catch exception pokazuje się taki error:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in /home/u546298435/public_html/functions/mysql_using.php:251 Stack trace: #0 /home/u546298435/public_html/functions/mysql_using.php(251): PDOStatement->execute() #1 /home/u546298435/public_html/index.php(167): product_edit('3', '1000', '3', 'target.png', ' To jest testow...') #2 {main} thrown in /home/u546298435/public_html/functions/mysql_using.php on line 251

Podobne pytania

0 głosów
1 odpowiedź 572 wizyt
pytanie zadane 4 stycznia 2017 w PHP przez Michał Samolewski Bywalec (2,240 p.)
0 głosów
1 odpowiedź 1,023 wizyt
0 głosów
1 odpowiedź 1,388 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...