<div dir="ltr"><div>Miki, perdona que abusi...<br></div><div><br>Per cert, què significa l'enllaç a 'xkcd'?<br><br>A veure si ho entenc; suposem 2 camps varchar i 1 int: seria així?<br><br>$stmt = $dbConnection->prepare('INSERT INTO inscrits (nomCognoms, adreca, quota ) values (?, ?, ?)');<br>$stmt->bind_param('s', $nom, 's', $adreca, 'i', $quota); // els varchar->'s' i els int 'i'?<br><br>$stmt->execute();<br><br></div><code><span class="gmail-pun"></span></code>Salut!<br><div><code><span class="gmail-pun"></span></code><div><pre class="gmail-lang-sql gmail-prettyprint gmail-prettyprinted"><code><span class="gmail-pun"><br><br></span></code></pre><div class="gmail_extra"><br><div class="gmail_quote">El dia 12 d’abril de 2017 a les 13:45, Miki <span dir="ltr"><<a href="mailto:mikcat@gmail.com" target="_blank">mikcat@gmail.com</a>></span> ha escrit:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div> $nom = $_POST['nom'];<span class="gmail-"><br><br> $query = "INSERT INTO inscrits (nomCognoms, ...) values<br> ('$nom',...)";<br><br></span></div>$nom és tal qual lo que t'envien del formulari, i si t'envien:<br><br>unnom'); DROP TABLE inscrits;--<br><br></div>la query anterior queda com:<br><br><div><div><div><span class="gmail-">INSERT INTO inscrits (nomCognoms, ...) values<br></span> ('unnom'); DROP TABLE inscrits;--',...)<br><br><a href="https://xkcd.com/327/" target="_blank">https://xkcd.com/327/</a><br><br></div><div>Això és un exemple clàssic, mai pots confiar en l'input de l'usuari<br><br></div><div>per evitar-ho, com diuen a la resposta d'stackoverflow<br><br>$stmt = $dbConnection->prepare('NSERT INTO inscrits (nomCognoms, ....) values (?, ...)');<br>$stmt->bind_param('s', $nom);<br><br>$stmt->execute();<br></div><div><br></div><div>sanititzar vol dir escapar/treure tots els caràcters reservats "que poden fer mal" al lloc on faràs servir aquell valor<br></div><div>per exemple per sql les comilles simples ' s'escaparien \' i el input anterior ja no et faria mal.<br></div><div>per html els tags <script> es convertirien a entities <script> el que evita que et colin javascript maliciós quan pintes aquell camp directament per pantalla<br></div><div>etc, etc, etc<br></div><div><br></div><div><br></div></div></div></div><div class="gmail-HOEnZb"><div class="gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">El dia 12 d’abril de 2017 a les 13:18, Joan Inglada Roig <span dir="ltr"><<a href="mailto:joan.inglada@gmail.com" target="_blank">joan.inglada@gmail.com</a>></span> ha escrit:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Bé, Miki, gràcies, però m'ho he pensat abans de posar-ho. No hi ha cap nom real. La url és pública. On és el perill? Què vol dir "sanititzis els params"?<br></div><div class="gmail_extra"><br><div class="gmail_quote">El dia 12 d’abril de 2017 a les 11:56, Miki <span dir="ltr"><<a href="mailto:mikcat@gmail.com" target="_blank">mikcat@gmail.com</a>></span> ha escrit:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div>bufff.... mai hauries de fer això, i si és codi real, encara menys publicar-ho en una llista de correu pública amb la url.<br><br>Et recomano fer un cop d'ull a<br><a href="http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php" target="_blank">http://stackoverflow.com/quest<wbr>ions/60174/how-can-i-prevent-s<wbr>ql-injection-in-php</a><br><br></div>I que sanititzis els params tan aviat com puguis<br><br></div>No sé si algun administrador de la llista pot esborrar aquests 2 missatges... o com a mínim amagar-los <br></div><div class="gmail-m_-5058708799825871893m_5240668520593968146HOEnZb"><div class="gmail-m_-5058708799825871893m_5240668520593968146h5"><div class="gmail_extra"><br><div class="gmail_quote">El dia 12 d’abril de 2017 a les 10:41, Joan Inglada Roig <span dir="ltr"><<a href="mailto:joan.inglada@gmail.com" target="_blank">joan.inglada@gmail.com</a>></span> ha escrit:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Aquí tens un esquema del que es fa per a obtenir les inscripcions:<br><br></div>En el inscripcions.php hi ha això:<br><div><br><pre id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line1"><span> </span><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">form</span> <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">id</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">formu</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">name</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">formu</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">method</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">post</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">action</span>="anotacions.php" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">onReset</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">controlaCaselles();</a>"></span><span></span></pre><div class="gmail_extra">...<br><pre id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line1"><span></span><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">tr</span>></span><span>
<span id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line157"></span></span><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">td</span> <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">width</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">191</a>"></span><span></span><span>Nom i cognoms:</span><span></span><span></span><span></<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559end-tag">td</span>></span><span>
<span id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line162"></span></span><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">td</span> <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">colspan</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">3</a>"></span><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">input</span> <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">name</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">nom</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">id</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">nom</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">size</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">40</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">type</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">text</a>" <span>/</span>></span><span></<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559end-tag">td</span>></span><span>
<span id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line165"></span></span><span></<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559end-tag">tr</span>><br></span><span></span></pre><div class="gmail_quote">... i així tots els camps del formulari. Al final hi ha un control antirobots i el tancament:<br><br><pre id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line1"><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">tr</span>></span><span>
<span id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line570"></span></span><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">td</span> <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">colspan</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">5</a>"></span><span></span><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">input</span> <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">name</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">envia</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">id</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">envia</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">value</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">Envia</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">onClick</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">return validaHo();</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">type</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">button</a>" <span>/</span>></span><span></span><span></span><span>
<span id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line572"></span></span><span><<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-start-tag">input</span> <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">name</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">neteja</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">id</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">neteja</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">value</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">Neteja</a>" <span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-name">type</span>="<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-attribute-value">reset</a>" <span>/</span>></span><span></span><span></<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559end-tag">td</span>></span><span>
<span id="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-line573"></span></span><span></<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559end-tag">tr</span>></span><span></span></pre>En anotacions.php hi ha:<br><br></div><div class="gmail_quote">// Connexió a la base de dades<br></div><div class="gmail_quote"><br>$link = mysql_connect('localhost', 'usuari', 'contrasenya')<br> or die('Error de connexió: ' . mysql_error());<br> mysql_select_db('basededades') or die('base de dades inaccessible');<br><br>// Prenem les dades que ens arriben per post<br><br> $nom = $_POST['nom'];<br><br></div><div class="gmail_quote">... i així tots els camps del formulari<br><br>echo "<tr><td>Nomo / Nom</td><td>$nom</td></tr>";<br><br>... i així tots els camps del formulari<br><br>// Sentència SQL a executar<br><br> $query = "INSERT INTO inscrits (nomCognoms, ...) values<br> ('$nom',...)";<br> $rs = mysql_query($query,$link) or die($error.'[S\'ha produït un error quan s\'intentava donar d\'alta la nova inscripció]' . mysql_error($link));<br><br><p>Enhorabona! Us heu inscrit correctament</p><br><br><p><a href="<a href="http://www.esperanto.cat/kongresoj/2017/index.php?llengua=1" target="_blank">http://www.esperanto.cat<wbr>/kongresoj/2017/index.php?llen<wbr>gua=1</a>">Clica aquí per tornar a la pàgina principal</a></p><br><br><p>Imprimiu la inscripció amb Ctrl P</p><br><br>------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------<br><br></div><div class="gmail_quote">Això és tot:<br></div><div class="gmail_quote"> <br></div><div class="gmail_quote">El que jo preguntava és si coneixeu la manera de crear automàticament un pdf que s'enviés també automàticament a l'adreça de correl que està en un dels camps del formulari? <br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Salut!<br></div><div class="gmail_quote">Joan<br></div><div class="gmail_quote"><br><br><br><br>El dia 11 d’abril de 2017 a les 16:28, Joan Carles <span dir="ltr"><<a href="mailto:palimsesto@gmail.com" target="_blank">palimsesto@gmail.com</a>></span> ha escrit:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">
<div class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-m_-7009345479642375757moz-cite-prefix">El 11/04/17 a les 15:08, Joan Inglada
Roig ha escrit:<br>
</div><span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-">
<blockquote type="cite">
<div dir="ltr">
<div>
<div>Bones! No sé si podré ajudar gaire, però segurament que
podré aprendre alguna cosa. <br>
<br>
</div>
Preàmbul: Sóc membre de l'Associació Catalana d'Esperanto i
visc a Agulló-Àger, al peu del Montsec, on hi ha un Parc
Astronòmic. La ciutat més esperantista de Catalunya ha estat
històricament Sabadell i alguns dels esperantistes
sabadellencs són socis gairebé fundadors de l'Agrupació
Astronòmica de Sabadell i des que es va inaugurar el Centre
d'Observació de l'Univers que estan proposant que el congrés
bianual dels esperantistes catalans es faci a Àger. <br>
<br>
Enguany ha tocat i jo que sóc un vell (una mica ->)
informàtic -des del 1969- he estat encarregat de les <a href="http://www.esperanto.cat/kongresoj/2017" target="_blank">pàgines del
congrés</a> i tot està muntat en sistema php i mysql. El que
no sabia ho he preguntat a fòrums i la cosa rutlla.<br>
<br>
El que jo he fet és que un cop la gent omple la inscripció al
congrés, que es guarda en una taula sql, faig aparèixer un
resum a la pantalla amb la nota de que s'ho guardin amb Ctrl P
i al llegir això del formulari he pensat que seria interessant
trobar la manera de guardar la inscripció en document pdf i
enviar-lo a l'adreça electrònica del inscrit.<br>
<br>
</div>
<div>Si m'estic posant on no em demanen m'ho dieu i plego!<br>
</div>
<div><br>
</div>
<div>Salut,<br>
</div>
<div>Joan<br>
</div>
<br>
</div>
</blockquote>
<br>
<br></span>
Hola!<br>
Penso que aquí tothom pot dir la seva i els que no sabem, aprendrem.<br>
No se si t'agafe del tot, però potser dius que...."poses un codi amb
la notació de Ctrl P, es guarda en pdf i es poguera rebre a casa",
llavors s'ha generat un document pdf amb les dades omplertes al
formulari, no? i que apareix al lloc on s'han dirigit del servidor.
Correcte?<br>
<br>
D'entrada, jo no se crear el codi que dius en php però que aparega
el que dius, tan de bo ho sabera; i bo mostrar-les d'altra forma sí
ho veig interessant...però tinc limitacions.<br>
Fins on vols anar a parar?...doncs a la creació d'un nou format si
et segueixo, però mès no acabo d'albirar-ho.<br>
<br>
Potser, és un pèl més del que demanava jo, que es circunscrivia
només a llegir les dades del formulari al servidor creat, però que
si es pot fer de manera fàcil sóc tot oïdes.<br>
<br>
Mentre estic tractant de d'instal.lar "bootstrap" i s'<a href="http://instal.la" target="_blank">instal.la</a>,
segon sembla,però després no puc veure on és per engegar-lo i veure
les plantilles, però també és altre tema i no anem a barrejar.<br>
<br>
Gràcies per afegir noves possibilitats, però tenen limitacions per
mi ara per ara.<span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051HOEnZb"><font color="#888888"><span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-"><br>
<pre class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-m_-7009345479642375757moz-signature" cols="72">--
Salutacions,
Joan Carles
Usuari GNU/Linux #324197#
<a class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051m_2331424414197684559gmail-m_-7009345479642375757moz-txt-link-freetext" href="http://counter.li.org/" target="_blank">http://counter.li.org/</a>
</pre>
</span></font></span></div><span class="gmail-m_-5058708799825871893m_5240668520593968146m_3326851898516219051HOEnZb"><font color="#888888">
<br>--<br>
Ubuntu-cat mailing list<br>
<a href="mailto:Ubuntu-cat@lists.ubuntu.com" target="_blank">Ubuntu-cat@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-cat" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailm<wbr>an/listinfo/ubuntu-cat</a><br>
<br></font></span></blockquote></div><br></div></div></div><span class="gmail-m_-5058708799825871893HOEnZb"><font color="#888888">
<br>--<br>
Ubuntu-cat mailing list<br>
<a href="mailto:Ubuntu-cat@lists.ubuntu.com" target="_blank">Ubuntu-cat@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-cat" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailm<wbr>an/listinfo/ubuntu-cat</a><br>
<br></font></span></blockquote></div><span class="gmail-m_-5058708799825871893HOEnZb"><font color="#888888"><br></font></span></div><span class="gmail-m_-5058708799825871893HOEnZb"><font color="#888888">
</font></span></div></div><span class="gmail-m_-5058708799825871893HOEnZb"><font color="#888888"><br>--<br>
Ubuntu-cat mailing list<br>
<a href="mailto:Ubuntu-cat@lists.ubuntu.com" target="_blank">Ubuntu-cat@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-cat" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailm<wbr>an/listinfo/ubuntu-cat</a><br>
<br></font></span></blockquote></div><br></div>
<br>--<br>
Ubuntu-cat mailing list<br>
<a href="mailto:Ubuntu-cat@lists.ubuntu.com" target="_blank">Ubuntu-cat@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-cat" rel="noreferrer" target="_blank">https://lists.ubuntu.com/mailm<wbr>an/listinfo/ubuntu-cat</a><br>
<br></blockquote></div><br></div>
</div></div><br>--<br>
Ubuntu-cat mailing list<br>
<a href="mailto:Ubuntu-cat@lists.ubuntu.com">Ubuntu-cat@lists.ubuntu.com</a><br>
Modify settings or unsubscribe at: <a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-cat" rel="noreferrer" target="_blank">https://lists.ubuntu.com/<wbr>mailman/listinfo/ubuntu-cat</a><br>
<br></blockquote></div><br></div></div></div></div>