Foros del Web » Programando para Internet » PHP »

no se como llamarlo

Estas en el tema de no se como llamarlo en el foro de PHP en Foros del Web. muy buenas foreros, otra vez por aquí y es que es la mejor web para aprender. el caso es que he creado una consulta pero ...
  #1 (permalink)  
Antiguo 10/10/2011, 08:24
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
no se como llamarlo

muy buenas foreros, otra vez por aquí y es que es la mejor web para aprender.

el caso es que he creado una consulta pero tengo un problema que me tiene bloqueada, la sentencia funciona pero no como yo quiero :


Código PHP:
Ver original
  1. "SELECT * FROM productos WHERE tienda = 'mango'";


voy aexplicar un poco lo que estoy realizando ya que sin LA EXPLICACION RESULTA IMPOSIBLE ENTENDER LO QUE QUIERO REALIZAR.

he creado una web donde un usuario se registra crea su tienda y el problema viene cuando creo una pagina para cada usuario registrado con las fotos de sus productos, esta pagina lógicamente debe ser visible para cualquier usuario de la web, entonces con la sentencia de arriba todo perfecto a cada usuario se le crea su pagina con sus fotos pero claro que sucede que si esta pagina se crea automáticamente cuando se crea un usuario como puedo cambiar el TIENDA = 'MANGO' PARA QUE MANGO VARIE O SE CAMBIE AUTOMATICAMENTE CON EL NOMBRE DE CADA USUARIO REGISTRADO AL COPIAR YO ESTA ESTA PAGINA A CADA USUARIO REGISTRADO .

bueno ya se que lia un poco , podria sustituir el mango en este caso por alguna variable que le diera el valor que yo deseo, si es asi como de sustituye en este caso mango por esa variable, y que valor le puedo dar a esa variable .

hos pongo el codigo de esta pagina y la que crea el directorio de cada usuario con la pagina index que es de la que estoy hablando.


codigo:php
este codigo php me crea un directorio para cada usuario y me copia una plantilla llamada index que es la que necesito cambiar el valor del campo que explicaba antes , podria en este codigo decirle que index se copie con alguna variable dandole valor del nombre de la tienda

Código PHP:
Ver original
  1. <!--aqui inicializamos las sessiones para recuperar los campos tienda y email del formulario de la pag index-->
  2. <?php
  3.  
  4. $_SESSION['email']=$_POST['email'];
  5. $_SESSION['tienda']=$_POST['tienda'];
  6.  
  7. ?>
  8.  
  9. <!--aqui introducimos los datos del formulario de la pag index en la tabla tienda-->
  10. <?php
  11.  
  12. // Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
  13. if(isset($_POST['tienda']) && !empty($_POST['tienda']) &&
  14. isset($_POST['pasword']) && !empty($_POST['pasword']) &&
  15. isset($_POST['email']) && !empty($_POST['email']) &&
  16. isset($_POST['tipo_de_tienda']) && !empty($_POST['tipo_de_tienda'])) {
  17.    
  18.  
  19. // Si entramos es que todo se ha realizado correctamente
  20.  
  21. $link = mysql_connect("localhost","root","");
  22. mysql_select_db("blueberryswebtiendas",$link);
  23.  
  24. // Con esta sentencia SQL insertaremos los datos en la base de datos
  25. mysql_query("INSERT INTO tienda (tienda,pasword,email,tipo_de_tienda)
  26. VALUES ('{$_POST['tienda']}','{$_POST['pasword']}','{$_POST['email']}','{$_POST['tipo_de_tienda']}')",$link);
  27.  
  28. // Ahora comprobaremos que todo ha ido correctamente
  29. $my_error = mysql_error($link);
  30.  
  31. }
  32.  
  33. ?>
  34.  
  35. <?php
  36. // Establecer nuestra ruta de acceso absoluta para los directorios que se crean en:
  37. $path = $_SERVER['DOCUMENT_ROOT'] . '/blueberryswebtiendas/webtiendas/';
  38.  
  39. if (isset($_POST['btnform1'])) {
  40.     // Apúntese a nuestro formulario de datos
  41.     $dirName = isset($_POST['tienda'])?$_POST['tienda']:false;
  42.  
  43.     // Primero validar el valor:
  44.     if ($dirName !== false && preg_match('~([^A-Z0-9]+)~i', $dirName, $matches) === 0) {
  45.         // Tenemos un directorio válido:
  46.         if (!is_dir($path . $dirName)) {
  47.             // Somos buenos para crear este directorio:
  48.             if (mkdir($path . $dirName, 0777)) {       
  49.            
  50.             }
  51.                
  52.         }
  53.    
  54.         // Datos no válidos, htmlenttie les encajona <> se utilizaron.
  55.         $dirName = htmlentities($dirName);
  56.         $error = "Usted tiene valores no válidos en {$dirName}.";
  57.  
  58.  }
  59. }
  60.  
  61. //copia de los directorios de la plantilla al directorio del usuario
  62.  
  63.             $dirName = isset($_POST['tienda'])?$_POST['tienda']:false;
  64.             //copiando contenido de directorios
  65.             $origen = "../blueberryswebtiendas/webtiendas/plantilla/"; //pon la carpeta origen
  66.             //pon la variable $nombre o una carpeta destino que ya exista
  67.             $destino ="../blueberryswebtiendas/webtiendas/$dirName";
  68.            
  69.            
  70. ?>
  71. <?php
  72.  
  73. //copia de los directorios de la plantilla al directorio del usuario
  74.  
  75.             $dirName = isset($_POST['tienda'])?$_POST['tienda']:false;
  76.             //copiando contenido de directorios
  77.             $origen = "../blueberryswebtiendas/webtiendas/plantilla/"; //pon la carpeta origen
  78.             //pon la variable $nombre o una carpeta destino que ya exista
  79.             $destino ="../blueberryswebtiendas/webtiendas/$dirName";
  80. //empezamos funcion recursiva para copiar contenidos de directorios
  81. copy_dir($origen,$destino);
  82.  
  83.  
  84. function copy_dir($origen,$destino)
  85. {
  86.  
  87. if (isset($_POST['btnform1'])) {
  88.    if (is_dir($destino))
  89.       echo "El directorio destino ya existe.<br>";
  90.    else
  91.       mkdir("$destino");
  92.    if ($vcarga = opendir($origen))
  93.    {
  94.       echo "Directorio: $origen<br><br>";
  95.       echo "Fichero(s):<br><br>";
  96.       while($file = readdir($vcarga))
  97.       {
  98.          if ($file != "." && $file != "..")
  99.          {
  100.             if (is_dir($origen."/".$file))
  101.             {
  102.                copy_dir($origen."/".$file,$destino."/".$file);
  103.             }
  104.             else
  105.             {
  106.                if(copy($origen."/".$file, $destino."/".$file))
  107.                   echo "<b>$file</b> se copió con éxito al directorio $destino .<br>";
  108.             }
  109.          }
  110.       }
  111.       closedir($vcarga);
  112.    }
  113. }
  114. }
  115.  
  116.  
  117. ?>

pagina index de la plantilla que comentaba que se le crea a cada usuario registrado

Código PHP:
Ver original
  1. <?php require_once('../../Connections/blueberryswebtiendas.php'); ?>
  2. <!--aqui hemos creado el juego de registro y el repetir region de los productos-->
  3. <?php
  4.  
  5.  
  6. if (!function_exists("GetSQLValueString")) {
  7. function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
  8. {
  9.   if (PHP_VERSION < 6) {
  10.     $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  11.   }
  12.  
  13.   $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
  14.  
  15.   switch ($theType) {
  16.     case "text":
  17.       $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  18.       break;    
  19.     case "long":
  20.     case "int":
  21.       $theValue = ($theValue != "") ? intval($theValue) : "NULL";
  22.       break;
  23.     case "double":
  24.       $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
  25.       break;
  26.     case "date":
  27.       $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
  28.       break;
  29.     case "defined":
  30.       $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
  31.       break;
  32.   }
  33.   return $theValue;
  34. }
  35. }
  36.  
  37. $maxRows_listadoproductos = 2;
  38. $pageNum_listadoproductos = 0;
  39.  
  40. if (isset($_GET['pageNum_listadoproductos'])) {
  41.   $pageNum_listadoproductos = $_GET['pageNum_listadoproductos'];
  42. }
  43. $startRow_listadoproductos = $pageNum_listadoproductos * $maxRows_listadoproductos;
  44.  
  45.  
  46. mysql_select_db($database_blueberryswebtiendas, $blueberryswebtiendas);
  47. $query_listadoproductos = "SELECT * FROM productos WHERE tienda = 'xanina'";
  48. $query_limit_listadoproductos = sprintf("%s LIMIT %d, %d", $query_listadoproductos, $startRow_listadoproductos, $maxRows_listadoproductos);
  49. $listadoproductos = mysql_query($query_limit_listadoproductos, $blueberryswebtiendas) or die(mysql_error());
  50. $row_listadoproductos = mysql_fetch_assoc($listadoproductos);
  51.  
  52. if (isset($_GET['totalRows_listadoproductos'])) {
  53.   $totalRows_listadoproductos = $_GET['totalRows_listadoproductos'];
  54. } else {
  55.   $all_listadoproductos = mysql_query($query_listadoproductos);
  56.   $totalRows_listadoproductos = mysql_num_rows($all_listadoproductos);
  57. }
  58. $totalPages_listadoproductos = ceil($totalRows_listadoproductos/$maxRows_listadoproductos)-1;
  59. ?>
  60.  
  61.  
  62.  
  63.  
  64.  
  65. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  66. <html xmlns="http://www.w3.org/1999/xhtml">
  67. <head>
  68. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  69. <title>Documento sin t&iacute;tulo</title>
  70. <link href="estiloplantilla.css" rel="stylesheet" type="text/css" />
  71. </head>
  72.  
  73. <body>
  74. <div id="contenedor">
  75.   <div id="cabecera">Colocar aquí el contenido para  id "cabecera"</div>
  76.  
  77. <div id="menu">Colocar aquí el contenido para  id "menu"</div>
  78. <div id="contenido">
  79.   <p>Productos de mi tienda:</p>
  80.  
  81.  <!--aqui del do hasta el while repetimos region para que se muestren los productos-->
  82.   <?php do { ?>
  83.     <table width="168" height="173" border="1" align="center">
  84.       <tr>
  85.         <td width="158" align="center"><a href="detalle_producto.php?producto_id=<?php echo $row_listadoproductos['producto_id']; ?>"><img src="productos/<?php echo $row_listadoproductos['foto_producto']; ?>" width="134" height="91" /></a></td>
  86.         </tr>
  87.       <tr>
  88.         <td height="23" align="center"><?php echo $row_listadoproductos['nombre_producto']; ?></td>
  89.         </tr>
  90.       <tr>
  91.         <td align="center"><?php echo $row_listadoproductos['precio_producto']; ?></td>
  92.         </tr>
  93.     </table>
  94.     <?php } while ($row_listadoproductos = mysql_fetch_assoc($listadoproductos)); ?>
  95. <p>&nbsp;</p>
  96.   <p>paginas</p>
  97.   <p>&nbsp;</p>
  98. </div>
  99. <div id="pie">Colocar aquí el contenido para  id "pie"</div>
  100. </div>
  101. </body>
  102. </html>
  103. <?php
  104. mysql_free_result($listadoproductos);
  105. ?>

Última edición por carolina3; 10/10/2011 a las 08:34
  #2 (permalink)  
Antiguo 10/10/2011, 08:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no se como llamarlo

En el momento de copiar la plantilla podrías reemplazar dicho texto, ¿o como ves?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 10/10/2011, 08:38
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: no se como llamarlo

siii eso es lo que quiero pero con que podría sustituir como creo una variable que me recupere ese valor automáticamente, ese es el problema
  #4 (permalink)  
Antiguo 10/10/2011, 08:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no se como llamarlo

Supongo que al crear las carpetas ahí es donde usas dicho valor como nombre, entonces solo debes hacer un str_replace() con ese valor justo donde tu plantilla lo requiera.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 10/10/2011, 08:46
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: no se como llamarlo

pateketrueke gracias voy a investigar como se hace, y gracias una vez mas ya que creo que me sacaste de mas de una jajaja voy a ver
  #6 (permalink)  
Antiguo 10/10/2011, 09:09
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: no se como llamarlo

Hola Carolina, por que no haces con un solo archivo. no entiendo por que copias toda la plantilla para cada usuario, lo ideal seria que tengas un solo archivo y pases la variable de tienda y hagas tu select con eso.

Saludos.
  #7 (permalink)  
Antiguo 10/10/2011, 09:38
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: no se como llamarlo

si seguramente tengas razón en lo que seria mejor un solo archivo , pero de todas formas necesito copiar igualmente, como puedo pasar la variable podrías darme algún ejemplo
  #8 (permalink)  
Antiguo 10/10/2011, 10:36
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: no se como llamarlo

Hola Carolina, tu tienes el index y es donde haces tu consulta para que cargue los datos de una determinada tienda cierto?, si es asi entonces solo es pasarle la variable tienda, tu lo tienes asi:

Código PHP:
$query_listadoproductos "SELECT * FROM productos WHERE tienda = 'xanina'"
deberias hacerlo asi:

Código PHP:
//recoges la variable tienda por get o post segun el caso
$tienda=$_GET['tienda'];

// y tu query quedaria asi
$query_listadoproductos "SELECT * FROM productos WHERE tienda = '$tienda'"
de esta manera solamente tendrias un archivo y ya no estarias copiando lo mismo para cada usuario.

Saludos.
  #9 (permalink)  
Antiguo 10/10/2011, 10:37
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
copiar variable

como puedo copiar una variable de una pagina a otra es decir pasarla de script de una pagina a otra
  #10 (permalink)  
Antiguo 10/10/2011, 10:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: copiar variable

Las variables no se copian, solo existen y se asignan.

Si deseas pasar una variable a otra pagina simplemente con que hagas un include del script que necesita dicha variable basta:
Código PHP:
$foo 'bar';
include 
'script.php'
script.php
Código PHP:
echo $foo// bar 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 10/10/2011, 10:40
 
Fecha de Ingreso: octubre-2011
Ubicación: USA
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 19
Respuesta: copiar variable

Si guardas el valor en una session siempre tendras el valor disponible en toda la aplicacion, al no ser que destruyas la session

Saludos
  #12 (permalink)  
Antiguo 10/10/2011, 10:43
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: copiar variable

el problema es que no hay sesión en esa pagina y necesito recuperar el valor de la variable
  #13 (permalink)  
Antiguo 10/10/2011, 10:46
 
Fecha de Ingreso: octubre-2011
Ubicación: USA
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 19
Respuesta: copiar variable

solo pon

Código PHP:
Ver original
  1. $_SESSION['var']=$variable_que_quieres_guardar;

para obtener el valor de retorno

Código PHP:
Ver original
  1. $resultado=$_SESSION['var'];

note que session_start(); debe ir al principio de cualquier codigo de la pagina

otra forma es guardarla en una arreglo o en una simple variable como dijo pateketrueke

Saludos
  #14 (permalink)  
Antiguo 10/10/2011, 10:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: copiar variable

Cita:
Iniciado por carolina3 Ver Mensaje
el problema es que no hay sesión en esa pagina y necesito recuperar el valor de la variable
No, el problema es que estás abriendo dos temas que hablan de lo mismo:
http://www.forosdelweb.com/f18/no-como-llamarlo-950032/

Por favor respeta las normas del foro, pues de verdad es obvio que abriste este tema porque en el otro no hayas solución.

Se paciente, debes mantenerte atenta de los temas que abres pues mas personas te pueden orientar, gracias.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 10/10/2011, 10:49
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: no se como llamarlo

si pero corrígeme si me equivoco método get se crea al pasar el valor de una session a ese index debería poder acceder cualquier persona es decir esa pagina se debe poder ver sin iniciar sesión entonces ese valor no se le puede pasar por post o get por eso quiero copiar una variable en el momento que se crea la plantilla así como yo ya se que cada plantilla es de un usuario en concreto se cual es el resultado de esa variable pero debe poderse crear automáticamente al copiar la plantilla.


claro esa seria la solución una vez creada esa variable que se me debe copiar automáticamente eso es lo que no se hacer.

gracias por ayudar heee
  #16 (permalink)  
Antiguo 10/10/2011, 11:00
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: no se como llamarlo

No no Carolina el Get no se crea con la session, el metodo GET o POST es para recibir variables por ejemplo si tu url es asi:

index.php?tienda=xanina o index.php?tienda=mango

recibes de esta manera:

Código PHP:
Ver original
  1. $tienda=$_GET['tienda'];

y luego haces tu consulta:
Código PHP:
Ver original
  1. $query_listadoproductos = "SELECT * FROM productos WHERE tienda = '$tienda'";

cuentame cuales son los pasos para acceder a una tienda?, me imagino que tienes un listado de tiendas verdad con un link para ver los datos de la tienda verdad?

Saludos
  #17 (permalink)  
Antiguo 10/10/2011, 11:22
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: no se como llamarlo

ginitofl no,

se debe poder acceder con una simple dirección con un dominio por eso el método get creo que no es la solución

Última edición por carolina3; 10/10/2011 a las 11:27
  #18 (permalink)  
Antiguo 10/10/2011, 11:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no se como llamarlo

A ver, no hay que darle mas vueltas al asunto.

¿El nombre de la variable radica en el nombre de la carpeta que has creado?

Si es así entonces puede que esta sea la solución:

/alvaro/index.php
Código PHP:
// archivo actual
$script __FILE__;
$carpeta dirname($script);
$nombre basename($carpeta);

echo 
$nombre// alvaro 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #19 (permalink)  
Antiguo 10/10/2011, 11:36
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: no se como llamarlo

pateketrueke si señorrr estaba pensando en sacarlo de la dirección, pero no pensé en la carpeta tampoco sabia hacerlo pero tiene buena pinta voy a provar siiiii te quieroooo
  #20 (permalink)  
Antiguo 10/10/2011, 11:48
 
Fecha de Ingreso: agosto-2011
Ubicación: barcelona
Mensajes: 237
Antigüedad: 12 años, 8 meses
Puntos: 1
Respuesta: no se como llamarlo

gracias ahora si funciona con 4 lineas , y yo dale que te dale muchas gracias a todos me habéis alegrado lo que queda de día

Etiquetas: html, mysql, registro, sql, tabla, variables, usuarios
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 10:36.