Foros del Web » Programando para Internet » PHP »

Ayuda

Estas en el tema de Ayuda en el foro de PHP en Foros del Web. Hola, estoy haciendo un proyecto de un libro donde los usuarios inician sesion y pueden acceder a ingresar marcadores o enlaces de paginas web. Aca ...
  #1 (permalink)  
Antiguo 29/04/2009, 11:35
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
Ayuda

Hola,
estoy haciendo un proyecto de un libro donde los usuarios inician sesion y pueden acceder a ingresar marcadores o enlaces de paginas web.
Aca esta el codigo de agregar marcador
Código PHP:
<?php
 
require_once("bookmark_fns.php");
 
session_start();
 
$new_url $_POST['new_url'];
 
do_html_header("Añadir Marcadores");
 
check_valid_user();
 if (!
filled_out($_POST))
 {
   echo 
"No has cubierto el formulario completamente.
         Prueba de nuevo por favor."
;
   
display_user_menu();
   
do_html_footer();
   exit;
 }
 else
 {
   
// comprobando el formato de  URL 
   
if (strstr($new_url"http")===false)
      
$new_url "http".$new_url;
   
// Comprueba que la URL es valida
   
if ("arroba"fopen($new_url"r"))
   {
     
//intenta añadir el marcador
     
if (add_bm($new_url))
       echo 
"Marcador añadido.";
     else
       echo 
"No se ha podido añadir marcador.";
   }
   else
     echo 
"No es un URL válido.";
 }
  if (
$url_array get_user_urls($_SESSION['valid_user']));
    
display_user_urls($url_array);


   
display_user_menu();
   
do_html_footer();
?>
y aqui estan las funciones get_user_urls y add_bm

Código PHP:

<?php
require_once("db_fns.php");
function 
get_user_urls($username)
{
 if (!(
$conn db_connect()))
    return 
false;
  
$result mysql_query("select bm_URL from bookmark where username = '$username'");
  if (!
$result)
    return 
false;
  
$url_array = array();
  for (
$count 1$row mysql_fetch_row($result); ++$count)
  {
    
$url_array[$count] = $row[0];
  }
  return 
$url_array;
}

function 
add_bm($new_url)
{
//Agregar nuevo marcador en la base de datos
  
echo "Intentando agregar ".htmlspecialchars($new_url).'<br />';
  
$valid_user $_SESSION['valid_user'];
  if (!(
$conn db_connect()))
    return 
false;
  
// Comprueba que no se repita el marcador
  
$result mysql_query("select * from bookmark where username='$valid_user' and bm_URL='$new_url'");
  if (
$result && (mysql_num_rows($result)>0))
    echo 
"El marcador ya existe";
    return 
false;
   
// Ingresa el nuevo marcador
  
if (!mysql_query"insert into bookmark values ('$valid_user', '$new_url')"))
    echo 
"El marcador no ha podido ingresarse.";

  return 
true;
}
Cuando intento ingresar el marcador a un usuario me sale el mensaje "No se ha podido añadir marcador." Y la estructura del enlace esta bien. No se muy bien a que se deba esto ya que apenas estoy comenzando a programar en php.
Les agradeceria cualquier respuesta....
  #2 (permalink)  
Antiguo 29/04/2009, 11:53
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Ayuda

Prueba con esto

<?php
require_once("bookmark_fns.php");
session_start();
$new_url = $_POST['new_url'];
do_html_header("Añadir Marcadores");
check_valid_user();
if (!filled_out($_POST))
{
echo "No has cubierto el formulario completamente.
Prueba de nuevo por favor.";
display_user_menu();
do_html_footer();
exit;
}
else
{
// comprobando el formato de URL
if (strstr($new_url, "http")===false) {
$new_url = "http".$new_url; }
// Comprueba que la URL es valida
elseif ("arroba"fopen($new_url, "r"))
{
//intenta añadir el marcador
if (add_bm($new_url)) {
echo "Marcador añadido."; }
else {
echo "No se ha podido añadir marcador."; }
}
else {
echo "No es un URL válido.";
}
if ($url_array = get_user_urls($_SESSION['valid_user'])) {
display_user_urls($url_array); }


display_user_menu();
do_html_footer();
?>


<?php
require_once("db_fns.php");
function get_user_urls($username)
{
if (!($conn = db_connect())) {
return false;
$result = mysql_query("select bm_URL from bookmark where username = '$username'"); }
if (!$result) {
return false;
$url_array = array();
for ($count = 1; $row = mysql_fetch_row($result); ++$count)
{
$url_array[$count] = $row[0];
}
return $url_array;
}

function add_bm($new_url)
{
//Agregar nuevo marcador en la base de datos
echo "Intentando agregar ".htmlspecialchars($new_url).'<br />';
$valid_user = $_SESSION['valid_user'];
if (!($conn = db_connect())) {
return false;
// Comprueba que no se repita el marcador
$result = mysql_query("select * from bookmark where username='$valid_user' and bm_URL='$new_url'"); }
elseif ($result && (mysql_num_rows($result)>0)) {
echo "El marcador ya existe";
return false; }
// Ingresa el nuevo marcador
elseif (!mysql_query( "insert into bookmark values ('$valid_user', '$new_url')"))
{
echo "El marcador no ha podido ingresarse.";

return true;
}

?>
  #3 (permalink)  
Antiguo 29/04/2009, 16:13
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Ayuda

Hola, gracias por responder.
Bien, creo que lo que me quisiste decir es que colocara el contenido de todos los if en llaves y que algunos los cambiara por elseif....Asi lo hice y me dice marcador añadido . Pero surgio otro pequeño problema: Cuando inicio sesion no me sale ningun marcador, me dice que no hay marcadores guardados, tengo que añadir uno para ver los que tengo en la bd.
Creo que el problema debe estar en la funcion get_user_urls, pero no estoy muy segura.
Gracias de nuevo por tu respuesta.
Saludos....
  #4 (permalink)  
Antiguo 29/04/2009, 16:34
 
Fecha de Ingreso: diciembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Ayuda

Ya solucione el problema.
El inconveniente estaba en estas linea de la funcion get_user_urls:

Código PHP:
function get_user_urls($username)
{
  if (!(
$conn db_connect())){
    return 
false;}
  
$result mysql_query("select bm_URL from bookmark where username = 'username'");
                          ...... 
Habia que declarar la variable de sesion y en el query igualar el nombre de usuario a esa variable.

Código PHP:
function get_user_urls($username)
{
$valid_user=$_SESSION["valid_user"];
  
//extract from the database all the URLs this user has stored
 
if (!($conn db_connect())){
    return 
false;}
  
$result mysql_query("select bm_URL from bookmark where username = '$valid_user'"); 
Gracias por tu ayuda...
Hasta pronto
  #5 (permalink)  
Antiguo 29/04/2009, 17:55
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Ayuda

si eso mismo, es que lo hice rapido y se me paso despues de volverte a pegar el codigo decirte ke los if y los else, (los condicionales) como los loops y demas va entre llaves, {} la tarea que debe realizar. que bueno que todo este bien.
  #6 (permalink)  
Antiguo 07/10/2009, 12:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 9
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Ayuda

Hola me pasaba lo mismo, gracias a francia0604 y a rolygc, lo solucione, si quieren pueden agregarme a [email protected], y comentamos un poco lo del curso y esas cosas. bueno saludos

Última edición por coloman; 07/10/2009 a las 21:27
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:44.