Las FAQ de es.comp.lenguajes.php Como acceder a es.comp.lenguajes.php Para editar los archivos .PHP de manera cómoda y eficaz Manuales Enlaces a páginas relacionadas con PHPServidores que te ofrecen hospedaje gratuito (algunos con MySQL)Lo que no cabe en los otros sitios¿Tienes preguntas sobre esta web?


FAQ de es.comp.lenguajes.PHP
por Lex (gracias a Kepler y a Christian por sus aportaciones)
version 0.1.
Ultima revisión 30/10/2003.


Si tienes preguntas o comentarios sobre esta faq, puedes hacerlas aquí:






Variables:

¿ Como se pasan variables de una pagina a otra?


Bases de datos:

Limitar los registros mostrados al acceder a una base de datos MySQL.
¿Por qué me da error la clausula IN de MySQL?


Sesiones:

¿Por qué no me funcionan las sesiones?


Fechas:

¿Cómo puedo sacar la fecha del sistema?
¿Cómo puedo hacer operaciones con fechas?


E-Mail:

¿Cómo puedo mandar un mail con html embebido usando la funcion mail() de PHP?
¿Cómo puedo enviar correos con PHP?
¿Cómo puedo enviar correos si el servidor smtp usa autenticación?
¿Cómo puedo enviar correos si el servidor smtp usa autenticación y no quiero usar clases?


Módulos:

¿Cómo puedo saber si tengo cargado el modulo de mysql, o cualquier otro modulo?
¿Cómo puedo añadir un módulo, biblioteca o extensión?


Otros:

Expresiones regulares en PHP.
¿Qué es el error: 'failed to create stream: Permision denied'?
¿Cómo puedo hacer gráficos en PHP?
¿Cómo puedo saber si tengo PHP bien instalado?
Partir un texto sin que se partan las palabras
¿Cómo puedo acelerar la carga de paginas PHP?
¿Cómo puedo instalar un módulo nuevo en PHP?
¿Por qué intento subir un fichero y no lo sube?
¿Un servidor gratuito que soporte PHP?
Ejemplo de Creación de imágenes




¿ Cómo se pasan variables de una pagina a otra?

Desde la versión 4.2 de PHP, se hace de una manera nueva. Esta consiste en utilizar los siguientes arrays:

$variable=$_GET["variable"];
$variable=$_POST["variable"];
$variable=$_REQUEST["variable"];

Si queremos pasar la variable por GET, entonces en el formulario html el "method" deberá ser GET.

En las versiones anteriores, si habíamos pasado una variable con un formulario, era irrelevante si se hacia con GET o POST. La variable ya aparecía instanciada en la nueva pagina, con lo que el paso anteriormente descrito no era necesario.

Comprueba en el php.ini que existe esta linea si quieres usar las variables como en PHP3:

register_globals = On


Pulsa el triangulito pa volver arriba.



¿Cómo puedo mandar un mail con html embebido usando la funcion mail() de PHP?

Antes de mandar el mail, debes rellenar la variable $cabeceras de esta manera, cosa que por lo general no es necesario hacer para enviarlo en modo texto.

$cabeceras = "Content-Type: text/html; charset=iso-8859-1\n";
mail("yo@yo.com","asunto", "mensaje", $headers);



Pulsa el triangulito pa volver arriba.
 

Limitar los registros mostrados al acceder a una base de datos MySQL.

Cuando queremos sacar sólo unos determinados registros de una consulta realizada (por ejemplo, los registros del 51 al 100) se debe añadir la clausula LIMIT. Esto es:

SELECT * FROM TABLA LIMIT 51,50

Pulsa el triangulito pa volver arriba.


Expresiones regulares en PHP.

Se comportan y se utilizan como en cualquier otro lenguaje. Hay una manual que sirve para hacerse una idea aqui:

http://es.tldp.org/Tutoriales/UXO/uxo/node25.html
http://www.php.net
Manuales de Perl (en Perl se usan bastante las expresiones regulares).


Pulsa el triangulito pa volver arriba.


¿Qué es el error: 'failed to create stream: Permission denied'?

Es un error de permisos. Tu programa intenta escribir en disco, pero el usuario bajo el que se ejecuta no tiene permisos para escribir en ese directorio. Si se trata de Unix/Linux, se puede solucionar facilmente con un chmod, o incluyendo el usuario en el grupo para el que tiene permisos.
 

Pulsa el triangulito pa volver arriba.


¿Como puedo hacer gráficos en PHP?

Existe una biblioteca, la GDLIB, y una mejorada, la GD2. Con cualquiera de ellas puedes hacer gráficos. En www.php.net se explica cómo de manera muy completa.
 

Pulsa el triangulito pa volver arriba.


¿Como puedo saber si tengo PHP bien instalado?

Haz una pagina prueba.php tal que asi:

<?
phpinfo();
?>


Pulsa el triangulito pa volver arriba.


¿Como puedo saber si tengo cargado el modulo de mysql, o cualquier otro modulo?

Ver "¿Como puedo saber si tengo PHP bien instalado?".

Pulsa el triangulito pa volver arriba.


¿Como puedo añadir un módulo, biblioteca o extensión?

En el php.ini ve a dynamic extensions y vigila que no esté "comentado" el módulo que deseas utilizar.


Pulsa el triangulito pa volver arriba.


Partir un texto sin que se partan las palabras:

Manera de Fidel:


<?
function string_word_cut($str,$anz)
{
    
$aux_str=substr($str,0,$anz);
    
$last substr (strrchr ($aux_str32), );
    
$neustrlen($aux_str)-strlen($last);
    return 
substr($str,0,$neu); 

string_word_cut($string,200);?>



Manera de Christian:

<?

function limit_string($cadena,$limite)
{
    
$cadena=explode('<rup>',wordwrap$cadena$limite,'<rup>'));
    return 
$cadena[0]."...";
}

?>


Pulsa el triangulito pa volver arriba.


Ejemplo de Creación de imágenes:

Gracias a Christian y Mainake:

<?
//Una Creacion De Jorge Luis Martinez M
//http://misCodigos.jlmnetwork.com/

/$Este Archivo Recibe Los Parametros $rutaQue Es La Ruta Interna De La
Imagen En El Servidor
Y Los Parametros $ancho y $alto Que Se Refiere Al
Alto Y Ancho De La Previsualizacion
.$/
:
ruta = :_GET['ruta'];
:
ancho = :_GET['ancho'];
:
alto = :_GET['alto'];
:
fuente imagecreatefrompng(:ruta);
:
imgAncho imagesx (:fuente);
:
imgAlto =imagesy(:fuente);
:
imagen ImageCreate(:ancho,:alto);

:
ImageCopyResized(:imagen,:fuente,0,0,0,0,:ancho,:alto,:imgAncho,:imgAlto);

header("Content-type: image/png");
imagepng(:imagen);
?>

Pulsa el triangulito pa volver arriba.


Cómo puedo sacar la fecha y hora del sistema?

$fecha=date("d/m/y H:i",time());


Pulsa el triangulito pa volver arriba.


¿Como puedo hacer operaciones con fechas?

Usa la función mktime(). Más info en http://es2.php.net/manual/es/function.mktime.php


Pulsa el triangulito pa volver arriba.


¿Como puedo enviar correos con PHP?

Usa la funcion mail().


Pulsa el triangulito pa volver arriba.


¿Como puedo enviar correos si el servidor smtp usa atenticacion?

Usa la clase phpmailer(). En la pagina de su creador puedes ver un ejemplo de como se usa.

http://phpmailer.sourceforge.net/


Pulsa el triangulito pa volver arriba.


¿Como puedo enviar correos si el servidor smtp usa autenticacion y no quiero usar clases?

function socketmail($toArray, $subject, $message) {
// $toArray format --> array("Name1" => "address1", "Name2" => "address2",
...)

ini_set(sendmail_from, "myemail@address.com");

$connect = fsockopen (ini_get("SMTP"), ini_get("smtp_port"), $errno,
$errstr, 30) or die("Could not talk to the sendmail server!");
$rcv = fgets($connect, 1024);

fputs($connect, "HELO {$_SERVER['SERVER_NAME']}\r\n");
$rcv = fgets($connect, 1024);

while (list($toKey, $toValue) = each($toArray)) {

fputs($connect, "MAIL FROM:myemail@address.com\r\n");
$rcv = fgets($connect, 1024);
fputs($connect, "RCPT TO:$toValue\r\n");
$rcv = fgets($connect, 1024);
fputs($connect, "DATA\r\n");
$rcv = fgets($connect, 1024);

fputs($connect, "Subject: $subject\r\n");
fputs($connect, "From: My Name <myemail@address.com>\r\n");
fputs($connect, "To: $toKey <$toValue>\r\n");
fputs($connect, "X-Sender: <myemail@address.com>\r\n");
fputs($connect, "Return-Path: <myemail@address.com>\r\n");
fputs($connect, "Errors-To: <myemail@address.com>\r\n");
fputs($connect, "X-Mailer: PHP\r\n");
fputs($connect, "X-Priority: 3\r\n");
fputs($connect, "Content-Type: text/plain; charset=iso-8859-1\r\n");
fputs($connect, "\r\n");
fputs($connect, stripslashes($message)." \r\n");

fputs($connect, ".\r\n");
$rcv = fgets($connect, 1024);
fputs($connect, "RSET\r\n");
$rcv = fgets($connect, 1024);
}

fputs ($connect, "QUIT\r\n");
$rcv = fgets ($connect, 1024);
fclose($connect);
ini_restore(sendmail_from);
}

Pulsa el triangulito pa volver arriba.


¿Como puedo acelerar la carga de paginas PHP?

Usando un motor como Zend.

Pulsa el triangulito pa volver arriba.


¿Como puedo instalar un módulo de PHP?

Echa un ojo al php.ini. Si trabajas con linux, se encuentra en /etc. Si trabajas con Win, lo tienes en c:\windows\php.ini. Abrelo, y descomenta las lineas de las bibliotecas que deseas usar. Si trabajas con la version cgi de PHP en Windows (ocupa menos de 1mb) no encontrarás las librerías. Deberás instalar la de 5mb, que sí las lleva.

Pulsa el triangulito pa volver arriba.


¿Por que no me funcionan las sesiones?

Echa un ojo al php.ini. Busca la seccion [Session]. Puede deberse a que no inicias la sesion. En este caso, vigila que en el php.ini ponga: session.auto_start = 1, o si no, puedes iniciar la sesion en medio de tu programa php con session_start();

Si aun no te funcionan, comprueba lo siguiente:

session.save_handler = files
session.save_path = pathdetussesiones

pathdetusesiones debe existir y tener los permisos adecuados para que PHP pueda escribir.

Pulsa el triangulito pa volver arriba.


¿Por qué intento subir un fichero y no lo sube?

Puede deberse a tres cosas:

Uno: El upload no está activado. Ve a php.ini y comprueba:

file_uploads = On

Dos : Estás excediendo el limite de subida. Ve a php.ini y comprueba este parametro:

upload_max_filesize = 2M

Tres: No está puesto el directorio donde se pueden subir los ficheros, o no tienes permiso para ello. Comprueba:

upload_tmp_dir =

Pulsa el triangulito pa volver arriba.


¿Por qué me da error la clausula IN de MySQL?

En MySQL el IN no está completamente soportado hasta la versión 4. Esto significa que dentro del IN puede ir una sucesión de valores ya calculados, pero no otra SELECT anidada.

Pulsa el triangulito pa volver arriba.


¿Un servidor gratuito que soporte PHP?


En esta página tienes una lista muy completa.


Pulsa el triangulito pa volver arriba.




FAQ | Acceso | Editores | RFD | Manuales | Enlaces | Hosting | Varios | Foro

Buscar en PHP.NET: