insert into nie przekazuje wartości zmiennej |
insert into nie przekazuje wartości zmiennej |
20.02.2018, 11:47:44
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
Witam serdecznie.
Mam problem. Z poprzedniej strony jest "zaimportowana" zmienna username poprzez get. Działa to prawidłowo, ponieważ echo pokazuje prawidłową wartość. Zmienna importowana jest przypisana do usr. Czego bym nie zrobił, nie działa usr w insert into - wszystko działa, oprócz tego. Proszę o jakieś wskazówki, bo już nie mam pojęcia co to może być. Oczywiście po usunięciu if !empty($usr) wszelkie dane zostają załadowane do bazy, oprócz $usr. |
|
|
20.02.2018, 11:49:47
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
Witaj. Na przyszlosc nie wklejaj na zdjecia kodu tylko kod.
Die po query nie ma zadnego sensu. Wyswietlaj blad zapytania to bedziesz wiedzial czemu zapytanie sie nie wykonuje. Bo zakladam ze to caly rekord ci sie nie wklada a nie tylko zawartosc $usr przenosze. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2018, 11:52:40
Post
#3
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
tylko usr - sprawdzalem
|
|
|
20.02.2018, 11:55:20
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
czyli $tekst do bazy sie wklada a $usr nie?
Daj var_dump($usr); die('Test'); przed samym wykonaniem zapytania i pokaz dokladnie co zwraca. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2018, 12:00:27
Post
#5
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
Tak, wchodzi tekst, wchodzi data z now, wchodzi 0 czyli id bo w bazie przy id jest auto_increment.
Nie mam pojęcia co to może być. Wrzuciłem to co napisałeś przed query i dalej widnieje tylko error "Błąd" <?php require_once('cm/connect.php'); $username=trim($_GET['username']); $usr=$username; echo $usr; if (isset($_POST['submit'])) { if (!empty($usr) && !empty($tekst)) { $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if (!$dbc) { die('Bład przy połączeniu z bazą danych: ' . mysql_error()); } var_dump($usr); die('Test'); $query = "INSERT INTO wiadomosci_od_administratora VALUES (0,NOW(),'$usr','$tekst')"; mysqli_query($dbc, $query); echo '<p class="er">Wiadomość została wysłana</p>'; mysqli_close($dbc); } else { echo '<p class="er">Błąd</p>'; } } ?> <div class="zaplecze_inputy_na_czarno"> <p>Wyślij wiadomość do użytkownika <?php echo $usr; ?> 2/2</p> </div> <div class="spoz_menu_logowania_usuwanie"> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <div class="spoz_lh"> <div class="zaplecze_textarea_odstep"> <textarea name="tekst" value="<?php if(!empty($tekst)) echo $tekst; ?>"></textarea> <script> CKEDITOR.replace( 'tekst' ); </script> </div> </div> <div class="spoz_zaloguj"> <input type="submit" value="Wyślij wiadomość" name="submit" /> </div> </form> </div> |
|
|
20.02.2018, 12:02:26
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
Ewidentnie $usr jest puste. Ty na poczatku wyswietlasz $usr jeszcze przed IFem. Z kody wynika ze do tej akcji raz wchodzisz normalnie z linka a innym razem po wyslaniu formularza. Wniosek: wysylajac formularz nie wysylasz juz w GET username
edit: wlasnie podales kod, ktory potwierdza co napisalem. nie <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> a: <form method="post" action=""> -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2018, 12:03:02
Post
#7
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
Bardzo możliwe, tylko dalej nie wiem jak to naprawić
|
|
|
20.02.2018, 12:03:31
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
Podalem ci jak to naprawic
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2018, 12:08:23
Post
#9
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
zmiana na <form method="post" action=""> nic nie dała. Więc co ma być w action ?
$usr jest wyświetlony przed ifem, aby sprawdzić czy z poprzedniej strony przekazło wartość do username które przeszło do usr. Przekazało, ponieważ usr pokazuje zawartość - tylko informacja do testów. Siedzę przy tym którąś godzinę i nie mam pojęcia co to jest - więc prosiłbym o pomoc kogoś mądrzejszego. Ten post edytował ob1 20.02.2018, 12:17:24 |
|
|
20.02.2018, 12:16:55
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Na początku wstaw mysqli_report(MYSQLI_REPORT_ALL); Usuń to 0 skoro tam jest AI i po kolei sprawdź wszystkie zmienne.
-------------------- |
|
|
20.02.2018, 12:23:45
Post
#11
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
Tak jak wspomniałem, wszystko się wstawia do bazy oprócz $usr.
Wszystkie zmienne sprawdzałem. Gdzie dokładniej mam wstawić mysqli_report(MYSQLI_REPORT_ALL); ? w <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> jaką wartość ma mieć action? |
|
|
20.02.2018, 12:30:13
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Tak jak wspomniałem, na początku. http://php.net/manual/pl/mysqli.error.php
A skoro się wstawia to znaczy że jest tam pusty string albo coś innego. Ten post edytował viking 20.02.2018, 12:32:05 -------------------- |
|
|
20.02.2018, 12:32:57
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
@viking z postow wynika ze do wykonania zapytania w ogole nie dochodzi. Dochodzi dopiero gdy wywali warunek na $usr co pokazuje ze $usr jest puste.
@ob1 ja rozumiem, ze $usr ci sie pokazuje przed wyslaniem forma. Po wyslaniu ci znika - w tym problem. W kodzie nie widze bys skadkolwiek pobieral $tekst. Albo wiec pokazujesz nam szczatkowy kod, albo masz ustawione register_globals, ktore w jakis sposob zakloca pobieranie zmiennej $usr po wyslaniu POST. ALbo wiec pokaz nam caly kod bez filtracji twojej albo wylacz register_globals i zmienne z forma pobieraj z POST -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2018, 12:47:02
Post
#14
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
Wyciałem tylko czystego htmla a raczej menu, które nie ma tutaj żadnego znaczenia. Przywróciłem kod do momentu, w którym wstawiane jest wszystko oprócz $usr. Insert into wstawia wszystko, i pobiera wszystko oprócz $usr. W momencie stawienia echo $usr nad kodem, pokazuje się prawidłowa wartość. Cały kod
div class="spoz_add_ogl_p"> <?php require_once('cm/connect.php'); $username=$_GET['username']; $usr=$username; echo $usr; // tutaj jest pobierana i wyświetlana wartość if (isset($_POST['submit'])) { $username =trim($_GET['username']); $usr=$username; $naglowek =trim($_POST['naglowek']); $tekst =trim($_POST['tekst']); if (!empty($tekst)) { // usunąłem && !empty($usr) aby wartości dodały się do bazy $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if (!$dbc) { die('Bład przy połączeniu z bazą danych: ' . mysql_error()); } $query = "INSERT INTO wiadomosci_od_administratora VALUES (0,NOW(),'$usr','$tekst')" or die("Zapytanie niepoprawne"); mysqli_query($dbc, $query); echo '<p class="er">Wiadomość została wysłana</p>'; mysqli_close($dbc); } else { echo '<p class="er">Błąd</p>'; } } ?> <div class="zaplecze_inputy_na_czarno"> <p>Wyślij wiadomość do użytkownika <?php echo $usr; ?> 2/2</p> [b] // tutaj też pokazuje się wartość usr[/b] </div> <div class="spoz_menu_logowania_usuwanie"> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <div class="spoz_lh"> <div class="zaplecze_textarea_odstep"> <textarea name="tekst" value="<?php if(!empty($tekst)) echo $tekst; ?>"></textarea> <script> CKEDITOR.replace( 'tekst' ); </script> </div> </div> <div class="spoz_zaloguj"> <input type="submit" value="Wyślij wiadomość" name="submit" /> </div> </form> </div> </div> </div> |
|
|
20.02.2018, 12:54:28
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
1) uzywaj bbcode do wstawianego kodu na forum
2) Powielanie tego $username =trim($_GET['username']); $usr=$username; niema najmniejszego sensu 3) - Odpal stronke z formularzem - po odpaleniu stronki zmodyfikuj swoj kod i dodaj jeszcze przed jakimkolwiek IF kod:
- wyslij formularz - pokaz co ci pokazalo na stronie - pokaz rowniez jak dokladnie wyglada url w przegladarce po wyslaniu formularza ps: Prosilem rowniez bys zamienil poczatek forma na <form method="post" action=""> zachowaj prosze ten kod i nie wracaj do starego -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2018, 12:57:14
Post
#16
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
Wrzuciłem przed, wynik:
testArray ( [user_id] => 3 [username] => test ) Array ( ) Wszystko ok, takie wartości są w bazie poprzedniej strony, która przekazuje m.in. username, które później staje się usr. Link z poprzedniej strony: <a href="admpnl_ww_do_uzytkownika_potwierdzenie.php?user_id=' . $row['user_id'] . '&username=' . $row['username']. '"> <img src="acceptimg.png" alt="wyslij"></img></a> Czyli tak jak wspomniałem, wartość jest przekazywana, co pokazuje echo na stronie docelowej. action zmieniłem na pusty. Dzięki za uwagę. Ten post edytował ob1 20.02.2018, 12:59:15 |
|
|
20.02.2018, 12:59:05
Post
#17
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
Napisalem ci wyraznie w jakiej kolejnosci co masz zrobic. Nie zrobiles tego bo widze po rezultacie. Ja naprawde po polsku a nie po chinsku to napisalem...
Dodatkowo, zanim zaczniesz kolejna probe czytania ze zrozumieniem, zastosuj sie tez do tego: <form method="post" action=""> Albo przychodzisz tu po pomoc albo nie. Jesli przychodzisz po pomoc, to stosuj sie prosze do tego co ci pisza. W przeciwnym wypadku to nie ma zadnego sensu -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.02.2018, 13:21:32
Post
#18
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.02.2018 Ostrzeżenie: (0%) |
Ale który adres po wysłaniu?
ten z pierwszej strony, który kieruje na docelową wygląda tak: admpnl_ww_do_uzytkownika_potwierdzenie.php?user_id=3&username=test W globalnych trzeba było zostawić to $username =trim($_GET['username']); $usr=$username; niema najmniejszego sensu a w form method post action="". Dzięki za pomoc. Ten post edytował ob1 20.02.2018, 13:04:31 |
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 08:43 |