fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 (editado) Boas, estou a construir um site, e estive a usar o WAMP para fazer de servidor local, e as coisas até corriam bem, fiz um formulário e a coisa começou a complicar, porque o formulário é suposto ir para a base de dados. Até aqui ainda me mexi, e as coisas apesar de darem alguns erros os dados eram inseridos numa tabela que criei no phpMyAdmin. Hoje coloquei no servidor online e a coisa complicou, importei a base de dados para o servidor e afins, mudei o código para o do servidor e os erros deixaram de apareçer, mas não entra registo nenhum na tabela, que pode ser? A tabela que supostamente deveriam os dados ir ter chama-se "registo". Este é o código: <?php $conect = mysql_connect("nome do servidor", "nomedoutilizadr", "senha"); if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) { $insertSQL = sprintf("INSERT INTO registo (id, bd_nome, bd_n_bi, bd_idade, bd_sexo, bd_morada, bd_cod_postal, bd_localidade, bd_telefone, bd_email, bd_n_acompanhantes, bd_refeicao, bd_mensagem) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['id'], "int"), GetSQLValueString($_POST['bd_nome'], "text"), GetSQLValueString($_POST['bd_n_bi'], "int"), GetSQLValueString($_POST['bd_idade'], "int"), GetSQLValueString($_POST['bd_sexo'], "text"), GetSQLValueString($_POST['bd_morada'], "text"), GetSQLValueString($_POST['bd_cod_postal'], "text"), GetSQLValueString($_POST['bd_localidade'], "text"), GetSQLValueString($_POST['bd_telefone'], "int"), GetSQLValueString($_POST['bd_email'], "text"), GetSQLValueString($_POST['bd_n_acompanhantes'], "int"), GetSQLValueString($_POST['bd_refeicao'], "text"), GetSQLValueString($_POST['bd_mensagem'], "text")); $db = mysql_select_db("nome_base_dados"); $Result1 = mysql_query($registo); $insertGoTo = "/index.htm"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } ?> Editado 30 de Janeiro de 2013 por brunoais geshi + tag completamente errada removida Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 30 de Janeiro de 2013 Pode ser muita coisa. Não dá erro nenhum? before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 Pode ser muita coisa. Não dá erro nenhum? Não :s dava erro de código na linha 56 e 57, depois inseri o nome e não dá mais o erro, mas os dados na tabela não inserem...no WAMP dava erro mas sempre inseria os dados na tabela Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 30 de Janeiro de 2013 $db = mysql_select_db("nome_base_dados"); Troca esta linha para logo depois do mysql_connect. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 30 de Janeiro de 2013 o local onde está o servidor é : "nome do servidor" ? o utilizador da base de dados é : "nomedoutilizadr" ? a palavra chave do utilizador é : "senha" ? a base de dados chamasse : "nome_base_dados" ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 o local onde está o servidor é : "nome do servidor" ? o utilizador da base de dados é : "nomedoutilizadr" ? a palavra chave do utilizador é : "senha" ? a base de dados chamasse : "nome_base_dados" ? Não, tem nome, eu meti isso para facilitar a confusão que estou a ter, a ver se me está a escapar algo Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 30 de Janeiro de 2013 então altera para if (($Result1 = mysql_query($registo)) == null) echo "SQL error : ".mysql_error(); IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 $db = mysql_select_db("nome_base_dados"); Troca esta linha para logo depois do mysql_connect. Continua a não dar nem erro nem entrada na tabela, será que não me está a faltar algum caminho para a tabela? Será que só meter o nome da base de dados não será pouco? então altera para if (($Result1 = mysql_query($registo)) == null) echo "SQL error : ".mysql_error(); Onde? Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 30 de Janeiro de 2013 e isto, dá mensagem que foi inserido ? if (($Result1 = mysql_query($registo)) == null) echo "SQL error : ".mysql_error(); else echo "Foi inserido"; IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 (editado) Agora dá este erro mesmo antes de inserir algo *Que é o caminho para a página de inscrição $db = mysql_select_db("nome_base_dados"); Troca esta linha para logo depois do mysql_connect. Desde que troquei como dizes, ficou a dar este erro " mysql_select_db() expects parameter 2 to be resource, null given in /home/vol9/alojamentogratuito.com/alo_12198399/htdocs/inscricoes.php on line 3 Editado 30 de Janeiro de 2013 por fernvl007 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 30 de Janeiro de 2013 $db = mysql_select_db("nome_base_dados", $conect); before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 (editado) $db = mysql_select_db("nome_base_dados", $conect); Não dá o erro, mas dados também não inserem na tabela Editado 30 de Janeiro de 2013 por fernvl007 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 30 de Janeiro de 2013 e isto, dá mensagem que foi inserido ? if (($Result1 = mysql_query($registo)) == null) echo "SQL error : ".mysql_error(); else echo "Foi inserido"; IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 Não diz nada Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 30 de Janeiro de 2013 então o problema é anterior a isso : print_r($_POST); // <------- verifica o que foi enviado if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) { IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 Actualmente o código com alguma alterações que foram colocadas aqui, não dá erro nenhum mas também não introduz os dados na base de dados Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 30 de Janeiro de 2013 então o problema é anterior a isso : print_r($_POST); // <------- verifica o que foi enviado if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) { IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 onde coloco esse código, ele não me está a funcionarContinuo sem conseguir introduzir dados na base de dados, qualquer ajuda é bem-vinda. Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 30 de Janeiro de 2013 Acho que é melhor procurares saber sobre o que estás a tentar fazer, e depois vires com as dúvidas concretas. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
HappyHippyHippo 1185 Denunciar mensagem Publicado 30 de Janeiro de 2013 eu apresentei código onde uma linha é tua ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 (editado) Acho que é melhor procurares saber sobre o que estás a tentar fazer, e depois vires com as dúvidas concretas. Não consigo fazer um formulário do site cair na base de dados, é um formulário de inscrição para uma prova btt... Editado 30 de Janeiro de 2013 por fernvl007 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
yoda 138 Denunciar mensagem Publicado 30 de Janeiro de 2013 (editado) Se o todo não funciona, e como no PHP é fácil alterar e ver logo o resultado, porque não partes o processo que estás a criar em pequenos blocos até conseguir encontrar onde ele falha? Aqui está um exemplo, para ver se estás mesmo ligado à base de dados : $conect = mysql_connect("nome do servidor", "nomedoutilizadr", "senha") or die(mysql_error()); $db = mysql_select_db("nome_base_dados", $conect) or die(mysql_error()); Deixas só este código no ficheiro e abres, se correr mal vai aparecer uma mensagem de erro no ecrã. Independe disto, mete sempre este bloco de código no início do PHP : error_reporting(E_ALL); ini_set('display_errors', 1); Editado 30 de Janeiro de 2013 por yoda before you post, what have you tried? - http://filipematias.info sense, purpose, direction Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
sEnte 0 Denunciar mensagem Publicado 30 de Janeiro de 2013 Tens de ver se há incorências entre variaveis, e se as estás a inserir correctamente na BD, e não esquecer de aceder à mesma. "If It Ain't Broke, Break it and build something Cooler!" Unknown Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 31 de Janeiro de 2013 (editado) Se o todo não funciona, e como no PHP é fácil alterar e ver logo o resultado, porque não partes o processo que estás a criar em pequenos blocos até conseguir encontrar onde ele falha? Aqui está um exemplo, para ver se estás mesmo ligado à base de dados : $conect = mysql_connect("nome do servidor", "nomedoutilizadr", "senha") or die(mysql_error()); $db = mysql_select_db("nome_base_dados", $conect) or die(mysql_error()); Deixas só este código no ficheiro e abres, se correr mal vai aparecer uma mensagem de erro no ecrã. Independe disto, mete sempre este bloco de código no início do PHP : error_reporting(E_ALL); ini_set('display_errors', 1); Editado 31 de Janeiro de 2013 por fernvl007 Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites
fernvl007 0 Denunciar mensagem Publicado 31 de Janeiro de 2013 Este é o código no WAMP <?php virtual('/Connections/registo.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) { $insertSQL = sprintf("INSERT INTO registo (id, bd_nome, bd_n_bi, bd_idade, bd_sexo, bd_morada, bd_cod_postal, bd_localidade, bd_telefone, bd_email, bd_n_acompanhantes, bd_refeicao, bd_mensagem) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['id'], "int"), GetSQLValueString($_POST['bd_nome'], "text"), GetSQLValueString($_POST['bd_n_bi'], "int"), GetSQLValueString($_POST['bd_idade'], "int"), GetSQLValueString($_POST['bd_sexo'], "text"), GetSQLValueString($_POST['bd_morada'], "text"), GetSQLValueString($_POST['bd_cod_postal'], "text"), GetSQLValueString($_POST['bd_localidade'], "text"), GetSQLValueString($_POST['bd_telefone'], "int"), GetSQLValueString($_POST['bd_email'], "text"), GetSQLValueString($_POST['bd_n_acompanhantes'], "int"), GetSQLValueString($_POST['bd_refeicao'], "text"), GetSQLValueString($_POST['bd_mensagem'], "text")); mysql_select_db($database_registo, $registo); $Result1 = mysql_query($insertSQL, $registo) or die(mysql_error()); $insertGoTo = "/index.htm"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } ?> Este é o código no WAMP <?php virtual('/Connections/registo.php'); ?> <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) { $insertSQL = sprintf("INSERT INTO registo (id, bd_nome, bd_n_bi, bd_idade, bd_sexo, bd_morada, bd_cod_postal, bd_localidade, bd_telefone, bd_email, bd_n_acompanhantes, bd_refeicao, bd_mensagem) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", GetSQLValueString($_POST['id'], "int"), GetSQLValueString($_POST['bd_nome'], "text"), GetSQLValueString($_POST['bd_n_bi'], "int"), GetSQLValueString($_POST['bd_idade'], "int"), GetSQLValueString($_POST['bd_sexo'], "text"), GetSQLValueString($_POST['bd_morada'], "text"), GetSQLValueString($_POST['bd_cod_postal'], "text"), GetSQLValueString($_POST['bd_localidade'], "text"), GetSQLValueString($_POST['bd_telefone'], "int"), GetSQLValueString($_POST['bd_email'], "text"), GetSQLValueString($_POST['bd_n_acompanhantes'], "int"), GetSQLValueString($_POST['bd_refeicao'], "text"), GetSQLValueString($_POST['bd_mensagem'], "text")); mysql_select_db($database_registo, $registo); $Result1 = mysql_query($insertSQL, $registo) or die(mysql_error()); $insertGoTo = "/index.htm"; if (isset($_SERVER['QUERY_STRING'])) { $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; $insertGoTo .= $_SERVER['QUERY_STRING']; } header(sprintf("Location: %s", $insertGoTo)); } ?> que funciona Partilhar esta mensagem Ligação para a mensagem Partilhar noutros sites