PHP Link Problem within Storage App

Discussion in 'HTML & Website Design' started by blktallos, Sep 12, 2014.

  1. #1
    I converted a PHP Email App into a saving app. And I am having a problem being able to open a link within the application.

    Here is a live example of the app online - [Link][1]

    http://www.andulicsdesign.com/Blakes/

    The PHP code has converted the links on the page into mailto links. I cant figure out how to just get the links to be displayed normal.

    Is there a way I can convert the link to be displayed normally without being opened as email links?
    Any help is appreciated

    Im sure its something simple, but I don't understand it.

    Thank you

    
    echo "<tr><th align='left'><a href=\"$email\">$name</a></th>
                           <th class='right'>$submitDate</th></tr>";
                  echo "<tr><td colspan='2'>".nl2br(htmlspecialchars($content))."<br/></td></tr>";
              }
    
    Code (markup):
    
    
    <?php
    class maxGuestbook{
       var $messageDir = 'messages';
       var $dateFormat = 'Y-m-d g:i:s A';
       var $itemsPerPage = 5;
       var $messageList;
       
    function processGuestbook(){
       if (isset($_POST['submit'])) {
          $this->insertMessage();
       }
       $page = isset($_GET['page']) ? $_GET['page'] : 1;
       
       $this->displayGuestbook($page);
    }
       
    function getMessageList(){
       
       $this->messageList = array();
       
        // Open the actual directory
        if ($handle = @opendir($this->messageDir)) {
            // Read all file from the actual directory
            while ($file = readdir($handle))  {
               if (!is_dir($file)) {
                  $this->messageList[] = $file;
              }
            }
        }   
       
        rsort($this->messageList);
       
        return $this->messageList;
    }  
    
    function displayGuestbook($page=1){
          $list = $this->getMessageList();
          //echo "<center><a href='add.php'>Leave a message</a></center>";
          echo "<table class='newsList'>";
         
          //Get start point and end point
          $startItem = ($page-1)*$this->itemsPerPage;
          if (($startItem + $this->itemsPerPage) > sizeof($list)) $endItem = sizeof($list);
          else $endItem = $startItem + $this->itemsPerPage; 
         
          for ($i=$startItem;$i<$endItem;$i++){
             //foreach ($list as $value) {
             $value = $list[$i];
              $data = file($this->messageDir.DIRECTORY_SEPARATOR.$value);
              $name  = trim($data[0]);
              $email = trim($data[1]);
             $submitDate = trim($data[2]);   
             unset ($data['0']);
             unset ($data['1']);
             unset ($data['2']);
             
             $content = "";
             foreach ($data as $value) {
                  $content .= $value;
             }
             
              echo "<tr><th align='left'><a href=\"mailto:$email\">$name</a></th>
                       <th class='right'>$submitDate</th></tr>";
              echo "<tr><td colspan='2'>".nl2br(htmlspecialchars($content))."<br/></td></tr>";
          }
          echo "</table>";
          if (sizeof($list) == 0){
             echo "<center><p>No messages at the moment!</p><p>&nbsp;</p></center>";
          }
          // Create pagination
          if (sizeof($list) > $this->itemsPerPage){
             echo "<div id=\"navigation\">";
             if ($startItem == 0) {
                if ($endItem < sizeof($list)){
                   echo "<div id=\"nright\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\" >Next &raquo;</a></div>";
                } else {
                   // Nothing to display
                }
             } else {
                if ($endItem < sizeof($list)){
                   echo "<div id=\"nleft\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\" >&laquo; Prev</a></div>";
                   echo "<div id=\"nright\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page+1)."\" >Next &raquo;</a></div>";
                } else {
                   echo "<div id=\"nleft\"><a href=\"".$_SERVER['PHP_SELF']."?page=".($page-1)."\" >&laquo; Prev</a></div>";
                }
             }
             
             echo "<br/></div><br/>";
          }
          echo "<hr />";
          $this->displayAddForm();
    }
    
    function displayAddForm(){
    ?>  
      <form class="iform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        Website Link<br/>
        <input type="text" name="name" size="30"/><br/><br/>
        Contact Name<br/>
        <input type="text" name="email" size="30"/><br/><br/>
        Job Link Information<br/>
        <textarea name="message" rows="7" cols="49"></textarea><br/>
        <center><input type="submit" name="submit" value="Save" /></center>
      </form> 
       
    <?php  
    }
    
    function insertMessage(){
       $name   = isset($_POST['name']) ? $_POST['name'] : 'Anonymous';
       $email  = isset($_POST['email']) ? $_POST['email'] : '';
       $submitDate  = date($this->dateFormat);
       $content = isset($_POST['message']) ? $_POST['message'] : '';
       
       if (trim($name) == '') $name = 'Anonymous';
       if (strlen($content)<5) {
          exit();
       }
       
       $filename = date('YmdHis');
       if (!file_exists($this->messageDir)){
          mkdir($this->messageDir);
       }
       $f = fopen($this->messageDir.DIRECTORY_SEPARATOR.$filename.".txt","w+");        
       fwrite($f,$name."\n");
       fwrite($f,$email."\n");
       fwrite($f,$submitDate."\n");
       fwrite($f,$content."\n");
       fclose($f);
       
    }
    }
    ?>
    
    Code (markup):
     
    blktallos, Sep 12, 2014 IP
  2. Krellen

    Krellen Greenhorn

    Messages:
    38
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    18
    #2
    There are both $name and $email values in your code. Do you want the names displayed without links? Either way...

    In the maxGuestbook class within the displayGuestbook() method, line 64 reads:

    echo "<tr><th align='left'><a href=\"mailto:$email\">$name</a></th>
    Code (markup):
    If you want just the names displayed, change it to:
    echo "<tr><th align='left'>$name</th>
    Code (markup):
    If you want just the emails displayed, change it to:
    echo "<tr><th align='left'>$email</th>
    Code (markup):
    If you want the $email link to not have the mailto (not sure why you'd want that), change it to:
    echo "<tr><th align='left'><a href=\"$email\">$name</a></th>
    Code (markup):
    I'm not sure if that answers your question exactly, but I hope some combination of the above will work for you!
     
    Krellen, Sep 17, 2014 IP