alexndrre 0 Posted November 6 Hi guys. As I am new to PHP, I have a question. Necessarily, this need not be done in php, if you have something in html or js that can be done, let me know! Well, I have a form where you enter information like name, city, phone and product option. These product options include real estate and auto options. By clicking submit (to submit form), I need to direct the visitor to their chosen product option. For example, when I filled out the form I chose 'real estate'. When I clicked submit, it went to a page where the real estate-only content appeared. Note: I already have this code ready below and it already directs the information to the database. However, I don't know how to make him redirect to the customer, the product option he chose. <form action="simulador.php" method="post" name="dados" id="dados" onSubmit="return validaform()"> <div class="col-md-5 esquerda"> Selecione o bem<br/> <select name="tipo" type="text" class="contat3" placeholder="Selecione o bem"> <option value="Im�vel"" style="background-color: #fff;">Imóveis</option> <option value="Autom�vel"" style="background-color: #fff;">Automóveis</option> <option value="Moto" style="background-color: #fff;">Motos</option> </select><br/> Selecione o plano<br/> <select name="plano" type="text" class="contat3"> <option value="Crédito"" style="background-color: #fff;">Crédito</option> <option value="Parcela"" style="background-color: #fff;">Parcela</option> </select><br/> <input name="valorcon" type="text" id="valorcon" class="contat3" placeholder="Digite o valor" maxlength="1000" /><br/> <input name="nomecon" type="text" id="nomecon" class="contat3" placeholder="Nome" maxlength="1000" /><br/> <input name="telefone" type="text" onkeypress="Mascara('TEL',this,event);" type="text" id="telefone" class="contat3" placeholder="Telefone" /> <!--- <input name="tel2" type="text" id="tel2" onkeypress="Mascara('TEL',this,event);" /><br/> ---> <input name="emailcon" type="text" id="emailcon" class="contat3" placeholder="E-mail" maxlength="1000" /><br/> <input name="cidadecon" type="text" id="cidadecon" class="contat3" placeholder="Cidade" maxlength="1000" /> <br/><br/><br/> <a id="enviar-form" class="button solid-color" href="#">Enviar</a> <input type="submit" id="enviar-form-btn" style="display: none;" /> </div> </form> Quote Share this post Link to post Share on other sites
requinix 813 Posted November 6 Your form is going to simulador.php. Make that script process the form and decide where the user is supposed to go. The URL of the page. Don't output anything, only send the user to that page with header("Location: " . $url_to_send_the_user_to); exit; Quote Share this post Link to post Share on other sites
JacobSeated 1 Posted November 6 Well, if you can use the product option as an ID in a URL, you could do a simple server-sided redirect with PHP: // You could also use URL parameters. I.e.: ?product_option=real-estate $destination_url = 'https://example.com/product-option/real-estate'; http_response_code(302); // Set the status code to "302 See Other" header('Location: ' . $destination_url); // Instruct the client to perform the redirect Afaik, http_response_code automatically handles selecting the right protocol, depending on the client request. If you used header to set response codes, you should remember selecting protocol yourself. It is not enough to simply hard-code the protocol. Also, make sure to validate input on the server-side as well before communicating with the database. Quote Share this post Link to post Share on other sites
requinix 813 Posted November 6 2 minutes ago, JacobSeated said: Afaik, http_response_code automatically handles selecting the right protocol, depending on the client request. If you used header to set response codes, you should remember selecting protocol yourself. It is not enough to simply hard-code the protocol. If by "protocol" you mean the HTTP response code (like 301, 302, 303, and 307) then you have it backwards: http_response_code() will do exactly what you say, header(Location:) will default to 302 for GET/HEAD and 303 for everything else. And note that header() supports setting a custom response code at the same time: header('Location: ' . $destination_url, true, 302); Quote Share this post Link to post Share on other sites
JacobSeated 1 Posted November 6 6 minutes ago, requinix said: If by "protocol" you mean the HTTP response code (like 301, 302, 303, and 307)... Nope. I am talking about HTTP/1.0, HTTP/1.1 and HTTP/2.0 part that people often incorrectly hard-code in their scripts when using the header function. If you google things to do with headers, people will even tell you it does not matter which use, which is clearly incorrect. I did not know about the defaulting behavior when sending the Location header, however. I still got some old PHP code that uses the header function for sending status codes, and this code selects the protocol depending on the SERVER_PROTOCOL variable. It is a neat little DRY complaint function, so I do not have repeated header statements all over my code—that would be annoying to maintain in the long run. But thanks for letting me know about the default. Moving forward, I should probably replace my code with http_response_code though 🤣 Quote Share this post Link to post Share on other sites
alexndrre 0 Posted November 7 20 hours ago, requinix said: Your form is going to simulador.php. Make that script process the form and decide where the user is supposed to go. The URL of the page. Don't output anything, only send the user to that page with header("Location: " . $url_to_send_the_user_to); exit; In fact, it directs me through the resultado.php page, because that code is included. <script language= "JavaScript"> location.href="resultado.php" </script> <?php } ?> I need it to indicate according to the desired option on the form. Quote Share this post Link to post Share on other sites
requinix 813 Posted November 7 1 hour ago, alexndrre said: In fact, it directs me through the resultado.php page, because that code is included. That is the wrong way to redirect a user. Don't do that. 1 hour ago, alexndrre said: I need it to indicate according to the desired option on the form. Then do that. I've told you how to redirect (properly) so now you have to figure out where to redirect them to. Because I can't possibly how your application works. Quote Share this post Link to post Share on other sites