Newsgroup: it.comp.www.php
Titolo: salvare un articolo su db

Ragazzi, ho problema serio! :\
ho realizzato il seguente codice php per inserire un articolo in un db:
*****************************************************
<?
include ("config.inc.php");
include ("top_foot.inc.php");
//intestazione
top();
?>
<form action=save.php method=post name=form id="">
  Titolo:<br>
<input type=text size=40 name=titolo><br>
<br>
Data:<br>
<select name=giorno>
<?
for ($i=1; $i<=31; $i++)
echo "<option value=$i>$i";
?>
</select>
<select name=mese>
<option value=1>Gennaio
<option value=2>Febbraio
<option value=3>Marzo
<option value=4>Aprile
<option value=5>Maggio
<option value=6>Giugno
<option value=7>Luglio
<option value=8>Agosto
<option value=9>Settembre
<option value=10>Ottobre
<option value=11>Novembre
<option value=12>Dicembre
</select>
<select name=anno>
<option value=2001>2001
<option value=2002>2002
<option value=2003>2003
<option value=2004>2004
<option value=2005>2005
</select><br>
<br>
Autore:<br>
<input type=text size=40 name=autore><br>
<br>
E-mail:<br>
<input type=text size=40 name=mail><br>
<br>
Testo:<br>
  <textarea name=testo cols=60 rows=10></textarea>
  <br>
<br>
Password:<br>
<input type=password size=40 name=pass><br>
<br>
  <input type=submit value=Invia name=invia>
   </form>
<?// chiusura pagina
foot();?>
********************************
xrò quando invio i dati con la relativa password ESATTA la pagina save.php:
********************************
<? include("top_foot.inc.php");
include("config.inc.php");
top();
if ($pass != $password):
echo "Password errata";
else:
$titolo = addslashes(stripslashes($titolo));
$autore = addslashes(stripslashes($autore));
$mail = addslashes(stripslashes($mail));
$testo = addslashes(stripslashes($testo));
$data = mktime("0", "0", "0", $mese, $giorno, $anno);
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel
file config.inc.php");
$query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES
('$titolo', '$testo', '$data', '$autore', '$mail')";
if (mysql_query($query, $db))
echo "L'articolo è stato inserito correttamente";
else
echo "Erorre durante l'inserimento";
mysql_close($db); endif;
foot();
?>
*****************************************
 mi da sempre errore di password...
da cosa dipende?!
grazie

 da cosa dipende?!
fai una echo della $pass per vedere se c'è.
vedi faq per superglobal arrays.
consiglio:
INDENTA IL CODICE!!!!!!
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.netmeister.org/news/learn2quote.html

 > echo "Password errata";
$pass !== $password
      ^^^^
occhio che quando fai una comparazione devi usare due o tre uguale non 
uno che corrisponde all'assegnamento
-- 
__________________________________
~陡   Ale   ~陡
~~~ ICQ #54291095 ~~~~

 uno che corrisponde all'assegnamento
???
se ci metti un punto esclamativo davanti, non è assegnazione ma controlla 
che sia diverso!
quindi la sintassi è giustittima!!
(sempre che $pass sia inizializzata, cosa che dubito).
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://www.php.net

 > 
punka...@despammed.com
 says...
<?
if ($submit)
{
    $pass = null;
 
    if ($pass!==$testo)
    {
        echo "no";
    }
    else
    {
       echo "si";
    }
    echo "<br>";
    if ($pass!=$testo)
    {
        echo "no";
    }
    else
    {
       echo "si";
    }
}
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> 
<html>
<head>
       <title>Prova.php</title>
</head>
<body>
<form action="<?=$PHP_SELF?>" method="post">
<input type="text" name="testo">
<input type="submit" name="submit" value="invia">
</form>
</body>
</html>
ok, ma provando questo script direi che tra i due operatori c'è una 
certa differenza: prova a inviare il form senza scrivere niente nel 
campo text.
Se la password è reperita da un db, e il risultato della query ritorna 
un campo o un recordset null che si fa?

 
punka...@despammed.com
 says...
mi spiego meglio: credo che un controllo sull'identicità dei valori, 
soprattutto se sto controllando una pw, sia abbastanza importante, no?

 uno che corrisponde all'assegnamento
ma l'uno che corrisponde all'assegnamento, l'ha messo dopo un punto 
esclamativo, quindi OK!!
che poi controllare contenuto e tipo di una funzione sia meglio, dipende 
dai controlli che fai a monte. quando seleziono la pwd da un db, prima di 
confrontarla, controllo di averla!!
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://marketing.tenagra.com/rfc1855.html

 si. però la sintassi che usava RUBEN non è sbagliata!!
[+CUT]
sicuro, forse l'errore potrebbe anche stare nella definizione della 
password su cui fare il controllo (che nel suo post non mi sembra di 
vedere)... tra un codice senza errori e un codice funzionante ne passa 
:)
ciao