Scusate, errore di distrazione
Scusate, errore di distrazione
Eccoci alla fine con l'ultima modifica postata da palla000:
compilando il form senza il campo telefono o immettendo lettere ottengo la risposta: Il campo telefono può contenere solo numeri!
compilando il form senza il campo nome ottengo la risposta: I dati sono stati inviati con successo!
compilando il form in tutti campi ottengo la risposta: I dati sono stati inviati con successo!
Sembra che tutto funzioni ma.... dove vado a vedere i dati inviati?
Ultima modifica di dietizziamoci : 15-05-2009 alle ore 21.49.29
Dovrebbe inserirli nella tabella, esegui la query per quello
scusa ma come detto all'inizio sono un po a digiuno di linguaggio informatico. potresti spiegarmi semplicemente i passi per eseguire una query in modo da stampare a video i dati conservati nel database?
Te le hanno già fatte le pagine!
In ogni caso: Guida PHP e MySQL Pratica
in teoria dovresti visualizzare tutti i dati inseriti nella pagina visualizza.php
in visualizza.php però i messaggi li possono vedere tutti e da come ho letto nei post precedenti li dovrebbero leggere solo i dottori o sbaglio ?
Se vuoi che sia tutto ad un gruppo ristretto la modifica da fare è abbastanza grandetta.
Dovrai permettere la registrazione e il login da parte dagli utenti, inserire in un gruppo l'utente (magari dottore) in modo da poter permettere la visualizzazione solo a loro, quindi fare una condizione, che se l'utente è dottore li mostra altrimenti mostra un errore o quel che si vuole
Non ho problemi per inserire una password. Il problema è che nella pagina visualizza.php non avevo inserito il nome della tabella e mi dava una pagina bianca (scusate...). Tutto risolto, ora funziona benisso tranne che:
in visualizza.php se seleziono l'opzione cancella non la esegue.
L'id del form compilato non si resetta anche se si cancella direttamente dal database. IN pratica la numerazione è progressiva e non resettabile.
Il campo nome non è obbligatorio nel form e sarebbe utile lo fosse.
Il campo telefono compare solo l'intestazione Telefono:
Il campo email non compare
Il campo testo compare ma senza intestazione
La stampa a video è la seguente:
1 prova
Telefono:
prova
Cancella
Ultima modifica di dietizziamoci : 16-05-2009 alle ore 16.37.39
ho visto che ce un errore se non scrivi dei campi in index.php e non capisco perchè mi da questo errore
Fatal error: Call to undefined function: emtpy() in /membri/dietizziamoci/contattailmedico/dietologo/index.php on line 12
non capisco perchè dice che non esiste...
prova così allora
Codice PHP:
<?php
include("config.php");
if(isset($_POST['Button1']))
{
$nome = trim(htmlentities($_POST['Nome']));
$telefono = trim(htmlentities($_POST['Telefono']));
$mail = htmlspecialchars(trim(str_replace(' ', '', $_POST['Email'])));
$note = trim(htmlentities($_POST['Note']));
if(isset($nome) && isset($telefono) && isset($mail) && isset($note)
{
die("Deve compilare tutti i campi!");
}
elseif(!eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail))
{
die("La sintassi della mail non è corretta!");
}
elseif(!is_numeric($telefono))
{
die("Il campo telefono può contenere solo numeri!");
}
$sql = "INSERT INTO " . $nome_tabella. " (nome, telefono, mail, note)
VALUES('" . mysql_real_escape_string($nome) . "', '" . mysql_real_escape_string($telefono) . "', '" . mysql_real_escape_string($mail) . "', '" . mysql_real_escape_string($note) . "')";
if (!($q = mysql_query($sql)))
{
die("errore nella query: ".mysql_error());
}
echo "I dati sono stati inviati con successo!";
}
else
{
?>
<form name="contact" method="post" action="<?= $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" id="Form1" onreset="ShowObject('TextArea1', 1);return false;">
<input type="hidden" name="" value="">
<input type="text" id="Editbox1" style="position:absolute;left:70px;top:0px;width:200px;font-family:Courier New;font-size:16px;z-index:0" size="20" name="Nome" value="">
<input type="text" id="Editbox2" style="position:absolute;left:70px;top:29px;width:200px;font-family:Courier New;font-size:16px;z-index:1" size="20" name="Telefono" value="">
<input type="text" id="Editbox3" style="position:absolute;left:70px;top:58px;width:200px;font-family:Courier New;font-size:16px;z-index:2" size="20" name="Email" value="">
<textarea name="Note" id="TextArea1" style="position:absolute;left:70px;top:87px;width:454px;height:126px;z-index:3" rows="5" cols="43">Gentilissimo dottore,
porto alla sua attenzione la seguente mia patologia:
</textarea>
<input type="reset" id="Button2" name="Button2" value="Cancella" style="position:absolute;left:174px;top:217px;width:96px;height:25px;z-index:4">
<input type="submit" id="Button1" name="Button1" value="Invia" style="position:absolute;left:71px;top:217px;width:96px;height:25px;z-index:5">
<div id="wb_Text4" style="position:absolute;left:1px;top:33px;width:65px;height:16px;z-index:6" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Telefono:</b></font></div>
<div id="wb_Text5" style="position:absolute;left:1px;top:63px;width:50px;height:16px;z-index:7" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Email:</b></font></div>
<div id="wb_Text6" style="position:absolute;left:1px;top:89px;width:50px;height:16px;z-index:8" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Note:</b></font></div>
<div id="wb_Text3" style="position:absolute;left:2px;top:6px;width:50px;height:16px;z-index:9" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Nome:</b></font></div>
</form>
<?php
}
?>
L'errore sta qui
if(empty($nome) && empty($telefono) && empty($mail) && emtpy($note)
invece di empty($note) c'è emtpy($note)
E aggiungi una tonda chiusa dopo:
Codice PHP:
if(isset($nome) && isset($telefono) && isset($mail) && isset($note)
biccheddu: ho aggiunto la parentesi ma anche adottando la correzione continua a darmi gli stessi problemi di prima.
fabio29: dove dovrei trovare quella stringa? perchè in index non c'è.
scusate per la parentesi
ma qualcuno sa perchè veniva quel errore??
@dietizziamoci: in index c'è
comunque questo è il codice corretto
@palla000:Codice PHP:
<?php
include("config.php");
if(isset($_POST['Button1']))
{
$nome = trim(htmlentities($_POST['Nome']));
$telefono = trim(htmlentities($_POST['Telefono']));
$mail = htmlspecialchars(trim(str_replace(' ', '', $_POST['Email'])));
$note = trim(htmlentities($_POST['Note']));
if(empty($nome) && empty($telefono) && empty($mail) && empty($note))
{
die("Deve compilare tutti i campi!");
}
elseif(!eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail))
{
die("La sintassi della mail non è corretta!");
}
elseif(!is_numeric($telefono))
{
die("Il campo telefono può contenere solo numeri!");
}
$sql = "INSERT INTO " . $nome_tabella. " (nome, telefono, mail, note)
VALUES('" . mysql_real_escape_string($nome) . "', '" . mysql_real_escape_string($telefono) . "', '" . mysql_real_escape_string($mail) . "', '" . mysql_real_escape_string($note) . "')";
if (!($q = mysql_query($sql)))
{
die("errore nella query: ".mysql_error());
}
echo "I dati sono stati inviati con successo!";
}
else
{
?>
<form name="contact" method="post" action="<?= $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" id="Form1" onreset="ShowObject('TextArea1', 1);return false;">
<input type="hidden" name="" value="">
<input type="text" id="Editbox1" style="position:absolute;left:70px;top:0px;width:200px;font-family:Courier New;font-size:16px;z-index:0" size="20" name="Nome" value="">
<input type="text" id="Editbox2" style="position:absolute;left:70px;top:29px;width:200px;font-family:Courier New;font-size:16px;z-index:1" size="20" name="Telefono" value="">
<input type="text" id="Editbox3" style="position:absolute;left:70px;top:58px;width:200px;font-family:Courier New;font-size:16px;z-index:2" size="20" name="Email" value="">
<textarea name="Note" id="TextArea1" style="position:absolute;left:70px;top:87px;width:454px;height:126px;z-index:3" rows="5" cols="43">Gentilissimo dottore,
porto alla sua attenzione la seguente mia patologia:
</textarea>
<input type="reset" id="Button2" name="Button2" value="Cancella" style="position:absolute;left:174px;top:217px;width:96px;height:25px;z-index:4">
<input type="submit" id="Button1" name="Button1" value="Invia" style="position:absolute;left:71px;top:217px;width:96px;height:25px;z-index:5">
<div id="wb_Text4" style="position:absolute;left:1px;top:33px;width:65px;height:16px;z-index:6" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Telefono:</b></font></div>
<div id="wb_Text5" style="position:absolute;left:1px;top:63px;width:50px;height:16px;z-index:7" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Email:</b></font></div>
<div id="wb_Text6" style="position:absolute;left:1px;top:89px;width:50px;height:16px;z-index:8" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Note:</b></font></div>
<div id="wb_Text3" style="position:absolute;left:2px;top:6px;width:50px;height:16px;z-index:9" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Nome:</b></font></div>
</form>
<?php
}
?>
L'errore sta qui
if(empty($nome) && empty($telefono) && empty($mail) && emtpy($note)
emtpy() non è una funzione
e cosa è se non è una funzione??
grazie per la pazienza (a tutti) e l'aiuto che mi state offrendo
@fabio29: ho modificato la pagina secondo le tue indicazioni ma:
La numerazione id del form è progressiva e non resettabile.
Il campo nome compare ma non è obbligatorio nel form e sarebbe utile lo fosse.
Il campo telefono non compare anche se correttamente compilato nel form
Il campo email non compare anche se correttamente compilato nel form
Il campo testo compare
L'opzione cancella mi rimanda a questa opzione: Sei sicuro di voler cancellare la richiesta? Sì No, se premo si non cancella nulla, se premo no mi riporta correttamente alla pagina visualizza.php.
La stampa a video della pagina visualizza.php è la seguente:
1 prova
Telefono:
prova
Cancella
Ultima modifica di dietizziamoci : 17-05-2009 alle ore 14.53.20
prova così
cancella.php
Codice PHP:
<?php
include("config.php");
$id = $_GET['id'];
if(!is_numeric($id))
die("Puoi inserire solo numeri nell'url!");
if(isset($_GET['id'])) {
if(isset($_GET['ok'])) {
$sql = "DELETE FROM ".$nome_tabella." WHERE id = ".$id;
$q1 = mysql_query($sql) or die("Errore nella query1: ".mysql_error());
if($q1)
echo "La richiesta è stata cancellata con successo!";
else
echo "Errore nella cancellazione della richiesta";
}
echo "Sei sicuro di voler cancellare la richiesta?<br />";
echo "<a href=\"cancella.php?id=".$id."\">Sì</a> <a href=\"visualizza.php\">No</a>";
}
?>
scusa ma in cancella.php negli url non c'è traccia di $_GET['ok']
quindi come fa a funzionare ?
if(isset($_GET['ok'])) ???
darà sempre la condizione nell'else no?
cavolo è vero!!! xD ho sbagliato l'url del link di sì
Codice PHP:
<?php
include("config.php");
$id = $_GET['id'];
if(!is_numeric($id))
die("Puoi inserire solo numeri nell'url!");
if(isset($_GET['id'])) {
if(isset($_GET['ok'])) {
$sql = "DELETE FROM ".$nome_tabella." WHERE id = ".$id;
$q1 = mysql_query($sql) or die("Errore nella query1: ".mysql_error());
if($q1)
echo "La richiesta è stata cancellata con successo!";
else
echo "Errore nella cancellazione della richiesta";
}
echo "Sei sicuro di voler cancellare la richiesta?<br />";
echo "<a href=\"cancella.php?id=".$id."&ok\">Sì</a> <a href=\"visualizza.php\">No</a>";
}
?>
@palla
Funziona molto bene :-)
Sei sicuro di voler cancellare la richiesta?
Sì No
Se però clicco sul si mi si ripropone la domanda
La richiesta è stata cancellata con successo!Sei sicuro di voler cancellare la richiesta?
Sì No
Se clicco sul si non fa, se clicco sul no mi rimanda alla pagina visualizza.php
Continuano però ad esserci i seguenti problemi:
La numerazione id del form è progressiva e non resettabile.
Il campo nome compare ma non è obbligatorio nel form e sarebbe utile lo fosse.
Il campo telefono non compare anche se correttamente compilato nel form
Il campo email non compare anche se correttamente compilato nel form
prova con questo codice su cancella.php
la numerazione degli id non mi sembra un problema :)Codice PHP:
<?php
include("config.php");
$id = $_GET['id'];
if(!is_numeric($id))
die("Puoi inserire solo numeri nell'url!");
if(isset($_GET['id'])) {
if(isset($_GET['ok'])) {
$sql = "DELETE FROM ".$nome_tabella." WHERE id = ".$id;
$q1 = mysql_query($sql) or die("Errore nella query1: ".mysql_error());
if($q1){
echo "La richiesta è stata cancellata con successo!";}else{
echo "Errore nella cancellazione della richiesta";}
}else{
echo "Sei sicuro di voler cancellare la richiesta?<br />";
echo "<a href=\"cancella.php?id=".$id."&ok\">Sì</a> <a href=\"visualizza.php\">No</a>";}
}
?>
EDIT:
Per il nome prova questo
index.php
controlla se il nome è vuoto,Codice PHP:
<?php
include("config.php");
if(isset($_POST['Button1']))
{
$nome = trim(htmlentities($_POST['Nome']));
$telefono = trim(htmlentities($_POST['Telefono']));
$mail = htmlspecialchars(trim(str_replace(' ', '', $_POST['Email'])));
$note = trim(htmlentities($_POST['Note']));
if(empty($nome) && empty($telefono) && empty($mail) && empty($note))
{
die("Deve compilare tutti i campi!");
} elseif(empty($nome))
{
die("Il campo nome è vuoto!");}
elseif(!eregi("^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$",$mail))
{
die("La sintassi della mail non è corretta!");
}
elseif(!is_numeric($telefono))
{
die("Il campo telefono può contenere solo numeri!");
}
$sql = "INSERT INTO " . $nome_tabella. " (nome, telefono, mail, note)
VALUES('" . mysql_real_escape_string($nome) . "', '" . mysql_real_escape_string($telefono) . "', '" . mysql_real_escape_string($mail) . "', '" . mysql_real_escape_string($note) . "')";
if (!($q = mysql_query($sql)))
{
die("errore nella query: ".mysql_error());
}
echo "I dati sono stati inviati con successo!";
}
else
{
?>
<form name="contact" method="post" action="<?= $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" id="Form1" onreset="ShowObject('TextArea1', 1);return false;">
<input type="hidden" name="" value="">
<input type="text" id="Editbox1" style="position:absolute;left:70px;top:0px;width:200px;font-family:Courier New;font-size:16px;z-index:0" size="20" name="Nome" value="">
<input type="text" id="Editbox2" style="position:absolute;left:70px;top:29px;width:200px;font-family:Courier New;font-size:16px;z-index:1" size="20" name="Telefono" value="">
<input type="text" id="Editbox3" style="position:absolute;left:70px;top:58px;width:200px;font-family:Courier New;font-size:16px;z-index:2" size="20" name="Email" value="">
<textarea name="Note" id="TextArea1" style="position:absolute;left:70px;top:87px;width:454px;height:126px;z-index:3" rows="5" cols="43">Gentilissimo dottore,
porto alla sua attenzione la seguente mia patologia:
</textarea>
<input type="reset" id="Button2" name="Button2" value="Cancella" style="position:absolute;left:174px;top:217px;width:96px;height:25px;z-index:4">
<input type="submit" id="Button1" name="Button1" value="Invia" style="position:absolute;left:71px;top:217px;width:96px;height:25px;z-index:5">
<div id="wb_Text4" style="position:absolute;left:1px;top:33px;width:65px;height:16px;z-index:6" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Telefono:</b></font></div>
<div id="wb_Text5" style="position:absolute;left:1px;top:63px;width:50px;height:16px;z-index:7" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Email:</b></font></div>
<div id="wb_Text6" style="position:absolute;left:1px;top:89px;width:50px;height:16px;z-index:8" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Note:</b></font></div>
<div id="wb_Text3" style="position:absolute;left:2px;top:6px;width:50px;height:16px;z-index:9" align="left">
<font style="font-size:13px" color="#000000" face="Arial"><b>Nome:</b></font></div>
</form>
<?php
}
?>
se poi vuoi che il nome contenga solo lettere puoi mettere is_string($nome) oppure usare le espressioni regolari come per la mail
poi per il numero in visualizza.php
hai chiamato il campo telefono
e su visualizza.php invece richiami il campo 'numero'
ecco il codice
Codice PHP:
<?php
include("config.php");
$sql=mysql_query("SELECT * FROM tua_tabella");
echo "<table>";
while(($r=mysql_fetch_array($sql))){
echo "<tr><td>".$r['id']."</td><td><h1><strong>".$r['nome']."</strong></h1></td></tr>";
echo "<tr><td>Telefono:</td><td><strong>".$r['telefono']."</strong></td></tr>";
echo "<tr><td>".$r['note']."</td></tr>";
echo "<tr><td><a href=\"cancella.php?id=".$r['id']."\">Cancella</a></td></tr>";
echo "<tr></tr>";
}
echo "</table>";
?>
Ultima modifica di fabio29 : 17-05-2009 alle ore 19.11.10
grande fabio29 :-). funziona tutto alla grande.
Un ultimo sforzo ragazzi. Avrei bisogno ancora di:
dopo aver compilato il form e dato invio, dopo il messaggio "i dati sono inviati con successo!", bisognerebbe riportarsi sulla home page.
Inserire per forza un commento nel campo note
dop aver visualizzato i dati in visualizza.php e dopo aver cancellato i dati e dopo il messaggio "La richiesta è stata cancellata con successo!" bisognerebbe riportarsi sulla pagina visualizza.php
il campo telefono mi viene stampato senza lo 0 iniziale del prefisso
io passerei ad esempio 'i dati sono stati inseriti con successo' tramite url (un pò come avviene qui sul pannello di altervista)
quindi dovresti mettere
poi in qualche punto della tua tuahomepage.php metteraiCodice PHP:
// al posto di echo"I dati sono stati inseriti con successo";//
$input=urlencode("I dati sono stati inseriti con successo!");
header("location: tuahomepage.php?input=$input");
Codice PHP:
echo $_GET['input'];
@fabio29: ho provato ma se immetto l'indirizzo della mia home page non va e mi da errore di percorso.
Se metto index.php mi rporta alla pagina del form.
Codice PHP:
$input=urlencode("I dati sono stati inseriti con successo!");
header("location: index.php?input=$input");
quale è la tua homepage? index.php? però si trova nella cartella principale giusto? e queste pagine da come ho visto si trovano su contattailmedico/dietologo/
invece di index metti ../../index.php
la pagina principale è www.dietizziamoci.altervista.org/index.html, ma se la inserisco mi da questo errore
La pagina h.ttp://dietizziamoci.altervista.org/contattailmedico/dietologo/www.dietizziamoci.altervista.org/index.html?input=I+dati+sono+stati+inseriti+con+su ccesso%21 non è presente
alla pagina index.html dovresti cambiare estensione e mettere index.php,
poi prova con questo
header("location: http://dietizziamoci.altervista.org/index.php?input=$input");
Perchè invii un header passando input?
era una mia idea, tu come avresti fatto?