IF dependiendo si hay ID

Iniciado por viher, 14 Septiembre 2010, 02:41 AM

0 Miembros y 3 Visitantes están viendo este tema.

viher

hola,resulta que yo tengo una archivo php que reproduce videos por ID,el archivo se llama videos.php y tiene el siguiente código:

Código (php) [Seleccionar]
<? include ("config.php");
$id = $_GET['id'];
$sql = "select * from videos where id=$id";
$squery = mysql_query($sql);
while($row = mysql_fetch_array($squery)){
echo $row['nombre']; }
?>


el caso es que si pongo video.php?id=24 me carga el video con la ID 24 y funciona perfectamente,el problema es que si entro en video.php sin poner ninguna ID da errores por todos lados ya que no hay ID,cómo podría hacer un IF detecte si se ha puesto una ID o no y tenga 2 diferentes salidas.He estado intentarlo hacerlo yo pero no se como hacer que detecte lo de la ID. Gracias por la ayuda!

Dznp

Es fácil...

Mirá, te lo hago, si necesitas más ayuda mandame un PM


Código (php) [Seleccionar]
<? include ("config.php");
$id = $_GET['id'];
if($id==NULL){
exit("no se especifico un ID");
} else {
$sql = "select * from videos where id=$id";
$squery = mysql_query($sql);
if(mysql_num_rows($squery){
while($row = mysql_fetch_array($squery)){
echo $row['nombre'];
}
} else {
echo 'No existe ningún video con el ID puesto';
}
}
?>


Hace casí 5 meses que no toco NADA de PHP, pero no creo que tenga errores.  ;)
Otra cosíta más... Esa consulta es vulnerable a SQL Inyección, busca en Google como hacer una consulta segura.


Suerte  :rolleyes:

#!drvy

Código (php) [Seleccionar]
if(isset($_GET['id']))
{
// codigo
}
else { print "sin id";}

o
Código (php) [Seleccionar]
if(empty($_GET['id']))
{
print 'sin id';
}
else
{
// codigo
}



Saludos

Shell Root

Yo lo haría así,
Código (php) [Seleccionar]
include ("config.php");
function sVideo($sID){
 if(!empty($sID)){
   $sSQL = "SELECT * FROM videos WHERE sID=".$sID;
   $sQuery = mysql_query($sSQL);
   while($sRow = mysql_fetch_array($sQuery)){
     echo $sRow ['nombre'];
   }
 }else{
   echo 'ID Vacio';
 }
}
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

viher

gracias drvy | BSM tu es funciona perfectamente,losiento Shell Root pero el tuyo daba error.gracias

tragantras

que os pasa a todos? estais posteando en un foro de hacking y a ninguno se le ocurre limpiar el input?! xD

buena suerte con la seguridad de la web...
Colaboraciones:
1 2

Franki

A lo mejor tiene al principio de cada script una función recursiva que limpia las entradas de datos xDD

:ohk<any>

Bien, pero no te olvides nunca de limpiar tu ID.
Porque nunca se sabe que puede querer un visitante. Si me entiendes.
Para ello la funcion esta en el foro, te la copio aca:

Código (php) [Seleccionar]

<?php
function addslashes__recursive($var){
if (!
is_array($var))
return 
addslashes($var);
$new_var = array();
foreach (
$var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v);
return 
$new_var;
}
$_POST=addslashes__recursive($_POST);
$_GET=addslashes__recursive($_GET);
$_REQUEST=addslashes__recursive($_REQUEST);
$_SERVER=addslashes__recursive($_SERVER);
$_COOKIE=addslashes__recursive($_COOKIE);
?>



Saludos
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

Shell Root

Cita de: viher en 14 Septiembre 2010, 03:44 AM...,losiento Shell Root pero el tuyo daba error...
Pero si te fijas, es lo mismo que vos tenias principalmente, solo le agregue el IF.  :silbar:
Cita de: tragantras en 14 Septiembre 2010, 11:21 AM
que os pasa a todos? estais posteando en un foro de hacking y a ninguno se le ocurre limpiar el input?! xD
Cof, cof. Que porque es un foro de "hacking", siempre tenemos que hablar de eso?. A ver que le sacas al subforo "Diseño Gráfico".  :P
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

viher

Cita de: ohk en 14 Septiembre 2010, 15:17 PM
Bien, pero no te olvides nunca de limpiar tu ID.
Porque nunca se sabe que puede querer un visitante. Si me entiendes.
Para ello la funcion esta en el foro, te la copio aca:

Código (php) [Seleccionar]

<?php
function addslashes__recursive($var){
if (!
is_array($var))
return 
addslashes($var);
$new_var = array();
foreach (
$var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v);
return 
$new_var;
}
$_POST=addslashes__recursive($_POST);
$_GET=addslashes__recursive($_GET);
$_REQUEST=addslashes__recursive($_REQUEST);
$_SERVER=addslashes__recursive($_SERVER);
$_COOKIE=addslashes__recursive($_COOKIE);
?>



Saludos

y éste código se lo tengo que poner en todas las páginas que obtengan una ID para despues limpiarla? y así no habra ningún problema de seguridad en la web? perdonarme pero de seguridad web no entiendo mucho y gracias por la ayuda.