Jump to content

Recommended Posts

Posted (edited)

Boa tarde,

Eu estou a trabalhar num site onde tenho de adicionar utilizadores, mas estou com problemas na validação, não me faz nem echos nem adiciona nada:

<?php
include 'db_connect.php';
?>
<html>
<head>
<title>Adminstração</title>
</head>
<body style="color=#FFFFFF" bgcolor="#666666">
<table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<form method="post" action="">
<td align="center" valign="middle">
<table width="300px" cellpadding="0" cellspacing="3" bgcolor="#FFFFFF" style=" border: 1px solid #000000;">
<tr>
<td style=" border-style:none;">
<br>
</td>
</tr>
<tr>
<td align="right" style="font-size: 13;font-family: Arial, Helvetica, sans-serif;font-weight: bold;border-style:none;">
Utlizador:
</td>
<td style=" border-style:none;">
<input name="user" type="text">
</td>
</tr>
<tr>
<td align="right" style="font-size: 13;font-family: Arial, Helvetica, sans-serif;font-weight: bold;border-style:none;">
Password:
</td>
<td style=" border-style:none;">
<input name="password" type="password">
</td>
</tr>
<tr>
<td colspan="2" align="center" style=" border-style:none;">
<input type="submit" name="registar" value="Registar">
<a href="admin.php"> <input type="button" name="voltar" value="Voltar"> </a>
</td>
</tr>
<tr>
<td style=" border-style:none;">
<br>
</td>
</tr>
</table>
<span class="style1" style="font-size: 13;font-family: Arial, Helvetica, sans-serif;font-weight: bold;color: red;"> </span>
</td>
</form>
</tr>
</table>
</body>
</html>
<?PHP
if(isset($_POST['registar']))
{
$username = $_POST['user'];
$password = $_POST['password'];
if (empty($username) OR empty($password))
{
echo "<script>alert('Todos os campos são obrigatórios.')
location.href = 'add_user.php';</script>";
}
if ($username!="" && $password!="")
{
$sel_user="SELECT * FROM utilizadores";
$user=mysql_query($sel_user, $connect);
$row_user=mysql_fetch_assoc($user);
if ($username=$row_user['username'])
{
"<script>alert('O nome do utilizador ja existe.')</script>";
}
else
{
$sql="INSERT INTO utilizadores (username, password) VALUES ('".$username."','".sha1($password)."')";
$result = mysql_query($sql);
if(!$result)
{
echo "<script>alert('Erro a adicionar utilizador.')</script>";
}
else
{
echo "<script>alert('Utilizador adicionado com sucesso.');
location.href = 'admin.php';</script>";
}
}
mysql_close($connect);
}
}
?>
Edited by DevilRocks92
Posted (edited)

visto que não faz nem echos nem nada insere este linha de código antes do primeiro if e diz o que aparece:

print_r($_POST);

Array() :/

Mas espera aí ele so faz o primeiro echo se os campos tiverem vazios...daí pa frente é que não, e se puser o print, dá-me:

Array ( [user] => asdasd [password] => asdas [registar] => Registar )

Edited by DevilRocks92
Posted

(outro codigo com insert) Sem querer abusar, podes-me tentar explicar pq é que o "identificador" ele adiciona-me sempre 0?

<?PHP
include 'db_connect.php';

$query_id="SELECT * FROM content_lang";
$id=mysql_query($query_id);
$row_id=mysql_fetch_assoc($id);

$query_ident="SELECT * FROM content";
$ident=mysql_query($query_ident, $connect);
$row_ident=mysql_fetch_assoc($ident);
?>
<html>
<head>
 <title>Administração - Adicionar</title>
</head>

<body style="color:#FFFFFF;" bgcolor="#666666">
<form action="" method="POST">
 <table>
  <tr>
   <td align="right">
 Identificador:
   </td>

   <td>
 <select name="identifier">
  <?PHP do{ ?>
   <option value="<?PHP $row_ident['id_content']; ?>">
    <!--selcciona opção definida-->
    <?PHP echo $row_ident['identifier']; ?>
   </option>
  <?PHP } while ($row_ident=mysql_fetch_assoc($ident)); ?>
 </select>
   </td>
  </tr>

  <tr height="10px"></tr>

  <tr>
   <td align="right">
 Linguagem:
   </td>

   <td>
 <select name="lang">
  <option value="pt"> Português </option>
  <option value="en"> Inglês </option>
 </select>
   </td>
  </tr>

  <tr height="10px"></tr>

  <tr>
   <td align="right">
 Título:
   </td>

   <td>
 <input type="text" name="titulo">
 </input>
   </td>
  </tr>

  <tr height="10px"></tr>

  <tr>
   <td align="right" valign="top">
 Conteúdo:
   </td>

   <td>
 <textarea name="descricao" cols="50" rows="10"></textarea>
   </td>
  </tr>

  <tr>
   <td></td>

   <td>
 <input type="submit" name="adicionar" value="Adicionar Informação" />
 <a href="admin.php"><input type="button" name="update" value="Voltar"/></a>
   </td>
  </tr>
 </table>
</form>
</body>
</html>
<?PHP
/*************************************************/
if (isset($_POST['adicionar']))
{
$identifier=$_POST['identifier'];
$lang=$_POST['lang'];
$titulo=$_POST['titulo'];
$descricao=$_POST['descricao'];

$sel_id_cont="SELECT * FROM content WHERE identifier='".$identifier."'";
$id_cont=mysql_query($sel_id_cont, $connect);
$row_id_cont=mysql_fetch_assoc($id_cont);

if($add_info=mysql_query("INSERT INTO content_lang (id_content, lang, titulo, descricao) VALUES ('".$row_id_cont['id_content']."', '".$lang."', '".$titulo."', '".$descricao."')"))
{
 header ('Location: admin.php'); 
}
else
{
 echo 'Informação não foi inserida devido a um problema no sistema.';
}
}
?>
Posted (edited)

se o print_r dá Array() é obvio que o

if(isset($_POST['registar']))

vai falhar ...

no que toca na segunda questão ... volta a fazer a mesma coias : adicionar print_r($_POST) antes do

if (isset($_POST['adicionar']))
Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Posted

se o print_r dá Array() é obvio que o

if(isset($_POST['registar']))

vai falhar ...

no que toca na segunda questão ... volta a fazer a mesma coias : adicionar print_r($_POST) antes do

if (isset($_POST['adicionar']))

Array(), também. Qual é o problema?

Posted (edited)

não estás a receber dados nenhum no pedido ...

estás a testar isso depois de carregar no submit ??

Dá-me isto:

Array ( [identifier] => [lang] => pt [titulo] => titulo3 [descricao] => descricao3 [adicionar] => Adicionar Informação )

Identifier=0 e eu quero que me de o id

$sel_id_cont="SELECT * FROM content WHERE identifier='".$identifier."'";
$id_cont=mysql_query($sel_id_cont, $connect);
$row_id_cont=mysql_fetch_assoc($id_cont);

if($add_info=mysql_query("INSERT INTO content_lang (id_content, lang, titulo, descricao) VALUES ('".$row_id_cont['id_content']."', '".$lang."', '".$titulo."', '".$descricao."')"))

O primeiro do registo dá-me:

Array ( [user] => asd [password] => asd [registar] => Registar )

Edited by brunoais
Shesh... Este editor devia de aprender uma coisa ou outra sobre como lidar com texto copiado. | Geshi adicionado
Posted

se o post vem com o valor de 0 é porque isto

<option value="<?PHP $row_ident['id_content']; ?>">

dá o valor de zero ... porque dá zero .. .não faço ideia porque não conheço a base de dados (a sua estrutura e os valores ai guardados)

diz-me tu o html criado desse select

IRC : sim, é algo que ainda existe >> #p@p
Posted

se o post vem com o valor de 0 é porque isto

<option value="<?PHP $row_ident['id_content']; ?>">

dá o valor de zero ... porque dá zero .. .não faço ideia porque não conheço a base de dados (a sua estrutura e os valores ai guardados)

diz-me tu o html criado desse select

Epah tenho a tabela

content:

id_content (auto-increment) | identifier (varchar - adicionei manualmente)

content_lang:

id | id_content | lang | titulo | descricao

Posted (edited)

quero que facas post do html !!!

<html>
<head>
 <title>Administração - Adicionar Conteúdo</title>
</head>

<body style="color:#FFFFFF;" bgcolor="#666666">
<form action="" method="POST">
 <table>
  <tr>
<td align="right">
 Identificador:
</td>

<td>
 <select name="identifier">
  <?PHP do{ ?>
   <option value="<?PHP $row_ident['id_content']; ?>">
	<!--selcciona opção definida-->
	<?PHP echo $row_ident['identifier']; ?>
   </option>
  <?PHP } while ($row_ident=mysql_fetch_assoc($ident)); ?>
 </select>
</td>
  </tr>

  <tr height="10px"></tr>

  <tr>
<td align="right">
 Linguagem:
</td>

<td>
 <select name="lang">
  <option value="pt"> Português </option>
  <option value="en"> Inglês </option>
 </select>
</td>
  </tr>

  <tr height="10px"></tr>

  <tr>
<td align="right">
 Título:
</td>

<td>
 <input type="text" name="titulo">
 </input>
</td>
  </tr>

  <tr height="10px"></tr>

  <tr>
<td align="right" valign="top">
 Conteúdo:
</td>

<td>
 <textarea name="descricao" cols="50" rows="10"><textarea>
</td>
  </tr>

  <tr>
<td></td>

<td>
 <input type="submit" name="adicionar" value="Adicionar Informação" />
 <a href="admin.php"><input type="button" name="update" value="Voltar"/></a>
</td>
  </tr>
 </table>
</form>
</body>
</html>
Edited by brunoais
o a linguagem indicada estava errada
Posted

Não.

Ele quer que executes o teu código.

E no browser vejas o código da página e coles aqui o resultado.

Firefox -> Botão do Lado Direito do Rato na Pagina -> "Ver código fonte da página"

Posted (edited)

Não.

Ele quer que executes o teu código.

E no browser vejas o código da página e coles aqui o resultado.

Firefox -> Botão do Lado Direito do Rato na Pagina -> "Ver código fonte da página"


<html>
<head>
 <title>Administração - Adicionar Conteúdo</title>
</head>
<body style="color:#FFFFFF;" bgcolor="#666666">
<form action="" method="POST">
 <table>
  <tr>
   <td align="right">
 Identificador:
   </td>

   <td>
 <select name="identifier">
		 <option value="">
    <!--selcciona opção definida-->
    Family Office	   </option>
		 <option value="">
    <!--selcciona opção definida-->
    Multi Family Office	   </option>
		 <option value="">
    <!--selcciona opção definida-->
    Foco	   </option>
		 <option value="">
    <!--selcciona opção definida-->
    Serviços	   </option>
		 <option value="">
    <!--selcciona opção definida-->
    Valores	   </option>
		 <option value="">
    <!--selcciona opção definida-->
    Seminários	   </option>
	   </select>
   </td>
  </tr>

  <tr height="10px"></tr>

  <tr>
   <td align="right">
 Linguagem:
   </td>

   <td>
 <select name="lang">
  <option value="pt"> Português </option>
  <option value="en"> Inglês </option>
 </select>
   </td>
  </tr>

  <tr height="10px"></tr>

  <tr>
   <td align="right">
 Título:
   </td>

   <td>
 <input type="text" name="titulo">
 </input>
   </td>
  </tr>

  <tr height="10px"></tr>

  <tr>
   <td align="right" valign="top">
 Conteúdo:
   </td>

   <td>
 <textarea name="descricao" cols="50" rows="10"><textarea>
   </td>
  </tr>

  <tr>
   <td></td>

   <td>
 <input type="submit" name="adicionar" value="Adicionar Informação" />
 <a href="admin.php"><input type="button" name="update" value="Voltar"/></a>
   </td>
  </tr>
 </table>
</form>
</body>
</html>

Array
(
   [identifier] =>
   [lang] => pt
   [titulo] => sg.,rds
   [descricao] => grçlsg
   [adicionar] => Adicionar Informação
)
Edited by brunoais
geshi!
Posted (edited)

O teu

<?PHP $row_ident['id_content']; ?>

Não está a retornar nada. Logo os Values do select estão a vazios, e por isso é que não é enviado nada pelo _POST

<option value="">
		<!--selcciona opção definida-->
		Seminários	</option>

Mete assim:

<?PHP echo $row_ident['id_content']; ?>

Ou:

<?=$row_ident['id_content']; ?>
Edited by johnmaia

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.