• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
275 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ź 868 wizyt
pytanie zadane 4 stycznia 2017 w PHP przez Michał Samolewski Bywalec (2,240 p.)
0 głosów
1 odpowiedź 1,434 wizyt
0 głosów
1 odpowiedź 1,541 wizyt

93,335 zapytań

142,328 odpowiedzi

322,406 komentarzy

62,670 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...