quasi ben sintetizzato nel titolo.
come si fa a far partire uno script SOLO dopo il click su pulsante invia?
io ho messo
ma me lo esegue lo stesso :(Codice PHP:
if(isset($_POST['nome_pulsante_invio'])){
//azioni
}
quasi ben sintetizzato nel titolo.
come si fa a far partire uno script SOLO dopo il click su pulsante invia?
io ho messo
ma me lo esegue lo stesso :(Codice PHP:
if(isset($_POST['nome_pulsante_invio'])){
//azioni
}
Codice PHP:
if( isset($_POST['pulsante']) )
{
//azioni
}
else
{
//form
}
però così in caso di errori e di controlli, il form sparisce...
come faccio a tenerlo li?
Codice PHP:
if( isset($_POST['pulsante']) )
{
//azioni
}
// form
Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
«Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen
scusa ma così è uguale al mio...
sto cavolo di from dove deve stare?
Lo devi mettere fuori dall'if per visualizzarlo sempre.
Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
«Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen
è fuori dall'IF, ma dentro l'else...
posta tutto il codice...
Per visualizzarlo sempre devi toglierlo dall'else come ti ho scritto sopra.
Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
«Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen
ma il codice contiene qualche errore: non riesco a capire come mai se inserisco un UN sbaglaito, non presente nel database, la procedura viene eseguita comunque...Codice PHP:
if(isset($_POST['invia'] )){
if($_POST['un']==""){
echo"<div id='Layer1' style='position:absolute; left:9px; top:290px; width:500px; height:50px; z-index:1'>";
echo"Devi inserire il nome utente, CRETINO!";
echo"</div>";
}
if($_POST['email']==""){
echo"<div id='Layer1' style='position:absolute; left:9px; top:310px; width:500px; height:50px; z-index:1'>";
echo"Devi inserire l'indirizzo email, CRETINO!";
echo"</div>";
}
if($_POST['un']!=="" & $_POST['email']!==""){
$user=$_POST['un'];
$query="SELECT * FROM utenti_fic WHERE username='$user'";
$res=mysql_query($query);
if($row=mysql_fetch_array($res)){
$row=mysql_fetch_array($res);
$ind_mail=$row['email'];
$oggetto="Nuova password F.I.C.";
$mitt="From: lsdFreeTime";
$n_passw_rel=rand(10000,32000);
$n_passw_rel=md5($n_passw_rel);
$num1=rand(1,32);
if($num1<=25){
$num2=$num1+7;
}
else if($num1>25){
$num2=$num-7;
}
$n_passw=substr($n_passw_rel,$num1,$num2);
$corpo="Ciao $row[username], da bravo Cretino ti è stata inviata una nuova password.
~~~~~~~~~~~~~~~
PASSWORD: $n_passw
~~~~~~~~~~~~~~
ora puoi loggarti con questa e potrai cambiarla una volta dentro al profilo utente.";
mail($ind_mail,$oggetto,$corpo,$mitt);
$cry=md5(n_passw);
$query="UPDATE utenti_fic SET password='$cry' WHERE username='$user' LIMIT 1";
mysql_query($query) or die (mysql_error());
echo"PASSWORD INVIATA CON SUCCESSO, controlla la tua mail";
}
else{
echo"i dati inseriti non corrispondono, verificali";
}
}
}
else{
?>
<form id="passw" name="passw" action="fic_pwrec.php" method="post">
<table>
<tr>
<td>#Nome_Utente:</td>
<td><input type="text" name="un"></td>
</tr>
<tr>
<td>#Indirizzo_Email:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td><input type="submit" name="invia" value="#Invia_PW"></td>
</tr>
</table>
</form>
<?
}
?>
</div>
ho dato una lettura veloce e mi è balzato all'occhio
dopo la stesura del corpo delle mailCodice PHP:
$cry=md5(n_passw);
modificalo in
e una cosa è sistemataCodice PHP:
$cry=md5($n_passw);
poi ho dato un'altra occhiata veloce e non so quanto
possa fungere, io sapevo che il segno "diverso" era !=Codice PHP:
if($_POST['un']!=="" & $_POST['email']!==""){
se poi ho saputo male smentitemi almeno imparo qualcosa
ciao!
ps: penso che $num tu le imposti prima, visto che dichiari solo $num1. ora controllo a guardare, ciao!
Ultima modifica di SFo : 21-03-2006 alle ore 20.13.09
cosi dovrebbe andare.Codice PHP:
if(isset($_POST['invia'] )){
if($_POST['un']==""){
echo"<div id='Layer1' style='position:absolute; left:9px; top:290px; width:500px; height:50px; z-index:1'>";
echo"Devi inserire il nome utente, CRETINO!";
echo"</div>";
}
if($_POST['email']==""){
echo"<div id='Layer1' style='position:absolute; left:9px; top:310px; width:500px; height:50px; z-index:1'>";
echo"Devi inserire l'indirizzo email, CRETINO!";
echo"</div>";
}
if($_POST['un']!=="" & $_POST['email']!==""){
$user=$_POST['un'];
$query="SELECT * FROM utenti_fic WHERE username='$user'";
$res=mysql_query($query);
if($row=mysql_fetch_array($res)){
$row=mysql_fetch_array($res);
$ind_mail=$row['email'];
$oggetto="Nuova password F.I.C.";
$mitt="From: lsdFreeTime";
$n_passw_rel=rand(10000,32000);
$n_passw_rel=md5($n_passw_rel);
$num1=rand(1,32);
if($num1<=25){
$num2=$num1+7;
}
else if($num1>25){
$num2=$num-7;
}
$n_passw=substr($n_passw_rel,$num1,$num2);
$corpo="Ciao $row[username], da bravo Cretino ti è stata inviata una nuova password.
~~~~~~~~~~~~~~~
PASSWORD: $n_passw
~~~~~~~~~~~~~~
ora puoi loggarti con questa e potrai cambiarla una volta dentro al profilo utente.";
mail($ind_mail,$oggetto,$corpo,$mitt);
$cry=md5(n_passw);
$query="UPDATE utenti_fic SET password='$cry' WHERE username='$user' LIMIT 1";
mysql_query($query) or die (mysql_error());
echo"PASSWORD INVIATA CON SUCCESSO, controlla la tua mail";
}
else{
echo"i dati inseriti non corrispondono, verificali";
}
}
}
?>
<form id="passw" name="passw" action="fic_pwrec.php" method="post">
<table>
<tr>
<td>#Nome_Utente:</td>
<td><input type="text" name="un"></td>
</tr>
<tr>
<td>#Indirizzo_Email:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td><input type="submit" name="invia" value="#Invia_PW"></td>
</tr>
</table>
</form>
</div>
@jostock, scusa ma che hai cambiato?
mi pare uguale :(
ho tolto l'else del form...
ma così torna uguale al mio precedente e non funzioanva così...
e mi sapreste spiegare come mai lo script NON verfica l'esistenza del campo username?
viene eseguito comquneu anche se inserisco un nomeutente non presente?
per controllare l'esistenza di un utente devi fare una cosa del genere:
Codice PHP:
$query = "SELECT * FROM utenti_fic WHERE username = '{$user}' LIMIT 1";
$query = mysql_query($query);
if( mysql_num_rows($query) > 0 )
{
//user esistente
}
else
{
//user non esistente
}
ma visto che a me serve di recupererare il vettore con i dati dell'utente, qualora questo debba modificare certe cose, tipo la password, il mio metodo va bene?
prima non facevo un tech_array come controllo e non andava, ora sembra funzionare:
e mi pare funzioni...Codice PHP:
if($_POST['un']!=="" & $_POST['email']!==""){
$user=$_POST['un'];
$query="SELECT * FROM utenti_fic WHERE username='mimmo'";
$res=mysql_query($query) or die(mysql_error());
if($row=mysql_fetch_array($res)){
//fa qualcosa
}else{//messaggio errore
...
va bene così?
potrebbe anche andar bene ma non è proprio sicuro, cmq fai come vuoi.
ma cmq il problema principale l'hai risolto?
allora, il problema principale è risolto, grazie.
ora vorrei chiarire il secondo punto. possiamo farlo qui, visto che funcool mi ha chiuso l'altro dicendo che si poteva parlarne qui.
perchè non è sicuro?
a me serve che le due input area prelevino quello che scrive l'utente.
se il nome utente è presente allora procede e manda la password random all'indirizzo email presente nel database.
perchè non è sicuro?
come si potrebbe fare un doppio controllo incorciato nomeutente/email?
ho modificato un po di codice vedi se funzionaCodice PHP:
<?
if(isset($_POST['invia'] )){
if($_POST['un'] == ""){
echo"<div id='Layer1' style='position:absolute; left:9px; top:290px; width:500px; height:50px; z-index:1'>";
echo"Devi inserire il nome utente, CRETINO!";
echo"</div>";
}
if($_POST['email'] == ""){
echo"<div id='Layer1' style='position:absolute; left:9px; top:310px; width:500px; height:50px; z-index:1'>";
echo"Devi inserire l'indirizzo email, CRETINO!";
echo"</div>";
}
if($_POST['un'] != "" && $_POST['email'] != ""){
$user=$_POST['un'];
$query="SELECT * FROM utenti_fic WHERE username='$user'";
$res=mysql_query($query);
if( ($number = mysql_num_rows($res)) > 0 ){
$row=mysql_fetch_array($res);
$ind_mail=$row['email'];
$oggetto="Nuova password F.I.C.";
$mitt="From: lsdFreeTime";
$n_passw_rel=rand(10000,32000);
$n_passw_rel=md5($n_passw_rel);
$num1=rand(1,32);
if($num1<=25){
$num2=$num1+7;
}
else if($num1>25){
$num2=$num-7;
}
$n_passw=substr($n_passw_rel,$num1,$num2);
$corpo="Ciao $row[username], da bravo Cretino ti è stata inviata una nuova password.
~~~~~~~~~~~~~~~
PASSWORD: $n_passw
~~~~~~~~~~~~~~
ora puoi loggarti con questa e potrai cambiarla una volta dentro al profilo utente.";
mail($ind_mail,$oggetto,$corpo,$mitt);
$cry=md5(n_passw);
$query="UPDATE utenti_fic SET password='$cry' WHERE username='$user' LIMIT 1";
mysql_query($query) or die (mysql_error());
echo"PASSWORD INVIATA CON SUCCESSO, controlla la tua mail";
}
else{
echo"i dati inseriti non corrispondono, verificali";
}
}
}
?>
<form id="passw" name="passw" action="fic_pwrec.php" method="post">
<table>
<tr>
<td>#Nome_Utente:</td>
<td><input type="text" name="un"></td>
</tr>
<tr>
<td>#Indirizzo_Email:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td><input type="submit" name="invia" value="#Invia_PW"></td>
</tr>
</table>
</form>
</div>
hai aggiutno una riga ulteriore, funge da ulteriore controllo?
no la riga in più è il <? iniziale...
funziona o no questo codice?
no. meglio il mio ;)
fai come vuoi, ma non dire che poi hai dei problemi visto che le soluzioni che ti vengono offerte non le accetti.
non scaldarti, stavo scherzando, su "meglio il mio".
non volevo offenderti.
il fatto è che non funziona il tuo codice...
non so che altro errore ci può essere visto che ho ricontrollato di nuovo il codice.
EHM: CERTE VOLTE MI SPACCHEREI LA TESTA.
a froza di fare copia incolla era sparita la connessione al database..
il tuo codice ora funziona.
quella riga che hai aggiunto, perchè da più sicurezza?
Ultima modifica di lsdforum : 21-03-2006 alle ore 21.37.14
il mio codice è più sicuro xke controllo se il numero dei risultati è maggiore di 0 invece come facevi controllavi se i dati venivano fetchati.
se magari c'era un errore sulla query il tuo codice restituiva sempre errore quando invece non era cosi.
visto che tutto è risolto: CHiudo!
Ultima modifica di jostock : 21-03-2006 alle ore 21.52.13