• User

    visualizzare profilo utente

    Buongiorno e ancora buon 2021 sono riuscito a creare il profilo utente e una pagina dove l'utente registrato può modificare i suoi dati e caricare la foto profilo ma non riesco a far visualizzare il profilo quando un utente in chat clicca sul nome de l'utente che vuole visualizzare il profilo questo è ciò che ho fatto ma non mi stampa nulla su profilo.php
    codici:

    code_chat.php
    
    <?php
    					/*
    					  blocco dei parametri di connessione
    					*/
    					// nome di host
    					$host = "localhost";
    					// nome del database
    					$db = "ajaxdb";
    					// username dell'utente in connessione
    					$user = "root";
    					// password dell'utente
    					$password = "";
    					
    					/*
    					  blocco try/catch di gestione delle eccezioni
    					*/
    					try {
    					  // stringa di connessione al DBMS
    					  $connessione = new PDO("mysql:host=$host;dbname=$db", $user, $password);
    					  // imposto dell'attributo necessario per ottenere il report degli errori
    					  $connessione->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    					  // selezione e visualizzazione dei dati estratti
    					  foreach ($connessione->query("SELECT * FROM chat") as $row)
    					  {
    						echo $row['name'] ." ". $row['msg'] ."<br />";
    						echo '<td><a href="profilo.php?id=' . $row['id'] . '">Profilo</a></td>';
    					  }
    					  // chiusura della connessione
    					  $connessione = null;
    					}
    					catch(PDOException $e)
    					{
    					  // notifica in caso di errore nel tentativo di connessione
    					  echo $e->getMessage();
    					}
    					?>
    					
    					profileup.php ( modifica dati )
    					 <?php
                        require('db.php');
    					$getimg = mysqli_query($con,"SELECT foto FROM users WHERE name='".$_SESSION['name']."'");
    					$rows=mysqli_fetch_array($getimg);
    					$img = $rows['foto'];
    					
    					?>
      <div class="container emp-profile">
                <form method="post">
                    <div class="row">
                        <div class="col-md-4">
                            <div class="profile-img">
                                <img id="myImg" src="uploads/<?php echo $img?>"  alt="<?php echo $img ?>" width="200" height="150">
                                <div class="card">
                                    
                                    
                                </div>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="profile-head">
                                        <h5>
                                           <?php echo htmlspecialchars($_SESSION["name"]); ?>
                                        </h5>
    									
                                        <p class="proile-rating"></p>
    									<?php
    									  include 'db.php';
    									$id=$_SESSION['id'];
    									$query=mysqli_query($con,"SELECT * FROM users where id='$id'")or die(mysqli_error());
    									$row=mysqli_fetch_array($query);
    									  ?>
    						  <h6>riempire i campi prima di inviare l'aggiornamento</h6>
    					
    					profilo.php ( non stampa nulla )
    					
    					 <?php
    									include 'db.php';
    									$id=$_GET['id'];
    									$query=mysqli_query($con,"SELECT id, name, age, gender, status FROM users where id='$id'")or die(mysqli_error());
    									$row=mysqli_fetch_array($query);
    									
    									// Per stampare i dati
    									$id= $row['id'];
    									$name= $row['name'];
    									$age= $row['age'];
    									$gender= $row['gender'];
    									$status= $row['status']; 
    									  ?>
    							  <div class="container emp-profile">
    										
    											<div class="row">
    												<div class="col-md-4">
    													<div class="profile-img">
    														
    														<div class="card">
    															
    															
    														</div>
    													</div>
    												</div>
    												<div class="col-md-6">
    													<div class="profile-head">
                                        <h5>
                                           
                                        </h5>
    									
                                        <p class="proile-rating"></p>
    									<div class="container">
    								  <div class="row">
    									 <div class="card-header"><p></p>  
    									<li><strong> Nome: </strong><?php echo $row['name']; ?></li>
    									<li><strong> Anni: </strong><?php echo $row['age']; ?></li>
    									<li><strong> Genere: </strong><?php echo $row['gender']; ?></li>
    									<li><strong> Stato: </strong><?php echo $row['status']; ?></li>
    									<div class="card" style="width: 14rem;">

  • User

    ciao e buona serata sono riuscito a prelevare id ma non stampa nulla se ho ben capito devo usare le sessioni ho provato ma non va non so dove sbaglio questo è ciò che assemblato ciò che sto tentando di fare è far visualizzare il profilo utente in chat posto la foto Immagine.png

    <?php
    								require('db.php');
    								$id = $_GET['id'];
    								$result = mysqli_query($con,"SELECT id, name, age, gender, status, create_datetime FROM users WHERE id=$id");
    								$_SESSION['id'] = $id;
    					            
    								
    							  while ($row = mysqli_fetch_array($result)) {
    							  
    								$id= $row['id'];
    								$name= $row['name'];
    								$age= $row['age'];
    								$gender= $row['gender'];
    								$status= $row['status']; 
    								$create_datetime= $row['create_datetime']; 
    					            ?>
                                    
                                </div>
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="profile-head">
                                        <h5>
                                           
                                        </h5>
    									
                                        <p class="proile-rating"></p>
    									<div class="container">
    								  <div class="row">
    									 <div class="card-header"><p></p>  
    									
    									<div class="card" style="width: 14rem;">
    						 
                
                
    				  </div>
    	 <?php
    	}
    							
    	?>
    

  • Consiglio Direttivo

    Ciao Imperor,
    non ho ben capito cosa vorresti fare.

    Vuoi che dalla chat, cliccando su Profilo, si apra qualcosa (cosa? un div? una finestra pop-up style?) che faccia visualizzare le info del profilo utente cliccato?

    Che sia un div, che sia un'altra finestra, dovrai "passare" l'informazione dell'id utente cliccato e quindi, recuperati i dati, visualizzarli a video.


    I 2 Risposte
  • User

    @samyorn ciao e buongiorno si ma non essendo un programmatore sarà molto difficile che ci riesco 😂


  • Consiglio Direttivo

    Beh, se hai già fatto in modo che l'utente possa entrare nel proprio profilo per modificarlo, la logica è praticamente identica solo che invece di prendere l'id dell'utente connesso devi passare alla pagina, quasi speculare, ma di sola visualizzazione senza possibilità di modifica, l'id dell'utente di cui vuoi vedere il profilo.
    Sam


    I 1 Risposta
  • User

    @samyorn ciao e grazie x avermi risposto si in effetti l'utente una volta che si è loggato può sia cambiare i suoi dati e la foto credo che sbagliavo a selezionare la tabbella selezionavo la tabbella users anzichè chat ecco le tabbelle

    codeCREATE TABLE `chat` (
      `id` int(11) NOT NULL,
      `msg` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
      `name` varchar(40) CHARACTER SET utf8 NOT NULL,
      `date` timestamp NOT NULL DEFAULT current_timestamp()
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
    
    -----------------------------------------------------
    
    CREATE TABLE `users` (
      `id` int(11) NOT NULL,
      `name` varchar(50) NOT NULL,
      `email` varchar(50) NOT NULL,
      `password` varchar(50) NOT NULL,
      `foto` varchar(50) NOT NULL,
      `gender` varchar(50) NOT NULL,
      `age` varchar(50) NOT NULL,
      `status` varchar(50) NOT NULL,
      `create_datetime` datetime NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    _text
    

  • User

    @samyorn buongiorno grazie al tuo consiglio ci sono riuscito sbagliavo invece di $id get id ho messo $name get name e nella pagina chat ho messo

    echo '<td><a href="profilo.php?name=' . $row['name'] . '">Profilo</a></td>';
    

  • Consiglio Direttivo

    Ottimo, buon lavoro 🙂