Pagina Bianca

Salve,

sono un iper neofita della programmazione php nonchè dell'interazione con Db mysql. Ho scritto questo programmino per richiedere la visualizzazione a video di alcune tabelle del mio database ( gestito con phpmyadmin ). Premetto che il database è stato impostato dal mio server al momento dell'acquisto dominio..

Ora vorrei aggiungere delle tabelle dato che stò creando dei form web da inserire nel mio sito...

<?php $db_username='sdashdabshda'; $db_password='alsdlkas'; $db_host='localhost'; $link = @mysql_connect("$db_host","$db_username","$db_password") or die("Errore connessione al database sql"); $dbw = @mysql_select_db("asdkasjdlkajs") or die("Errore apertura database sakndkajsndka"); $strsql = "SELECT * FROM jos_polls "; $rs = @mysql_query("$strsql",$link) or die("Errore query database:" .mysql_error()); ?>

Ricevo come riposta una pagina bianca..

Ho provato ad interrogare diverse tabelle del mio database legato al mio sito Joomla ma ricevo sempre questa risposta..

Grazie e scusate la banalità della domanda ma son un vero niubbo... :-\

ps

il programmino php è installato nella root principale del mio sito.. ( non dovrebbe centrare nulla da dove parte la query però l'ho messa lì uguale..ditemi se questo è esatto o non conta nulla dove installo il codice php )

inviato 6 anni fa
sevix
modificato 6 anni fa
X 0 X

E' normale, non stampi niente a video.

Prova così:

<?php
# Se usi le @ rules, non ricaverai mai il messaggio di errore in caso di fallimento della funzione
$link = mysql_connect("$db_host","$db_username","$db_password") or die("Errore connessione al database sql: ". mysql_error());

# non serve istanziare mysql_select_db ed anche qui, la @rules non serve ;-)
mysql_select_db("asdkasjdlkajs") or die("Errore apertura database: ".mysql_error());

# formulazione della query
$sql = "SELECT * FROM jos_polls ";

# immagazziniamo il risultato
$rs = mysql_query($sql, $link) or die("Errore queru: " .mysql_error());

# inizializziamo l'output
echo "<pre>";

# Ogni giro, $jos_polls è un array associativo con le informazioni della riga corrente, il while scorre tutte le righe che vengono eventualemnte rintracciate dalla clausola where della query
while ($jos_polls = mysql_fetch_assoc($rs))
{
        print_r($jos_polls);
        echo "\n\n\n";
}


# a questo punto, puliamo le risorse impiegate dalla query: operazione di ottimizzazione che non fa mai male al server ;-)
mysql_free_result($rs);


echo "</pre>";
?>
risposto 6 anni fa
s.rotondo
X 0 X

grazie..!

ho comq risolto ieri il problema inserendo del codice php che mi creasse una tabella con le risultanti delle variabili associate appunto ai campi..

Ora ho un' altro problema..

Devo praticamente usare la funzione cancella per eliminare alcune righe direttamente da una tabella online:

<a href=\"delete.php?ContattoManager=$str_ContattoManager\">Elimina</a> Questo è il link inserito nella tabella

$strsql = "DELETE FROM vetrina WHERE ContattoManager = ".$_GET['ContattoManager']; Questo è il file inserito nell'altro foglio php dove in pratica è contenuto il programma delete.php

Il messag di errore è questo : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/virtual/fifamanualleague.net/htdocs/mercato/delete.php on line 9

Un errore di sintassi che avevo pensato fosse  legato al doppio apice in grassetto( = ".$_GET['ContattoManager'] ) , allora ho provato a cambiarlo in questo modo = "DELETE FROM vetrina WHERE ContattoManager = .$_GET['ContattoManager']";

ma ottengo sempre lo stesso errore..

risposto 6 anni fa
sevix
X 0 X
$strsql = "DELETE FROM vetrina WHERE ContattoManager = ".$_GET['ContattoManager'];

Rabbrividisco nel vedere una riga del codice del genere...sei esposto ad una marea di rischi di sicurezza, in primis SQL injection...

Dovresti fare un controllo sui parametri che passi tramite $_GET al tuo script.

Poi per fare l'eliminazione del tuo contatto è meglio usare un ID del campo nella tabella, non usare i nomi.

Per risolvere l'errore che ti segnala prova così (fermo restando che è un codice orribile):

$strsql = "DELETE FROM vetrina WHERE ContattoManager = '".$_GET['ContattoManager']."'";
risposto 6 anni fa
Mario Santagiuliana
modificato 6 anni fa
X 0 X
$strsql = "DELETE FROM vetrina WHERE ContattoManager = ".$_GET['ContattoManager'];

Rabbrividisco nel vedere una riga del codice del genere...sei esposto ad una marea di rischi di sicurezza, in primis SQL injection...

Dovresti fare un controllo sui parametri che passi tramite $_GET al tuo script.

Poi per fare l'eliminazione del tuo contatto è meglio usare un ID del campo nella tabella, non usare i nomi.

Per risolvere l'errore che ti segnala prova così (fermo restando che è un codice orribile):

$strsql = "DELETE FROM vetrina WHERE ContattoManager = '".$_GET['ContattoManager']."'";

grz...lo sò che usare gli id è la cosa migliore..

risposto 6 anni fa
sevix
X 0 X
grz...lo sò che usare gli id è la cosa migliore..

Ognuno è libero di fare come preferisce  ;)

Facci sapere come va. Ciao

risposto 6 anni fa
Mario Santagiuliana
X 0 X
grz...lo sò che usare gli id è la cosa migliore..

Ognuno è libero di fare come preferisce  ;)

Facci sapere come va. Ciao

eheh..figurati.. sono un iper neofita.. se ti dovessi fare vedere gli abomini di codice che creo avresti un malore...  :2funny:

risposto 6 anni fa
sevix
X 0 X
$strsql = "DELETE FROM vetrina WHERE ContattoManager = ".$_GET['ContattoManager'];

Rabbrividisco nel vedere una riga del codice del genere...sei esposto ad una marea di rischi di sicurezza, in primis SQL injection...

Dovresti fare un controllo sui parametri che passi tramite $_GET al tuo script.

Poi per fare l'eliminazione del tuo contatto è meglio usare un ID del campo nella tabella, non usare i nomi.

Per risolvere l'errore che ti segnala prova così (fermo restando che è un codice orribile):

$strsql = "DELETE FROM vetrina WHERE ContattoManager = '".$_GET['ContattoManager']."'";

Aggiungo solo piccole tips oltre a quanto gia' esplicato:

- usa mysql real escape string [http://php.net/mysql_real_escape_string]

- tutti i dati che sai possono solo essere interi, forzali come tali [http://www.php.net/manual/en/language.types.integer.php]

- quando te lo puoi permettere, usa htmlentities [http://www.php.net/htmlentities]

- sarebbe buona norma generarsi da se una propria funzione di escape in cui filtrare alcune parole riservate di SQL per limitare i rischi di injection [ SELECT, DROP, TRUNCATE.. ] qualora esse non siano disabilitate di default dal modulo mysql.

- regola d'oro: non ti fidare MAI degli input che ti giungono lato client ;-)

Per il resto, quella che stai percorrendo e' stata una tappa obbligata per chiunque abbia tentato di avvicinarsi a questa tipologia di linguaggi, quindi non ti preoccupare e pensa a fare tanta pratica ;-)

risposto 6 anni fa
s.rotondo
X 0 X

grz !!... qund ho qualke prob, preso probabilmente, passo di qui  O0

risposto 6 anni fa
sevix
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda