Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Rekomendowane odpowiedzi

Opublikowano

Witam napisałem sobie system newsów na stronkę, utworzyłem nową podstronę z dodawaniem newsa . Problem mam z tym, że przy każdym odświeżeniu strony dodaje newsa nawet gdy formularz jest pusty a zapytanie mam takie:

 

$query = mysql_query("insert into news values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')");

 

Domyślam się , że muszę dodać do kodu jakiś warunek który nie zezwoli na puste wysłanie zapytania do bazy tylko nie wiem co mądremu google wpisać.

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Opublikowano

<?php
if (query = mysql_query("insert into news values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')");
{
instrukcje
}
?>

 

Coś takiego np ?

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Opublikowano

if (query = mysql_query("insert into news values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')");)
{
echo 'Wysłano!';
}
else
{
echo 'Nie wysłano';
}

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Opublikowano

Zrobiłem tak i działa ale nie wiem czy poprawnie ale chyba skoro działa to tak miało być :P:

 

$tytul = $_POST["tytul"];
$autor = $_POST["autor"];
$tresc = $_POST["tresc"];
if (isset($_POST['send'])) {
        if (empty($tytul)) { 
                echo "Proszę wpisać tytuł newsa<br />";
}elseif (empty($autor)) {
                echo "Wprowadź autora newsa<br />";
}elseif (empty($tresc)) {
                echo "Nie wprowadzono tresci newsa lub jest ona zbyt krotka (min. 6 znakow).<br />";
}else {
echo "Twój news został wyslany. Dziekuje!";
$query = mysql_query("insert into news values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')");
    }
}

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Opublikowano

Pomyślałem o tym ale coś mi nie trybi wywala błąd:

 

Parse error: syntax error, unexpected T_VARIABLE in /home/p359123/public_html/stronka/addnews.php on line 12

 

 

$tytul = htmlspecialchars(mysql_real_escape_string $_POST["tytul"]));
$autor = htmlspecialchars(mysql_real_escape_string $_POST["autor"]));
$tresc = htmlspecialchars(mysql_real_escape_string $_POST["tresc"]));
if (isset($_POST['send'])) {
        if (empty($tytul)) { 
                echo "Proszę wpisać tytuł newsa<br />";
}elseif (empty($autor)) {
                echo "Wprowadź autora newsa<br />";
}elseif (empty($tresc)) {
                echo "Nie wprowadzono tresci newsa lub jest ona zbyt krotka (min. 6 znakow).<br />";
}else {
echo "Twój news został wyslany. Dziekuje!";
$query = mysql_query("insert into news values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')");
    }
}

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Opublikowano

No takiego błędu to już musisz się nauczyć sam szukać. Brakuje Ci (, a nawet trzech.

No i nawet jak tam poprawi, to i tak nic to nie da... bo w mysql_query i tak odwołuje się bezpośrednio do $_POST, zamiast przefiltrowanych wartości ]:->

Opublikowano

Znalazłem droga dedukcji te brakujące france :D

$tytul = htmlspecialchars(mysql_real_escape_string ($_POST["tytul"]));
$autor = htmlspecialchars(mysql_real_escape_string ($_POST["autor"]));
$tresc = htmlspecialchars(mysql_real_escape_string ($_POST["tresc"]));

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Opublikowano
$query = mysql_query("insert into news values('','".htmlspecialchars(($_POST['tytul'].)"',now(),'".$_POST['autor']."','".$_POST['tresc']."')");

 

Kombinowałem tak ale chyba nie tędy droga.

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Opublikowano

Po co stworzyłeś i przefiltrowałeś te zmienne... skoro z ich nie wykorzystujesz? ;)

$tytul = htmlspecialchars(mysql_real_escape_string ($_POST["tytul"]));
$autor = htmlspecialchars(mysql_real_escape_string ($_POST["autor"]));
$tresc = htmlspecialchars(mysql_real_escape_string ($_POST["tresc"]));
Opublikowano
$query = htmlspecialchars(mysql_real_escape_string(mysql_query("insert into news values('','".$_POST['tytul']."',now(),'".$_POST['autor']."','".$_POST['tresc']."')")));
$result = mysql_query($query);

 

 

Zrobiłem tak ale nie wiem czy to jest poprawnie ?

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Opublikowano (edytowane)

Chryste... jak koniecznie chcesz na chama zapisywać:

$query = mysql_query("insert into news values('','".$tytul."',now(),'".$autor."','".$tresc."')");
Przecież w jakimś celu stworzyłeś i przefiltrowałeś te zmienne! Edytowane przez JamLasica
Opublikowano

Ok wszystko mi pięknie działa ale mam jeszcze jedno pytanie do was czy tak zabezpieczony skrypt ujdzie , czy takie zabezpieczenie jest marne ?

Nie bądź pijawką. Rozwiązałeś problem? Podziel się rozwiązaniem na forum.

Małe jest piękne ale.... duże bardziej cieszy.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.