Foros del Web » Programando para Internet » PHP »

Funciona en localhost pero no en internet =S

Estas en el tema de Funciona en localhost pero no en internet =S en el foro de PHP en Foros del Web. tengo estos dos codigos: subir.php @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <? $ssql = mysql_query ( "select * from categorias order by cat_nombre asc" ) ...
  #1 (permalink)  
Antiguo 08/02/2011, 20:18
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 3 meses
Puntos: 26
Funciona en localhost pero no en internet =S

tengo estos dos codigos:

subir.php
Código PHP:
Ver original
  1. <?$ssql=mysql_query("select * from categorias order by cat_nombre asc");?>
  2. <div class='leftbox'>
  3. <form action="?mod=registrar" method="POST" enctype="multipart/form-data">
  4. <table>
  5. <tr><td><font size='2'>¿Que publicara?</font></td>
  6. <td>
  7. <input type='radio' name='publicar' value='0'/> <font size='2'>Noticia</font> <input type='radio' name='publicar' value='1'/> <font size='2'>Video</font>
  8. </td></tr>
  9. <tr><td><font size='2'>Categoria: </font></td>
  10. <td>
  11. <select name='categoria'>
  12. <?while($row=mysql_fetch_assoc($ssql)){?>
  13. <option value='<?echo $row['cat_id']?>'><?echo $row['cat_nombre']?></option>
  14. <?}?>
  15. </select>
  16. </td></tr>
  17. <tr><td><font size='2'>Año: </font></td><td><input name="año" type="text"/></td></tr>
  18. <tr><td><font size='2'>Autor: </font></td><td><input name="autor" type="text"/></td></tr>
  19. <tr><td><font size='2'>Titulo: </font></td><td><input name="nombre_archivo" type="text"/></td></tr>
  20. <tr><td><font size='2'>Video: </font></td><td><input name="fichero" type="file"/></td></tr>
  21. <tr><td><font size='2'>Imagen: </font></td><td><input  type="file"/></td></tr>
  22. <tr><td><font size='2'>Cuerpo: </font></td><td><textarea name='cuerpo' rows='8' cols='35'></textarea></td></tr>
  23. <tr><td colspan='2'><input name="submit" type="submit" value="Upload!"></td></tr>
  24. </table>
  25. </form>
  26. </div>

registrar.php
Código PHP:
Ver original
  1. <div class='leftbox'>
  2. <?if(isset($_POST['submit'])){
  3.     if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
  4.         $ruta_destino = "videos/";
  5.         $namefinal= trim ($_FILES['fichero']['name']);
  6.         $namefinal= ereg_replace (" ", "", $namefinal);
  7.         $uploadfile= $ruta_destino . $namefinal;  
  8.             if(move_uploaded_file($_FILES['fichero']['tmp_name'], $uploadfile)){
  9.                 $nombre_archivo  = $_POST["nombre_archivo"];
  10.                 $query = "insert into noticias values(NULL,'".$_FILES['fichero']['name']."','$_POST[año]','$_POST[autor]','$nombre_archivo','imagen','$_POST[cuerpo]','0','$_POST[categoria]')";
  11.                 mysql_query($query) or die(mysql_error());
  12.                 echo "El archivo <b>'".$nombre_archivo."'</b> ha sido registrado de manera satisfactoria.<br/><a href='?mod=home'>Volver</a>";
  13.             }  
  14.     }
  15. }
  16. ?>
  17. </div>

hay algo que no entiendo, este codigo sube un archivo al servidor, en localhost funciona muy bien, pero cuando lo subo a mi servidor en internet, no anda. No salen errores ni nada.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #2 (permalink)  
Antiguo 08/02/2011, 20:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Funciona en localhost pero no en internet =S

Puede ser por muchas razones, versión de php, rutas de archivos, permisos, etc. No tienes errores, pero tampoco estás poniendo condicionales para mostrarlos.
  #3 (permalink)  
Antiguo 08/02/2011, 20:45
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 3 meses
Puntos: 26
Respuesta: Funciona en localhost pero no en internet =S

como condicionales?
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #4 (permalink)  
Antiguo 08/02/2011, 20:55
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Funciona en localhost pero no en internet =S

Por ejemplo acá:

Código PHP:
Ver original
  1. if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {

no tenés un else{ echo "no subio!";}
  #5 (permalink)  
Antiguo 08/02/2011, 21:34
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 3 meses
Puntos: 26
Respuesta: Funciona en localhost pero no en internet =S

mmm me tiro un error:

Notice: Undefined variable: nombre_archivo in /home/benadmin/public_html/cortos/modulos/registrar.php on line 16
El archivo '' no pudo ser subido.
Volver
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #6 (permalink)  
Antiguo 08/02/2011, 21:47
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Funciona en localhost pero no en internet =S

Aps, no le pusiste el name="nombre_archivo" a tu tag <inputy type="file" />
  #7 (permalink)  
Antiguo 08/02/2011, 21:53
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 3 meses
Puntos: 26
Respuesta: Funciona en localhost pero no en internet =S

no no es eso, nombre_archivo se refiere al titulo de la noticia, lo que pasa es que los archivos no los subo como tal a la base de datos, si no que lo subo al servidor, y en la bd coloco su ruta. Esta es una web de cortometrajes, nombre_archivo es referido a el titulo del corto. De hecho el error que me tira lo envia a la linea 16 pero ahi tengo la etiqueta ?>

si lo raro es que en localhost no me tira errores, sino que es en internet.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #8 (permalink)  
Antiguo 08/02/2011, 22:18
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Funciona en localhost pero no en internet =S

Puede ser que en tu localhost, no tengas activada la detección de errores o desactivada en el proyecto. Intenta darle el path completo ( del servidor, no el http:// ) aquí:

Código PHP:
Ver original
  1. $ruta_destino = "videos/";

por ejemplo:

Código PHP:
Ver original
  1. $ruta_destino = "/var/www/misitio/videos/";
  #9 (permalink)  
Antiguo 08/02/2011, 22:27
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 3 meses
Puntos: 26
Respuesta: Funciona en localhost pero no en internet =S

bueno vere que onda mañana, aqui en chile son las 1.27 de la madrugada y tengo un sueño atros jajaja. vere que onda y mañana la publico.
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.
  #10 (permalink)  
Antiguo 08/02/2011, 23:07
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Funciona en localhost pero no en internet =S

En mi servidor no corre el <? ?> simple, necesito abrir con php <?php ?>, puede que también sea su caso.

subir.php

Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * $conexion: te falta agregar el link para la conexion a la base de datos
  4.  * Por ejemplo: $conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);
  5.  */
  6. $sql = mysql_query("select * from categorias order by cat_nombre asc", $conexion);
  7. ?>
  8. <div class='leftbox'>
  9. <form action="?mod=registrar" method="POST" enctype="multipart/form-data">
  10. <table>
  11.     <tr>
  12.         <td><font size='2'>¿Que publicara?</font></td>
  13.             <td>
  14.                 <input type='radio' name='publicar' value='0'/>
  15.                 <font size='2'>Noticia</font>
  16.                 <input type='radio' name='publicar' value='1'/>
  17.                 <font size='2'>Video</font>
  18.             </td>
  19.         </tr>
  20. <tr><td><font size='2'>Categoria: </font></td>
  21. <td>
  22. <select name='categoria'>
  23. <?php
  24. while($row=mysql_fetch_assoc($sql))
  25. {
  26.     echo '<option value=\''.$row["cat_id"].'\'>'.$row["cat_nombre"].'</option>';
  27. }
  28. ?>
  29. </select>
  30. </td></tr>
  31. <tr><td><font size='2'>Año: </font></td><td><input name="año" type="text"/></td></tr>
  32. <tr><td><font size='2'>Autor: </font></td><td><input name="autor" type="text"/></td></tr>
  33. <tr><td><font size='2'>Titulo: </font></td><td><input name="nombre_archivo" type="text"/></td></tr>
  34. <tr><td><font size='2'>Video: </font></td><td><input name="fichero" type="file"/></td></tr>
  35. <tr><td><font size='2'>Imagen: </font></td><td><input  type="file"/></td></tr>
  36. <tr><td><font size='2'>Cuerpo: </font></td><td><textarea name='cuerpo' rows='8' cols='35'></textarea></td>
  37. </tr>
  38. <tr><td colspan='2'><input name="submit" type="submit" value="Upload!"></td></tr>
  39. </table>
  40. </form>
  41. </div>

registrar.php

Código PHP:
Ver original
  1. <div class='leftbox'>
  2. <?php
  3. if(isset($_POST['submit'])){
  4.    
  5.     if(is_uploaded_file($_FILES['fichero']['tmp_name']))
  6.     {
  7.         $ruta_destino = "videos/";
  8.         $namefinal= trim ($_FILES['fichero']['name']);
  9.         $namefinal= ereg_replace (" ", "", $namefinal);
  10.         $uploadfile= $ruta_destino . $namefinal;  
  11.        
  12.             if(move_uploaded_file($_FILES['fichero']['tmp_name'], $uploadfile))
  13.             {
  14.                 $nombre_archivo  = $_POST["nombre_archivo"];
  15.                
  16.                 /**
  17.                  * Tu SQL esta completamente mal, a los $_POST[] les faltan las comillas
  18.                  * Cuando escribas una sentencia SQL, usa letras mayusculas ej.
  19.                  * $sql = SELECT * WHERE fool = bar; <- de esta forma es mas legible
  20.                  */
  21.                
  22.                 $query = "insert into noticias values(NULL,'".$_FILES['fichero']['name']."','$_POST[año]','$_POST[autor]','$nombre_archivo','imagen','$_POST[cuerpo]','0','$_POST[categoria]')";
  23.                 mysql_query($query) or die(mysql_error());
  24.                 echo "El archivo <b>'".$nombre_archivo."'</b> ha sido registrado de manera satisfactoria.<br/><a href='?mod=home'>Volver</a>";
  25.             }  
  26.            
  27.     }else{
  28.         print 'No se cargo el archivo';
  29.     }
  30. }
  31. ?>
  32. </div>
  #11 (permalink)  
Antiguo 08/02/2011, 23:35
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Funciona en localhost pero no en internet =S

cheka esta funcion is_uploaded_file ahi te dirá si se subió o no...

Etiquetas: internet, localhost
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 01:52.