perfetto.
funziona anche così:
$old=array('\"', "\'");
$new=array('"', "'");
$stringa=str_replace($old, $new, $stringa);
grazie riky.
perfetto.
funziona anche così:
$old=array('\"', "\'");
$new=array('"', "'");
$stringa=str_replace($old, $new, $stringa);
grazie riky.
grazie riky,
ho capito come fare, ma le virgolette mi danno ancora qualche problema.
le tre virgolette di fila nell'array non funzionano:
$old=array(""", "'");
$new=array(""", "'");
$textrep=str_replace($old, $new, $text);
un'altro aiutino?
silvio
avete presente quando digitate un'apice o usate le virgolette in un form che richiama un file php esterno che invia per email quanto inserito nel form?
un semplice file php che fa questo tende a visualizzare gli apici e le virgolette con la barra / davanti.
' --> /'
" --> /"
come posso ovviare a questo problema?
silvio
<?php
$messaggio.="Dati:\n\nNome: $fielda\nCognome: $fieldb\nSoprannome: $fieldc\nPaese: $fieldd\nCittà: $fielde\n";
$destinatario= "indirizzo email";
$oggetto="## Dati ##";
$intestazioni="From: $fielda\n";
mail($destinatario,$oggetto,$messaggio,$intestazioni);
header("location: http://www.paginadelform.it");
?>
ho cambiato: echo "dati inviati";
con: header("location: http://www.blablabla.it");
ma il problema sussiste.
www.blablabla.it è la pagina dove si trova il form.
devo fare l'header ad un'altra pagina identica a quella che contiene il form ma con scritto "dati inviati"?
è così che si risolve il problema?
silvio
<HTML>
<HEAD><TITLE>Form</TITLE></HEAD>
<BODY>
<form action="form.php" method="post">
<TABLE><TBODY>
<TR>
<TD>**Inserisci i tuoi dati:**
</TD>
<TD width=180></TD><TD width=120></TD></TR>
<tr>
<TD width=120></TD><td width=180></td>
<td width=180></td><TD width=120></TD>
</tr>
<tr>
<TD width=120></TD><td width=180>Nome:</td>
<td width=180 align=right><input type="text" size="33" maxlength="50" name="fielda"></td><TD width=120></TD>
</tr>
<tr>
<TD width=120></TD><td width=180>Cognome:</td>
<td width=180 align=right><input type="text" size="33" maxlength="50" name="fieldb"></td><TD width=120></TD>
</tr>
<tr>
<TD width=120></TD><td width=180>Soprannome:</td>
<td width=180 align=right><input type="text" size="33" maxlength="50" name="fieldc"></td><TD width=120></TD>
</tr>
<tr>
<TD width=120></TD><td width=180>Paese:</td>
<td width=180 align=right><input type="text" size="33" maxlength="50" name="fieldd"></td><TD width=120></TD>
</tr>
<tr>
<TD width=120></TD><td width=180>Città:</td>
<td width=180 align=right><input type="text" size="33" maxlength="50" name="fielde"></td><TD width=120></TD>
</tr>
<tr>
<TD width=120></TD><td width=180></td>
<td width=180 align=right>
<input type="submit" value="Invia"></td><TD width=120></TD>
</tr>
<?php
$messaggio.="Dati:\n\nNome: $fielda\nCognome: $fieldb\nSoprannome: $fieldc\nPaese: $fieldd\nCittà: $fielde\n";
$destinatario= "indirizzo email";
$oggetto="## Dati ##";
$intestazioni="From: $fielda\n";
mail($destinatario,$oggetto,$messaggio,$intestazioni);
echo "dati inviati";
provo a spiegarvi di nuovo il problema.
innanzitutto quello che ho postato sopra funziona, ossia io compilo il form premo invia e all'indirizzo che ho qui sopra omesso arriva l'email con i vari campi che avevo precedentemente inserito.
dov'è il problema? il problema è la pagina bianca che salta fuori dopo che ho premuto invio con scritto "dati inviati" (echo "dati inviati").
è possibile invece di far aprire allo script una pagina bianca, fargli aprire una pagina identica a quella che contiene il form? oppure, è possibile far si che "dati inviati" compaia nella stessa pagina del form, chennesò sotto o accanto al pulsante "invia"?
in poche parole io non voglio che compaia la pagina bianca e voglio che si rimanga "all'interno del sito". ossia premo invio è mi compare di nuovo una pagina del sito (non bianca) oppure si rimanga sulla stessa pagina dove premuto "invia" compare da qualche parte la scritta "dati inviati".
spero di essere stato abbastanza chiaro questa volta e comunque vada vi ringrazio per l'attenzione.
silvio
ciao pieru,
grazie della risposta e scusa il ritardo.
cosa mi ha colpito di quel sito?
un pò tutto a partire dalla semplicità e la velocità d'uso.
ti sembrerà strano ma anche la grafica. dai un'occhiata al logo in alto: il tavolo che sfuma nel menù.
non si tratta di un sito personale, è un portale (credo) e solitamente i portali sono pieni di roba da non capirci niente, questo è "leggero" e di facile consultazione.
comunque il mio parere è e rimane un parere "a pelle" non vuol certo essere un parere "strutturale".
io se ne avessi le capicità lo farei esattamente così.
essendomi da poco cimentato nel tentativo di imparare il php, mi chiedevo appunto se riuscirò mai un giorno a fare qualcosa di simile ed ecco perchè ho prontamente chiesto il vostro parere.
silvio
io ho questo file php:
<?php
if(!$risultato = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $email)){
echo "$email non è un'indirizzo email valido.";
}else
...
?>
se inserisco un'indirizzo email non valido in un form di una pagina html che richiama il file php qui sopra, mi si apre una pagina bianca con scritto in alto a sx ".. non è un'indirizzo email valido."
io non voglio che si apra la pagina bianca.
voglio o che me lo scriva direttamente sulla stessa pagina del form o su un'altra pagina html di struttura-grafica identica a quella del form.
è possibile?
scusami se non riesco a spiegarmi meglio.
http://www.studentcentral.co.uk/
vi segnalo questo sito che non è assolutamente mio ma che ritengo il migliore sito che io abbia mai visto.
ve lo segnalo per alcune mie curiosità:
vi ringrazio,
silvio
PS: spero sia la sezione giusta. quantomeno non ne ho trovate di più specifiche.
grazie peter. vedrò di studiarmelo il tuo esempio.
pensavo semplicemente di poter usare una riga al posto di echo in modo da visualizzare una nuova pagina html a mio piacimento (anzichè la pagina bianca automaticamente visualizzata dal comando echo).
tutto qua.
<?php
if(!$risultato = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $email)){
echo "$email non è un'indirizzo email valido.";
}else
...
fopen ho letto che apre anche un url, perciò cercavo di fargli aprire una pagina identica alla pagina del form aggiungendo una linea di codice php (echo "$email non è un'indirizzo email valido";).
comunque io sono un principiante numero uno (sono due giorni che mi cimento con il php), se il mio problema si può risolvere solamente con javascript spostami pure nella sezione javascript.
ti ringrazio.
ho un form con un campo mail.
usando il semplice echo, se inserisco un indirizzo sbagliato mi dice "indirizzo sbagliato" in una nuova pagina bianca.
ma come fare perchè la dicitura "indirizzo sbagliato" compaia nella stessa pagina del form?
ho provato con fopen ma non riesco ad ottenere alcun risultato.
vi ringrazio.
silvio
L'articolo riguardante l'interazione MySql-php è forse incompleto?
L'ultima riga che leggo dice: "Se in un campo non vogliamo inserire niente"
http://www.giorgiotave.it/guida_php/mysql_database.php
silvio
Questo http://www.seotalk.it/2005/11/le-mie-regole-fondamentali.html potrebbe essere un buon punto di partenza
ho modificato lo script ed ora funziona correttamente. se a qualcuno servisse (dubito) lo metto qua a disposizione:
<?php
silvio
ciao a tutti,
innanzitutto vi complimento per il sito. vi anticipo che ho letto per la prima volta ieri sera la guida al php e subito ho provato a fare un form che funziona solo in parte. il problema sta sicuramente nello script.
sorgenti:
<html>
<body>
<table>
<form action="send.php" method="post">
<tr>
<td>Domanda 1</td></tr><tr><td></td>
<td>
<input type="radio" name="rispa" value="A">A
<input type="radio" name="rispa" value="B">B
<input type="radio" name="rispa" value="C">C
<input type="radio" name="rispa" value="D">D
</td>
</tr>
<tr>
<td>Domanda 2</td></tr><tr><td></td>
<td>
<input type="radio" name="rispb" value="E">E
<input type="radio" name="rispb" value="F">F
<input type="radio" name="rispb" value="G">G
<input type="radio" name="rispb" value="H">H
</td>
</tr>
<tr>
<td>Domanda 3</td></tr><tr><td></td>
<td>
<input type="radio" name="rispc" value="I">I
<input type="radio" name="rispc" value="J">J
<input type="radio" name="rispc" value="K">K
<input type="radio" name="rispc" value="L">L
</td>
</tr>
<tr>
<td>Domanda 4</td></tr><tr><td></td>
<td>
<input type="radio" name="rispd" value="M">M
<input type="radio" name="rispd" value="N">N
<input type="radio" name="rispd" value="O">O
<input type="radio" name="rispd" value="P">P
</td>
</tr>
<tr></tr><tr>
<td>Nome:</td>
<td><input type="text" name="nome"></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2" align="right">
<input type="submit" value="Invia">
</td>
</tr>
</form>
</table>
</body>
</html>
<?php
if(!$risultato = ereg("^[^@ ]+@[^@ ]+.[^@ .]+$", $email)){
echo " Questo $email non è unindirizzo email valido";
}else{
$messaggio="";
$messaggio="Risposte:
";
$messaggio="$rispa";
$messaggio="$rispb";
$messaggio="$rispc";
$messaggio="$rispd";
$messaggio="$nome";
$messaggio="$email";
$destinatario= "INDIRIZZO EMAIL";
$oggetto="## Risposte ##";
$intestazioni="From: $nome<$email>\n";
$intestazioni.="Reply-To: $email";
mail($destinatario,$oggetto,$messaggio,$intestazioni);
echo "Email Inviata, buona fortuna!";
}
?>
problemi:
l'email che arriva al destinatario visualizza solamente la variabile "email" nel corpo del messaggio. io vorrei fossero visualizzate tutte le 6 variabili: "rispa - rispb - rispc - rispd - nome - email" inoltre vorrei che fossero visualizzate in maniera leggibile, ho provato ad usare i tag html ** e
ma sembra che non funzionino. infine non non ho capito cosa significhi "/n".
cosa ho sbagliato?
vi ringrazio, silvio.