• Moderatore

    si, si può fare anche così 🙂

    ps. grazie Saro dimenticavo gli apici

    tanto poi basta modificare, velocemente, inviamessaggio.php e abbiamo risolto 🙂

    allora invece di chiedere tu scripta e posta 🙂


  • User Attivo

    @massimux said:

    si, si può fare anche così 🙂

    ps. grazie Saro dimenticavo gli apici

    tanto poi basta modificare, velocemente, inviamessaggio.php e abbiamo risolto 🙂

    allora invece di chiedere tu scripta e posta 🙂
    allora...ho immaginato la pagina listaiscritti piu o meno cosi'...se voglio renderla accessibile solo agli utenti iscritti mi basta fare un controllo sul login...se invece la voglio fare accessibbile a chiunque nn faccio nessun controllo sul login..e fin qui ci ono...per mostrare a video gli iscritti mi basta fare una query al database alla tabella iscritti e decidere poi qual campi mostrare dell iscritto....e anche fin qui ci sono...:)l unica cosa sulla quale nn ci sono affatto e come rendere linkabile in modo univoco ogni utente iscritto....cioè quando mostro a video gli iscritti come faccio a fars si' che clikkando sul nome dell utente desiderato posso accedere al suo profilo?Premetto che nella pagina listaiscritti mostrerò a video soltanto il campo nome della tabella iscritti....questo campo nome però che mostroa video deve essere linkabile...in modo che clikkandoci sopra possa accedere al profilo completo...da cui mostrare poi tutti i campi relativi all utente...cioè email...data iscrizione....descrizione...età...ect:?:?:?


  • Moderatore

    imposta la pagina e fai tutto io ti farò vedere 🙂


  • User Attivo

    @massimux said:

    imposta la pagina e fai tutto io ti farò vedere 🙂

    eccol la pagina listaiscritti:)
    [PHP]
    <?
    //Apro la sessione e...
    session_start();
    // opto quindi per la visualizzazione ai solo iscritti
    if($_SESSION['logged']==1){
    //se si...
    ?>
    <html>
    <head>
    <body>
    <table width="400" border="1" cellspacing="0" cellpadding="1" align="center">
    <tr>
    <td colspan="4">
    <div align="center"><font color="#0000FF"><b>Lista iscritti</b></font></div>
    </td>
    </tr>
    <tr>
    <td>
    <div align="center"><b>UTENTE</b></div>
    </td>

    <?
    //mi connetto al datase
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    //seleziono il database
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
    //seleziono solo il campo nome dalla tabella iscritti
    $strsql="SELECT nome FROM iscritti";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //faccio un ciclo while
    while ($riga = mysql_fetch_array($rs)) {
    $str_nome = $riga['nome'];

    echo "<tr><td>$str_nome</td><td>";
    }//qui chiudi il while
    }//qui chiudi l'IF
    else {
    //altrimenti...
    echo "Non sei loggato...";
    //annullo tutte le chiavi di sessioni se esistono
    session_unset();
    session_destroy();
    header("Location: login.htm");
    }
    ?>[/PHP]


  • Moderatore

    [PHP]
    <?
    //Apro la sessione e...
    session_start();
    // opto quindi per la visualizzazione ai solo iscritti
    if($_SESSION['logged']==1){
    //se si...
    ?>
    <html>
    <head>
    <body>
    <table width="400" border="1" cellspacing="0" cellpadding="1" align="center">
    <tr>
    <td colspan="4">
    <div align="center"><font color="#0000FF"><b>Lista iscritti</b></font></div>
    </td>
    </tr>
    <tr>
    <td>
    <div align="center"><b>UTENTE</b></div>
    </td>

    <?
    //mi connetto al datase
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    //seleziono il database
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
    //seleziono solo il campo nome dalla tabella iscritti
    $strsql="SELECT nome FROM iscritti";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //faccio un ciclo while
    while ($riga = mysql_fetch_array($rs)) {
    $str_nome = $riga['nome'];

    echo "<tr><td><a href="inviamessaggio.php?destinatario=".$str_nome."">".$str_nome."</a></td><td>";
    }//qui chiudi il while
    }//qui chiudi l'IF
    else {
    //altrimenti...
    echo "Non sei loggato...";
    //annullo tutte le chiavi di sessioni se esistono
    session_unset();
    session_destroy();
    header("Location: login.htm");
    }
    ?>[/PHP]

    noterai una cosa strana 🙂 si :
    <a href="inviamessaggio.php?destinatario=".$str_nome."">".$str_nome."</a>
    Utilizzeremo una variabile GET quindi riprendiamo la pagina inviomessaggio e la modifichiamo così:

    [PHP]
    <?
    //Apro la sessione e...
    session_start();
    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1){
    //se si...
    //verifico se esiste la variabile destinatario
    if(isset($_GET['destinatario']) OR $_GET['destinatario'] != ""){
    $destinatario=$_GET['destinatario'];
    }
    ?>
    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Pannello di controllo utente</title>
    </head>

    <body>
    <?
    //facciamo una stampata a video!
    echo "Ciao " . $_SESSION[nome] . "Scrivi il messaggio che vuoi inviare";
    ?>
    <form method="post" action="invio.php">
    <p>Destinatario</p>
    <p><input type="text" name="destinatario" value="<?=$destinatario ?>"</p>
    <p>Oggetto</p>
    <p><input type="text" name="oggetto" value="" size="20"</p>
    <textarea name="messaggio"></textarea>
    <input type="submit" value="Invia messaggio">
    </form>
    <?
    } else {
    //altrimenti...
    echo "Non sei loggato...";
    //annullo tutte le chiavi di sessioni se esistono
    session_unset();
    session_destroy();
    header("Location: login.htm");
    }
    ?>
    [/PHP]

    che ne dici?


  • User Attivo

    @massimux said:

    [PHP]
    <?
    //Apro la sessione e...
    session_start();
    // opto quindi per la visualizzazione ai solo iscritti
    if($_SESSION['logged']==1){
    //se si...
    ?>
    <html>
    <head>
    <body>
    <table width="400" border="1" cellspacing="0" cellpadding="1" align="center">
    <tr>
    <td colspan="4">
    <div align="center"><font color="#0000FF"><b>Lista iscritti</b></font></div>
    </td>
    </tr>
    <tr>
    <td>
    <div align="center"><b>UTENTE</b></div>
    </td>

    <?
    //mi connetto al datase
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    //seleziono il database
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
    //seleziono solo il campo nome dalla tabella iscritti
    $strsql="SELECT nome FROM iscritti";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //faccio un ciclo while
    while ($riga = mysql_fetch_array($rs)) {
    $str_nome = $riga['nome'];

    echo "<tr><td><a href="inviamessaggio.php?destinatario=".$str_nome."">".$str_nome."</a></td><td>";
    }//qui chiudi il while
    }//qui chiudi l'IF
    else {
    //altrimenti...
    echo "Non sei loggato...";
    //annullo tutte le chiavi di sessioni se esistono
    session_unset();
    session_destroy();
    header("Location: login.htm");
    }
    ?>[/PHP]

    noterai una cosa strana 🙂 si :
    <a href="inviamessaggio.php?destinatario=".$str_nome."">".$str_nome."</a>
    Utilizzeremo una variabile GET quindi riprendiamo la pagina inviomessaggio e la modifichiamo così:

    [PHP]
    <?
    //Apro la sessione e...
    session_start();
    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1){
    //se si...
    //verifico se esiste la variabile destinatario
    if(isset($_GET['destinatario']) OR $_GET['destinatario'] != ""){
    $destinatario=$_GET['destinatario'];
    }
    ?>
    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Pannello di controllo utente</title>
    </head>

    <body>
    <?
    //facciamo una stampata a video!
    echo "Ciao " . $_SESSION[nome] . "Scrivi il messaggio che vuoi inviare";
    ?>
    <form method="post" action="invio.php">
    <p>Destinatario</p>
    <p><input type="text" name="destinatario" value="<?=$destinatario ?>"</p>
    <p>Oggetto</p>
    <p><input type="text" name="oggetto" value="" size="20"</p>
    <textarea name="messaggio"></textarea>
    <input type="submit" value="Invia messaggio">
    </form>
    <?
    } else {
    //altrimenti...
    echo "Non sei loggato...";
    //annullo tutte le chiavi di sessioni se esistono
    session_unset();
    session_destroy();
    header("Location: login.htm");
    }
    ?>
    [/PHP]

    che ne dici?

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /membri/italiawebchat/listaiscritti.php on line 35


  • Moderatore

    non ti arrendere subito erano un po' di operazioni di debug da fare 🙂 di solito ti rispondo in modo veloce quindi non rileggo ciò che scrivo.... comunque ecco a te 🙂
    [php]
    <?
    //Apro la sessione e...
    session_start();
    // opto quindi per la visualizzazione ai solo iscritti
    if($_SESSION['logged']==1){
    //se si...
    ?>
    <html>
    <head>
    <body>
    <table width="400" border="1" cellspacing="0" cellpadding="1" align="center">
    <tr>
    <td colspan="4">
    <div align="center"><font color="#0000FF"><b>Lista iscritti</b></font></div>
    </td>
    </tr>
    <tr>
    <td>
    <div align="center"><b>UTENTE</b></div>
    </td>

    <?
    //mi connetto al datase
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    //seleziono il database
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
    //seleziono solo il campo nome dalla tabella iscritti
    $strsql="SELECT nome FROM iscritti";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //faccio un ciclo while
    while ($riga = mysql_fetch_array($rs)) {
    $str_nome = $riga['nome'];

    echo "<tr><td><a href="inviamessaggio.php?destinatario=".$str_nome."">".$str_nome."</a></td><td>";
    }//qui chiudi il while
    }//qui chiudi l'IF
    else {
    //altrimenti...
    echo "Non sei loggato...";
    //annullo tutte le chiavi di sessioni se esistono
    session_unset();
    session_destroy();
    header("Location: login.htm");
    }
    ?>
    [/php]


  • User Attivo

    @massimux said:

    non ti arrendere subito erano un po' di operazioni di debug da fare 🙂 di solito ti rispondo in modo veloce quindi non rileggo ciò che scrivo.... comunque ecco a te 🙂
    [php]
    <?
    //Apro la sessione e...
    session_start();
    // opto quindi per la visualizzazione ai solo iscritti
    if($_SESSION['logged']==1){
    //se si...
    ?>
    <html>
    <head>
    <body>
    <table width="400" border="1" cellspacing="0" cellpadding="1" align="center">
    <tr>
    <td colspan="4">
    <div align="center"><font color="#0000FF"><b>Lista iscritti</b></font></div>
    </td>
    </tr>
    <tr>
    <td>
    <div align="center"><b>UTENTE</b></div>
    </td>

    <?
    //mi connetto al datase
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    //seleziono il database
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
    //seleziono solo il campo nome dalla tabella iscritti
    $strsql="SELECT nome FROM iscritti";

    $rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    //faccio un ciclo while
    while ($riga = mysql_fetch_array($rs)) {
    $str_nome = $riga['nome'];

    echo "<tr><td><a href="inviamessaggio.php?destinatario=".$str_nome."">".$str_nome."</a></td><td>";
    }//qui chiudi il while
    }//qui chiudi l'IF
    else {
    //altrimenti...
    echo "Non sei loggato...";
    //annullo tutte le chiavi di sessioni se esistono
    session_unset();
    session_destroy();
    header("Location: login.htm");
    }
    ?>
    [/php]

    Arrendere....?Makkè....sono stato fino le 2 e30 stanotte su quella riga 35 a cercare di capire cosa nn andava...❌xquestione di / quindi....che serve da quel che so a far capire a php che in qella riga nn deve leggere...cmq caro antonio ora funziona...:)e grazie alla variabile GET che mi hai fatto aggiungere il valore destinatario viene automaticamente recuperato nel campo destinatario della pagina inviamessaggio.php....ottimo direi;)
    ora sto provando a fare dei controlli sui campi vuoti...al momento che l utente inserisce deid ati...questa per esempio e la pagina per iscriversi...
    [PHP]
    <?php
    //connessione al database con valori ovviamente non veri
    $db_database = 'non_vera';
    $db_username = 'false';
    $db_password = 'false';
    $db_host = 'localhost';
    //recupero i valori dal form iscriviti
    $cnome = $_POST['nome'];
    $cutenteemail = $_POST['utenteemail'];
    $csesso = $_POST['sesso'];
    $cpassword = $_POST['password'];
    $cdescrizione = $_POST['descrizione'];

    //effettuo controllo sui campi per vdere se sono vuoti
    if(strlen($cnome)<=0 , strlen($cpassword)<=0 , strlen($cutenteemail)<=0) , strlen($cdescrizione)<=0 , strlen($csesso)<=0{
    echo "Uno o piu’ campi vuoti<br>";

    }

    //controlla la pass non ha piu’ di 7 caratteri
    if (strlen($cpassword)>7) {
    echo"attenzione la password deve avere non piu’ di 7 caretteri<br>";
    }

    //controlla se e’ email o meno
    if (!ereg('^([a-zA-Z0-9])+([.a-zA-Z0-9_-])@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+).([a-zA-Z]{2,6})$',$cutenteemail)) {
    echo "email non valida!";
    //se si verifica uno dei seguenti errori rimando alla pagina di login
    header("Location: login.htm");
    }
    ?>
    //se invece e tutto a posto procedo con la connessione al database

    <?
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());

    $strsql="INSERT INTO iscritti (nome,utenteemail,sesso,password,descrizione) VALUES ('$cnome','$cutenteemail','$csesso','$cpassword','$cdescrizione')";

    @mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    echo "Grazie per esserti iscritto";

    ?>
    [/PHP]


  • Moderatore

  • User Attivo

    🙂
    Praticamente tramite require potrei includere un file esempio configurazione.php in cui potrei mettere i dati di accesso al database e inserirlo tramite
    [PHP]
    require("configurazione.php");
    [/PHP]
    nelle pagine che voglio sia presente


  • Moderatore

    bravo 🙂

    ti consiglio require_once 🙂


  • User Attivo

    [QUOTE=massimux;506047]bravo vedo che tu hai capito 🙂

    voglio darti un'ultima chicca se ti và...

    però prima devi studiarti questo:

    nello script precedentemente sul controllo c'è un errore...:(⭕o:

    quindi require_once (cioè valutato una sola volta)

    pagina che controlla i campi
    [PHP]
    <?php
    //connessione al database con valori ovviamente non veri
    $db_database = 'non_vera';
    $db_username = 'false';
    $db_password = 'false';
    $db_host = 'localhost';
    //recupero i valori dal form iscriviti
    $cnome = $_POST['nome'];
    $cutenteemail = $_POST['utenteemail'];
    $csesso = $_POST['sesso'];
    $cpassword = $_POST['password'];
    $cdescrizione = $_POST['descrizione'];

    //effettuo controllo sui campi per vdere se sono vuoti
    if(strlen($cnome)<=0 | strlen($cpassword)<=0 | strlen($cutenteemail)<=0) | strlen($cdescrizione)<=0 | strlen($csesso)<=0{
    echo "Uno o piu’ campi vuoti<br>";

    }

    //controlla la pass non ha piu’ di 7 caratteri
    if (strlen($cpassword)>7) {
    echo"attenzione la password deve avere non piu’ di 7 caretteri<br>";
    }

    //controlla se e’ email o meno
    if (!ereg('^([a-zA-Z0-9])+([.a-zA-Z0-9_-])@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+).([a-zA-Z]{2,6})$',$cutenteemail)) {
    echo "email non valida!";
    //se si verifica uno dei seguenti errori rimando alla pagina di registrazione
    header("Location: iscrizionesito.htm");
    }
    ?>

    <?
    //lo script dovrebbe bloccarsi se i dati precedentemente inseriri sono errati
    invece se tutto aposto connettersia l datase e inserire i dati
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());

    $strsql="INSERT INTO iscritti (nome,utenteemail,sesso,password,descrizione) VALUES ('$cnome','$cutenteemail','$csesso','$cpassword','$cdescrizione')";

    @mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    echo "Grazie per esserti iscritto";

    ?>
    [/PHP]


  • User Attivo

    @carlitos1982 said:

    [quote=massimux;506047]bravo vedo che tu hai capito 🙂

    voglio darti un'ultima chicca se ti và...

    però prima devi studiarti questo:

    nello script precedentemente sul controllo c'è un errore...:(⭕o:

    quindi require_once (cioè valutato una sola volta)

    pagina che controlla i campi
    [php]
    <?php
    //connessione al database con valori ovviamente non veri
    $db_database = 'non_vera';
    $db_username = 'false';
    $db_password = 'false';
    $db_host = 'localhost';
    //recupero i valori dal form iscriviti
    $cnome = $_POST['nome'];
    $cutenteemail = $_POST['utenteemail'];
    $csesso = $_POST['sesso'];
    $cpassword = $_POST['password'];
    $cdescrizione = $_POST['descrizione'];

    //effettuo controllo sui campi per vdere se sono vuoti
    if(strlen($cnome)<=0 | strlen($cpassword)<=0 | strlen($cutenteemail)<=0) | strlen($cdescrizione)<=0 | strlen($csesso)<=0{
    echo "Uno o piu? campi vuoti<br>";

    }

    //controlla la pass non ha piu? di 7 caratteri
    if (strlen($cpassword)>7) {
    echo"attenzione la password deve avere non piu? di 7 caretteri<br>";
    }

    //controlla se e? email o meno
    if (!ereg('^([a-zA-Z0-9])+([.a-zA-Z0-9_-])@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+).([a-zA-Z]{2,6})
    non riesco in nessuno modo atrovare l errore in questo script❌x:x,$cutenteemail)) {
    echo "email non valida!";
    //se si verifica uno dei seguenti errori rimando alla pagina di registrazione
    header("Location: iscrizionesito.htm");
    }
    ?>

    <?
    //lo script dovrebbe bloccarsi se i dati precedentemente inseriri sono errati
    invece se tutto aposto connettersia l datase e inserire i dati
    $link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
    mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());

    $strsql="INSERT INTO iscritti (nome,utenteemail,sesso,password,descrizione) VALUES ('$cnome','$cutenteemail','$csesso','$cpassword','$cdescrizione')";

    @mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    echo "Grazie per esserti iscritto";

    ?>
    [/php]
    non riesco in nessuno modo atrovare l errore in questo script❌x:x


  • User Attivo

    Ho aggiustato cosi' :smile5:

    [PHP]
    <?php

    // Includo la connessione al database con il seguente file
    require('config.php'); //<- file che include la connessione al database
    //recupero i valori dal form iscriviti
    $cnome = $_POST['nome'];
    $cutenteemail = $_POST['utenteemail'];
    $csesso = $_POST['sesso'];
    $cpassword = $_POST['password'];
    $cdescrizione = $_POST['descrizione'];

    // Controllo il campo Utente
    if(strlen($cnome) < 4 || strlen($cnome) > 12)
    die('Il nome utente deve essere composto da un minino di 4 caratterei e da un massimo di 12');
    // Controllo la Password
    elseif(strlen($cpassword) < 4 || strlen($cpassword) > 12)
    die('la password deve essere composta da un minino di 4 caratteri e da un massimo di 12');
    // Controllo l'email che sia valida
    elseif(!eregi("^[a-z0-9][_.a-z0-9-]+@([a-z0-9][0-9a-z-]+.)+([a-z]{2,4})", $cutenteemail))
    die('Email non valida prego inserisci un indirizzo valido');
    // Controllo il nome utente che non sia già occupato
    elseif(mysql_num_rows(mysql_query("SELECT nome FROM iscritti WHERE nome = '$cnome' LIMIT 1")) == 1)
    die('Nome Utente occupato');
    // Controllo l'indirizzo email non sia già presente nel database
    elseif(mysql_num_rows(mysql_query("SELECT utenteemail FROM iscritti WHERE utenteemail = '$cutenteemail' LIMIT 1")) == 1)
    die('Questo indirizzo email risulta essere gia usato da un altro utente');
    // Registro l utente nel database
    else
    {

    	// Query per l'inserimento dell'utente nel database
    	$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());  
    

    mysql_select_db('my_italiawebchat') or die("Errore nell apertura database: " . mysql_error());

    $strsql="INSERT INTO iscritti (nome,utenteemail,sesso,password,descrizione) VALUES ('$cnome','$cutenteemail','$csesso','$cpassword','$cdescrizione')";
    @mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
    echo "Grazie per esserti iscritto";

    	// Reindirizzo l'utente alla pagina del login
    	header('Location: login.htm');
    	exit;
    }
    

    ?>

    [/PHP]