Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Aiuto query!
Forum - PHP - Aiuto query! - Pagina 2

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 15:36
Giovedì, 27/08/2015
No, non è vero tu inserisci un dato GET direttamente in una query, in ogni caso _GET è una matrice come _SESSION e con indice di tipo stringa quindi è sbagliato scrivere $_GET[messaggio] ma bisogna scrivere $_GET["messaggio"] non credo comunque che il problema stia li, l'interprete secondo me è abbastanza furbo da effettuare il "cast automatico" e segnalarti solo un warning.

Che errore restituisce mySQL all'inserimento della query e allega inoltre una query elaborata dall'interprete.

PM Quote
Avatar
mikiprogrammer (Normal User)
Pro


Messaggi: 65
Iscritto: 02/04/2015

Segnala al moderatore
Postato alle 15:40
Giovedì, 27/08/2015
Non mi restituisce nessun errore: semplicemente non inserire i dati :-?

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 15:42
Giovedì, 27/08/2015
Posta il frammento di codice che si occupa dell'inserimento.

PM Quote
Avatar
mikiprogrammer (Normal User)
Pro


Messaggi: 65
Iscritto: 02/04/2015

Segnala al moderatore
Postato alle 15:58
Giovedì, 27/08/2015
Ecco i codici delle mie pagine:
Codice sorgente - presumibilmente PHP

  1. <?php
  2. ?>
  3. <html>
  4.     <head>
  5.     </head>
  6.     <body>
  7.         Puoi chattare con:<br><br>
  8.         <?php
  9.         include('../db_conn.php');
  10.         $query="SELECT * FROM users WHERE username='$_SESSION[login_effettuato]'";
  11.         $result=mysql_query($query);
  12.         $row=mysql_fetch_array($result);
  13.         if ($row['amici']==''){
  14.             echo "Non hai amici con cui chattare<br>Per aggiungerne altri, vai alla sezione &quotAmici&quot";
  15.         }else{
  16.             $str=$row['amici_chat'];
  17. echo $str;
  18.         }
  19.         ?>
  20.     </body>
  21. </html>




Codice sorgente - presumibilmente Plain Text

  1. <?php
  2. session_start();
  3. echo "<iframe height=448 width=1200 src=messaggi.php></iframe>";
  4. $_SESSION["nome"] = $_GET["nome"];
  5. ?>
  6. <br /><br />
  7. <form action="<?php
  8. $nome=$_SESSION["nome"];
  9. $username=$_SESSION["login_effettuato"];
  10. $messaggio=$_GET["messaggio"];
  11. include('../db_conn.php');
  12. $query="INSERT INTO `chat` (`from`, `destinatario`, `messaggio`)
  13. VALUES ('$username', '$nome', '$messaggio')";
  14. mysql_query($query);
  15. ?>" method="GET">
  16.     <input type=text size=155 name=messaggio>
  17.     <input type=submit value="Invia" size=20>
  18. </form>




Codice sorgente - presumibilmente Plain Text

  1. <?php
  2. session_start();
  3. echo "<iframe height=448 width=1200 src=messaggi.php></iframe>";
  4. $_SESSION["nome"] = $_GET["nome"];
  5. ?>
  6. <br /><br />
  7. <form action="<?php
  8. $nome=$_SESSION["nome"];
  9. $username=$_SESSION["login_effettuato"];
  10. $messaggio=$_GET["messaggio"];
  11. include('../db_conn.php');
  12. $query="INSERT INTO `chat` (`from`, `destinatario`, `messaggio`)
  13. VALUES ('$username', '$nome', '$messaggio')";
  14. mysql_query($query);
  15. ?>" method="GET">
  16.     <input type=text size=155 name=messaggio>
  17.     <input type=submit value="Invia" size=20>
  18. </form>


PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 16:11
Giovedì, 27/08/2015
Non puoi visualizzare l'errore di mySQL se non verifichi la query
Codice sorgente - presumibilmente Plain Text

  1. if(!mysql_query($query)) die("Query non valida: " . mysql_error());


Posta l'errore che viene stampato a video.
Inoltre sarebbe bene passare alla libreria mysql orientata agli oggetti, quella a codice procedurale è deprecata.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1615
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 17:10
Giovedì, 27/08/2015
PDO. E' così comodo..... e sicuro...... Prchè nessuno vuole usare PDO? Comunque gli apici singoli sono per i nomi delle tabelle, gli apici doppi le stringhe (in mysql è così, altri rdbms hanno convenzioni diverse)

Se vuoi avere un barlume di speranza di non essere soggetto ad attacchi "sanitizza" le stringhe è fai un mysql_escape (in PDO tutto questo è automatico)

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 18:26
Giovedì, 27/08/2015
Grado di complessità, piu interfacce di intermezzo aggiungi piu aumenta il carico computazionale. è vero che in molti casi può essere trascurabile, ma la libraria mySQL è sempre presente e non va ricercata, se il progetto è esiguo e non necessità di forte portabilità un mysql_query con i dovuti controlli basta e avanza.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1615
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 1:04
Venerdì, 28/08/2015
"la libraria mySQL è sempre presente e non va ricercata" stai scherzando vero? Nel caso ti fosse sfuggito la libreria mysql è DEPRECATA, ha falle di sicurezza e NON E' PIU' UFFICIALMENTE MANTENUTA, e molto presto non sarà più disponibile di default con PHP: http://php.net/manual/it/intro.mysql.php

E' la pagina PHP ufficiale che dice: non usate queste funzioni, usate PDO, non è una mia invenzione. Certo, io sono d'accordo sul fatto che PDO ha molti più vantaggi rispetto alle funzioni mysq.

Ultima modifica effettuata da TheDarkJuster il 28/08/2015 alle 1:15
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo