Il problema è presto risolto inserendo una input "hidden" nel form, e fare lo switch da php sul suo valore.
Oppure fare lo switch da php sul valore del nome che hai dato al pulsante "submit" che ti invia i dati da scrivere nel database.
La seconda soluzione ti fa risparmiare qualche riga di codice
momino
@momino
Post creati da momino
-
RE: Un Guestbook un solo file con PHP
-
RE: Dilemma tra php-mysql e joomla
Studiare php & mysql, per i molteplici usi che potrebbero servire a realizzare un CMS come Joomla, sarebbe un'opera colossale...
La mia idea è sempre quella di "studiare" qualcosa che devo realizzare, quindi se non hai mai visto un CMS come Joomla all'opera, inizia a usarlo, a capirne le funzionalità, a pensare un pò come chi ha realizzato Joomla, e vedrai che ci troverai così tanti difetti che ti verrà voglia (e allora ne avrai le nozioni) di farne uno tutto tuo.
Solo a quel punto ti consiglio di prendere dei manuali, tanto tempo libero, e una bella scorta di pazienza, perchè ti serviranno tutte queste cose per realizzare delle web-application con php+mysql.
p.s. non dimenticare javascript, un'altra miniera d'oro... -
RE: Errore mysql_fetch_array()
Non è un errore nella query, altrimenti avrebbe dato un "error" e non un "warning". Probabilmente la query non da risultati, prima di usare il "mysql_fetch_array" controlla il numero di righe interessate dalla query con "mysql_num_rows", se è maggiore di zero puoi estrarre l'array.
-
RE: Convalida form
Se usi questo metodo, prima di controllare "nome", "cognome", eccetera metti il controllo di una variabile apposita per capire se stai controllando i dati del form o li devi ancora inserire.
-
RE: [Aiuto] Pagina non visualizzata per intero
Dovresti vedere il file error log del tuo server, perchè evidentemente non mostra i messaggi di errore di php ma li conserva sicuramente in quel file di testo.
Se lavori in locale si trova nella cartella "logs" del server.p.s. correggi un pò lo stile del tuo codice...
-
RE: [Aiuto] Pagina non visualizzata per intero
Puoi postare il codice della pagina così come te lo visualizza il browser?
-
RE: [Aiuto] Pagina non visualizzata per intero
Aggiungi "or die (mysql_error());" anche alla mysql_connect() e alla mysql_select_db(), così se falliscono ti stampano nel codice l'errore.
-
RE: Convalida form
Se usi il metodo "post" per mandari i dati del form, allora potresti usare:
[php]$_SESSION['form'] = $_POST;[/php]
e nella pagina html che contiene il form, puoi scrivere qualcosa del genere per ogni campo (nell'esempio text):
[html]<input type="text" name="campo1" value="<?php echo $_SESSION['form']['campo1']; ?>" />[/html]Nel caso di checkpoint (e nel caso radio):
[html]<input type="checkpoint" name="check1" value="si" <?php if ($_SESSION['form']['check1'] != '') echo " checked"; ?> />[/html]Per le select puoi scrivere così:
[HTML]<select name="tendina1">
<option value="1" <?php if ($_SESSION['form']['tendina1'] == "1") echo " selected"; ?>>Uno</option>
.
.
.
</select>[/HTML]Spero sia chiaro.
-
RE: Convalida form
Beh, puoi copiare "rozzamente" la variabile "$_POST" nella variabile "$_SESSION['form']" per esempio, e tenere tutti i campi di quel posto a portata di mano.
-
RE: Convalida form
Scusami, allora usa il reindirizzamento di php, cambiando l'header:
[PHP]header("Location: pagina_del_form.html");[/PHP]Se vuoi recuperare i dati del form, per non farlo ricompilare da capo, ti consiglio di salvarli nella sessione.
-
RE: [Aiuto] Pagina non visualizzata per intero
Controlla il codice html della pagina generata, molto probabilmente c'è un errore in qualche funzione mysql.
-
RE: Problema con l'invio di un form via e-mail
Prova a sostituire [php]@mail[/php] con [php]mail[/php]
-
RE: Convalida form
Potresti procedere così:
- individua la cartella dei file temporanei del tuo server php;
- [PHP]$filename = $temp_dir.basename($_FILES['file']['tmp_name']);[/PHP]
Così individui il nome del file nella cartella temporanea; - [PHP]list($width, $height) = getimagesize($filename);[/PHP]
Così ottieni le due variabili per fare i controlli che ti occorrono.
Sono sicuro che c'è una funzione per ottenere la directory temporanea del server, ma se non dovessi trovarla puoi sempre prenderla da [PHP]phpinfo();[/PHP]
Tienici informati.
-
RE: Textarea con variabili inserite
[PHP]<textarea name="oggetto"><?php echo $oggetto; ?></textarea>[/PHP]
[PHP]<textarea name="messaggio"><?php echo $messaggio; ?></textarea>[/PHP]
-
RE: Ricerca dati DB mysql
Nel mio script la tabella è decisa dallo "switch" nalla pagina php, che in base al campo di ricerca che lui sceglie dal menu a tendina, indirizza su una tabella o sull'altra.
Questo predispone però che non ci siano 2 tabelle con un campo che abbia lo stesso nome, o che almeno questo campo non compaia nel menu a tendina. -
RE: Creare elenco cronologico da input form
Questa è la tua pagina html con il form:
[html]<html>
<title>accettazione cliente</title>
<body>ACCETTAZIONE CLIENTE<br>
<form action="form.php" name="modulo1" method="post">
NOME:<input type="text" name="nome1"><br><br>
COGNOME:<input type="text" name="cognome2"><br><br>
DATA DI NASCITA:<input type="text" name="data_di_nascita3"><br><br>
CITTA' DI NASCITA:<input type="text" name="citta_di_nascita4"><br><br><br><br><input type="submit" value="INVIA I DATI">
</form>
".mysql_error());
</body>
</html>[/html]Questa è la mia pagina php con l'elaborazione dei dati, che devi chiamare "form.php" e mettere nella stessa cartella della pagina html:
[php]<?php
mysql_connect($6,$Sq,$pass);
mysql_select_db($Sql216305_2);
//creo l'array con il giorno/mese/anno
$arr_data = explode("/",$_POST['data_di_nascita3']);
//converto quella data in unix timestamp, così da poterlo ordinare (risulterà un numero intero di 12 cifre)
$data_di_nascita = mktime(0,0,0,$arr_data[1],$arr_data[0],$arr_data[2]);
$nome = $_POST['nome1'];
//rimpiazzo gli eventuali apostrofi
$nome = str_replace("'","'",$nome);
$cognome=$_POST['cognome2'];
//rimpiazzo gli eventuali apostrofi
$cognome = str_replace("'","'",$cognome);
$citta_di_nascita = $_POST['citta_di_nascita4'];
//rimpiazzo gli eventuali apostrofi
$citta_di_nascita = str_replace("'","'",$citta_di_nascita);
//inserimento del nuovo cliente
$query = "INSERT INTO elenco_clienti VALUES ('','$nome','$cognome',$data_di_nascita,'$citta_di _nascita',".time().")";
$risultato = mysql_query($query) or die ("query '$query' fallita
while ($cliente = mysql_fetch_array($risultato))
{
echo $cliente['nome'].' '.$cliente['cognome'].', ';
echo 'nato a '.$cliente['citta_di_nascita'].' il '.date('d/m/Y',$cliente['data_di_nascita']).', ';
echo 'registrato il '.date('d/m/Y',$cliente['data_registrazione']). alle '.date('H:i:s',$cliente['data_registrazione']).'<br>';
}
?>[/php]Lancia la pagina html, riempi il form e vedi che funziona tutto.P.s. ovviamente metti i dati corretti alla mysql_connect() e alla mysql_select_db().
-
RE: Creare elenco cronologico da input form
Ma la tua tabella si riempie tramite i dati di un form html, gestito dalla pagina php che ti avevo scritto.
Non ha senso mettere a mano i dati tutte le volte che compilano il form, il php serve proprio a questo, a prendere i dati dal form e metterli automaticamente nella tabella che hai creato in mysql.
Cioè non riesco a capire come stai organizzando la cosa, hai uno spazio web per mettere questo form html? E per ospitare la pagina php che ti avevo scritto? E' da lì che ti devi connettere al database MySql, se non hai questo spazio stiamo perdendo tempo... -
RE: Creare elenco cronologico da input form
Devi scrivere l'intero percorso, come se volessi andare ad una pagina del tuo sito internet...
-
RE: Creare elenco cronologico da input form
Certo che si può fare, la mia era solo un'osservazione dovuta alla poca fiducia che ho del browser Microsoft
Puoi usare qualsiasi browser, funzionerà sempre e comunque! -
RE: Creare elenco cronologico da input form
Assolutamente è il metodo sbagliato! Quella pagina .php fa lanciata da browser, apri Firefox (spero che tu non abbia Internet Explorer) e digiti nella barra degli indirizzi l'url della pagina "elenco_clienti.php".
Non va importata nel database da pannello di controllo mysql.