Thread View: pl.comp.lang.php
4 messages
4 total messages
Started by sunriseweb.lublin
Thu, 16 Apr 2015 17:11
PHP & SQL - Problem z porównaniem stringów
Author: sunriseweb.lublin
Date: Thu, 16 Apr 2015 17:11
Date: Thu, 16 Apr 2015 17:11
30 lines
2382 bytes
2382 bytes
Witam,
mój problem wygląda następująco:
mam generowany automatycznie element formularza typu 'select'
<select onchange="this.form.submit();" id="filter_Temat" name="temat">
<?php
$wynikiQS = get_custom('wnioski_tematy');
$wynikiQS = explode('|',$wynikiQS);
foreach ( $wynikiQS as $wynikQS ) {
if (($_POST['temat']) == $wynikQS) echo '<option value="'.$wynikQS.'" class="filterItem" selected>'.$wynikQS.'</option>';
else echo '<option value="'.$wynikQS.'" class="filterItem">'.$wynikQS.'</option>';
} ?>
</select>
Wybranie jakiejś opcji generuje zmienną $_POST['temat']
następnie wyszukuję w bazie danych rekordy spełniające warunek:
if (!empty($_POST['temat'])) {
$temat = $_POST['temat'];
$resultsT = $wpdb->get_results( 'SELECT post_id FROM wp_postmeta WHERE meta_key = "temat" AND meta_value = "'.$temat.'"', OBJECT );
$wynikiQS jest pobierany z bazy danych
Strona jest na wordpressie.
Problem polega na tym, że zapytanie zawsze zwraca pusty wynik. Nawet jeśli istnieją wiersze, dla których meta_value zgadza się z tym co jest w zmiennej $_POST['temat']
Jeśli natomiast wpiszę do zapytania zamiast $temat, np. 'Temat 1' zapytanie zwraca odpowiednie rekordy.
Re: PHP & SQL - Problem z porównaniem stringów
Author: Lemat
Date: Thu, 16 Apr 2015 17:51
Date: Thu, 16 Apr 2015 17:51
51 lines
2461 bytes
2461 bytes
sunriseweb.lublin@gmail.com wrote:
> Witam,
> mój problem wygląda następująco:
> mam generowany automatycznie element formularza typu 'select'
>
> <select onchange="this.form.submit();" id="filter_Temat" name="temat">
>
> <?php
>
> $wynikiQS = get_custom('wnioski_tematy');
> $wynikiQS = explode('|',$wynikiQS);
> foreach ( $wynikiQS as $wynikQS ) {
>
> if (($_POST['temat']) == $wynikQS) echo '<option
> value="'.$wynikQS.'" class="filterItem"
> selected>'.$wynikQS.'</option>';
> else echo '<option value="'.$wynikQS.'"
> class="filterItem">'.$wynikQS.'</option>';
> } ?>
> </select>
>
> Wybranie jakiejś opcji generuje zmienną $_POST['temat']
>
> następnie wyszukuję w bazie danych rekordy spełniające warunek:
>
> if (!empty($_POST['temat'])) {
> $temat = $_POST['temat'];
> $resultsT = $wpdb->get_results( 'SELECT post_id FROM wp_postmeta WHERE
> meta_key = "temat" AND meta_value = "'.$temat.'"', OBJECT );
>
> $wynikiQS jest pobierany z bazy danych
> Strona jest na wordpressie.
>
> Problem polega na tym, że zapytanie zawsze zwraca pusty wynik. Nawet jeśli
> istnieją wiersze, dla których meta_value zgadza się z tym co jest w
> zmiennej $_POST['temat'] Jeśli natomiast wpiszę do zapytania zamiast
> $temat, np. 'Temat 1' zapytanie zwraca odpowiednie rekordy.
po pierwsze i najważniejsze - SQL injection
po drugie:
print_r($_POST);
po trzecie:
echo 'SELECT post_id FROM wp_postmeta WHERE meta_key = "temat" AND
meta_value = "'.$temat.'"';
--
Pozdrawiam
Lemat
Re: PHP & SQL - Problem z porównaniem stringów
Author: tomek
Date: Fri, 17 Apr 2015 07:51
Date: Fri, 17 Apr 2015 07:51
9 lines
1257 bytes
1257 bytes
echo '<option value="'.$wynikQS.'" class="filterItem">'.$wynikQS.'</option>'; A teraz się zastanów co będzie jeśli w zmiennej $wynikQS będzie coś w tym stylu: $wynikQS = 'aaa "bbb" ccc><ddd'; Tomek
Re: PHP & SQL - Problem z porównaniem stringów
Author: Rafal Podsiadly
Date: Mon, 22 Jun 2015 17:01
Date: Mon, 22 Jun 2015 17:01
2 lines
1408 bytes
1408 bytes
Nie podoba mi się ten kod ma dużo błędów. Polecam się wpierw pouczyć programowania
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads