cadife Posted April 16, 2024 at 01:45 PM Report Share #633009 Posted April 16, 2024 at 01:45 PM Boas tarde, Não estou a conseguir apanhar a variavel nome no verificar2.php que vem do javascript, penso que pode ser um erro simples mas não estou a descobrir. Agradecia uma ajudita. Index.php <select id="nomes" name="nomes" > <option value="CD01">CD01</option> <option value="CD14">CD14</option> <option value="CD15">CD15</option> </select> <img id="imagem" src="" alt="Imagem"> <script src="script.js"></script> script.js const selectNomes = document.getElementById('nomes'); const imagem = document.getElementById('imagem'); selectNomes.addEventListener('change', () => { const nome = selectNomes.value; //alert($('#nomes').val()); const xhr = new XMLHttpRequest(); xhr.open('POST', 'verificar2.php'); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onload = () => { if (xhr.status === 200) { imagem.src = `${xhr.responseText}`; } else { console.error('Erro ao buscar imagem.'); } }; xhr.send(`nome=$`); }); verificar2.php <?php session_start(); $nome = $_POST['nome']; // Conectando ao banco de dados $conexao = mysqli_connect("localhost", "root", "PASS","BD"); // Buscando a imagem $sql = "SELECT foto_painel FROM tb_preco_97 WHERE modelo = '$nome'"; $resultado = mysqli_query($conexao, $sql); $imagem = mysqli_fetch_assoc($resultado)['foto_painel']; // Fechando a conexão mysqli_close($conexao); // Retornando a imagem header('Content-Type: image/jpeg'); echo $imagem; ?> Link to comment Share on other sites More sharing options...
PauloE Posted April 16, 2024 at 01:59 PM Report Share #633010 Posted April 16, 2024 at 01:59 PM Ve o que recebes com isto: echo print_r($_POST, true); Um "pormaior" atenção ao SQL injection. Por exemplo se nome = "'qqcoisa'; truncate tb_preco_97 ;--"; perdes dos dados da tabela. Ou se o hacker tiver mais tempo fica com controlo de sistema Link to comment Share on other sites More sharing options...
cadife Posted April 16, 2024 at 02:10 PM Author Report Share #633011 Posted April 16, 2024 at 02:10 PM Boas, Não aconteceu nada. Em relação ao SQL Injection o que estou a fazer de mal? Link to comment Share on other sites More sharing options...
M6 Posted April 16, 2024 at 04:01 PM Report Share #633012 Posted April 16, 2024 at 04:01 PM No teu código diria que deves ter 2 questões: A chamada deveria ser assíncrona (para não bloquear a aplicação): xhr.open('POST', 'verificar2.php', true); e não estás propriamente a passar nenhum valor no nome, experimenta xhr.send('nome=Batatas&tipo=Fritas'); Verifica se não no servidor não chegam duas variáveis POST, nome e tipo, cada uma com o seu valor. No caso do SQL Injection o que estás a fazer de mal é o facto de não estares a fazer nada. Por exemplo, não estás a ter em atenção ao escape de caracteres especiais do MySQL que podem interferir com a correta execução do comando SQL e com isso começar a fazer leaks de informação da base de dados. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Solution MentorDuncan Posted April 16, 2024 at 08:03 PM Solution Report Share #633013 Posted April 16, 2024 at 08:03 PM (edited) Olá! Testei seu projeto e está funcionado corretamente. Veja: https://github.com/eternal-duncan/cadife Edited April 16, 2024 at 08:03 PM by MentorDuncan Link to comment Share on other sites More sharing options...
MentorDuncan Posted April 16, 2024 at 08:12 PM Report Share #633014 Posted April 16, 2024 at 08:12 PM Atualizei com prepared statement, pra evitar sql injection Link to comment Share on other sites More sharing options...
cadife Posted April 17, 2024 at 09:02 AM Author Report Share #633016 Posted April 17, 2024 at 09:02 AM Boas, obrigado pela vossa ajuda já descobri aonde estava a falhar foi nesta linha xhr.send(`nome=${nome}`) Muito obrigado Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now