Newsgroup: it.comp.www.php
Titolo: Problema stupido (ma ne sto uscendo pazzo,aiutatemi)

Ciao a tutti,
è la prima volta che scrivo qui e scusatemi sin da ora per le boiate che
probabilmente dirò. Purtroppo non sono un esperto di php (in realtà
programma in c) ma per necessità ho dovuto far fronte alla creazione di
una pagina in php.
Il codice che trovate qui sotto dovrebbe:
- prendere da un form html i valori di due campi email e password
- connettersi ad un database e verificare la presenza di questa coppia
di dati. Se ci sono inizierà il download di un det. file, altrimenti si
verrà rediretti su una pagina di errore.
Il problema è che, anche se il record esiste, si viene rediretti sempre
sul msg di errore...come se non si trovasse nulla!!!
PS: I dati sul server/database li ho tolti ma ci sono e sono corretti.
Ho provato, nella query, a sostituire 'email' con '$email' (e così con
password)...ho provato a mettere su sostituire $_POST["email"] con
$_POST['email'] ma niente.
Non ho più idee...eppure nel database quel record c'è!
(se può essere di aiuto l'host è quello di Aruba).
<?
    $ilfile =
"
http://www.malcombsd.com/products/newswire/the_last_trunk/newswire.txt
"
;
    $nomecorto = "newswire.txt";
 
    mysql_connect("IP HOST", "USER", "PASS");
    mysql_select_db("NOME DATABASE");
 
    $email = $_POST["email"];
    $password = $_POST["password"];
 
    echo $email;
    echo $password;
 
    $query = "SELECT id FROM tabellautenti WHERE email='$email' AND
password='$password'";
    $res = mysql_query($query);
    $num = mysql_num_rows($res);
 
    if ($num != 1) {
        header("Location:
http://www.malcombsd.com/products/newswire/check_error.html
");
        exit(1); }
 
    header("Content-type: image/gif");
    header("Content-size: ".filesize($ilfile));
    //header("Content-location: $ilfile");
    header("Content-disposition: filename=$nomecorto");
    require($ilfile);
 
    /* oppure:
    header("Location: $ilfile");
    */
?>
-- 
Daniele "malcom"
malcom.N...@libero.it
web: 
http://www.malcombsd.com/
 
http://objectivepark.altervista.org/geeklog/public_html/

         exit(1); }
intanto prova a stampare $num e a vedere il suo valore, cmq il problema
potrebbe risiedere nel come hai dichiarato $query, prova cosě:
$query = "SELECT id FROM tabellautenti WHERE email=".$email."AND
password=".$password;
prova non so se č giusto
ste

 password=".$password;
Neanche così va purtroppo.
Se faccio gli echo dove va il risultato? Dove lo posso leggere?
Grazie


 Se faccio gli echo dove va il risultato? Dove lo posso leggere?
Sulla pagina web?
-- 
I'am what I'am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1

 Sulla pagina web?
Ehm aspetta, se guardi lo script lui fa un redirect su un'altra pagina.
Se tolgo il redirect posso vedere questo echo, giusto?


 Sulla pagina web?
Ok ecco l'errore
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result
resource
in/web/htdocs/
www.malcombsd.com/home/products/newswire/check_data.php
 on
line 16
malco...@libero.itjuwcuqzhlv
Questa è la linea 16
    $num = mysql_num_rows($res);
Questo è di nuovo lo script:
<?
    $ilfile =
"
http://www.malcombsd.com/products/newswire/the_last_trunk/newswire.txt
"
;
    $nomecorto = "newswire.txt";
 
    mysql_connect("62.149.150.21", "Sql32063", "2t3R2Gvn");
    mysql_select_db("Sql32063_4");
 
    $email = $_POST["email"];
    $password = $_POST["password"];
 
 
  //  $query = "SELECT id FROM tabellautenti WHERE email='$email' AND
password='$password'";
   $query = "SELECT id FROM tabellautenti WHERE email=".$email."AND
password=".$password;
   $res = mysql_query($query);
    $num = mysql_num_rows($res);
 
    if ($num != 1) {
        echo $email;
                echo $password;
        //header("Location:
http://www.malcombsd.com/products/newswire/check_error.html
");
        exit(1); 
    }
 
    header("Content-type: image/gif");
    header("Content-size: ".filesize($ilfile));
    //header("Content-location: $ilfile");
    header("Content-disposition: filename=$nomecorto");
    require($ilfile);
 
    /* oppure:
    header("Location: $ilfile");
    */
?>


 password=".$password;
mancano gli apici suppongo
SELECT id FROM tabellautenti WHERE email='".$email."' AND
password='".$password."'"
-- 
Chinaski FDB
www.glabs.it
email: 
ulloatildisturboglabs.it
togli il disturbo per scrivermi
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 mancano gli apici suppongo
Da sempre lo stesso errore.
Se può essere di aiuto,facendo la stessa query da phpMyAdmin sul server
il risultato è:
#1054 - Unknown column 'id' in 'field list' 


 #1054 - Unknown column 'id' in 'field list' 
Ho sostituito id con * e ora effettivamente funziona.
Mi rimane soltanto un problema.
Ora dovrei rendirizzare il browser sul link che punta a un file.
Questo posso farlo con
    header("Location:
http://www.malcombsd.com/products/newswire/index_it.html
");
ma il problema č che cosě, al momento del download tutti saprebbero il
link e andrebbe a puxxxxe tutto questo lavoro.
Per mascherare il download mi hanno consigliatgo di fare:
    header("Content-type: image/gif");
    header("Content-size: ".filesize($ilfile));
    require($ilfile);
ma non sembra funzionare.
Qualche idea?


 Per mascherare il download mi hanno consigliatgo di fare:
Mi correggo, avevo sbagliato qualche parametro.
Ora tutto va bene.
Ecco l'ultima parte che "maschera" il download:
        header("Content-type: file/sit");
    header("Content-size: ".filesize($ilfile));
    //header("Content-location: $ilfile");
    header("Content-disposition: filename=$nomecorto");
    require($ilfile);
RIngrazio tutti quanti per l'aiuto.


 pagina.  Se tolgo il redirect posso vedere questo echo, giusto?
Se fai un echo od invii dei dati all'output buffer, gli header inviati
successivamente non vengono inviati e viene sollevato un warning:
Warning: Cannot modify header information - headers already sent 
