Код php

Discussion in 'Песочница' started by Johnydriver, 11 Jul 2015.

  1. Johnydriver

    Johnydriver New Member

    Joined:
    9 May 2015
    Messages:
    18
    Likes Received:
    1
    Reputations:
    0
    Привет, создал свой сократитель ссылок как в видео youtube . com/watch?v=LPzvl8vCPkk

    Только он делает по 1 сокращенной ссылке, и каждый раз нужно вводить сайт заново и сокращать.

    Какой код использовать, чтобы задать самому цифру для сокращалки. Например мне нужно чтобы он сократил 1 ссылку 1000 раз, какой код прописать?

    Буду очень благодарен за ответ!
     
  2. ol1ver

    ol1ver Active Member

    Joined:
    22 Jul 2011
    Messages:
    237
    Likes Received:
    155
    Reputations:
    0
    Цикл и пауза.

    foreach() или while() - циклы
    sleep() - пауза

    http://php.net
     
    Johnydriver likes this.
  3. Johnydriver

    Johnydriver New Member

    Joined:
    9 May 2015
    Messages:
    18
    Likes Received:
    1
    Reputations:
    0
    Я полный новичок в php...
    прописать:
    while('1')
    sleep('1')

    Я правильно понял?
     
  4. Dr. Web

    Dr. Web Member

    Joined:
    9 May 2015
    Messages:
    29
    Likes Received:
    13
    Reputations:
    0
    да
     
  5. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Code:
    $urlList = ['http://google.com', 'http://youtube.com'];
    foreach($urlList as $oneUrl){
        $counter = 1000;
        while($counter > 0){
            echo функция_сокращения_ссылок($oneUrl);
            $counter--;
        }
    }
    
    Набросал на коленке, но думаю логика понятна
     
    Johnydriver likes this.
  6. Johnydriver

    Johnydriver New Member

    Joined:
    9 May 2015
    Messages:
    18
    Likes Received:
    1
    Reputations:
    0
    Это все добавить к текущему коду?
    Благодарю за потраченное время.
     
  7. Johnydriver

    Johnydriver New Member

    Joined:
    9 May 2015
    Messages:
    18
    Likes Received:
    1
    Reputations:
    0
    PHP:
    <?php

    $db 
    = new mysqli(localhost","data1","%^LX0qM4v*]2", "data1_min");

    function generateRandomString(
    $length = 10) {
    $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for (
    $i = 0; $i < $length$i++) {
    $randomString .= #characters[rand(0, $charactersLength - 1)];
    }
    return 
    $randomString;
    }

    if (isset(
    $_GET['title'])) {
    $result = $db->prepare("SELECT FROM links WHERE title=?");
    $result->bind_param("s", $_GET['title']);
    $result->execute();

    $goto = $result->get_result()->fetch_array();
    $g = $goto[1];
    header("
    Location$g";
    }

    if (isset(
    $_POST['shorten'])) {
    $title = generateRandomString();
    if (substr(
    $_POST['url_to_shorten'], 0, 7) != "http://" {
    $url "http://".$ POST['url_to_shorten'];
    } else {
    $url $_POST['url_to_shorten'];

    $result$db->prepare("INSERT INTO links VALUES('',?,?)");
    $result->bind_param("ss",$url$title);
    $result->execute();
    echo .
    $title;
    }
    ?>
    <!doctype html>
    <html>
    <head>
    <title>fuck ur mom</title>
    </head>
    <body>
    <center>
    <h1>Shorten your links</h1>
    <form action="/" method="POST">
    <input type="text" name="url_to_shorten" value="" placeholder="Paste the link to shorten">
    <input type="submit" name="shorten" value="shorten link" />
    </form>
    </center>
    </body>
    </html>
    что в нем изменить, чтобы работал?
     
  8. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    посмотри по подсветке синтаксиса там же ошибок вагон и все они подсвечены, бросается в глаза.
     
  9. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Вот эта порадовала =)
     
  10. winstrool

    winstrool ~~*MasterBlind*~~

    Joined:
    6 Mar 2007
    Messages:
    1,413
    Likes Received:
    910
    Reputations:
    863
    PHP:
    $characters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    ......
    $randomString .= #characters[rand(0, $charactersLength - 1)];
    Включите вывод ошибок, да смотрите по логам!
     
    _________________________
  11. Johnydriver

    Johnydriver New Member

    Joined:
    9 May 2015
    Messages:
    18
    Likes Received:
    1
    Reputations:
    0
    Я новичок, я ели ели читаю PHP, не понимаю где ошибки, если кто-то может помочь, я отблагодарю финансово...
    Дайте контакт, кто сможет.
     
  12. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Отписал в ЛС
     
  13. jslby

    jslby New Member

    Joined:
    18 May 2015
    Messages:
    37
    Likes Received:
    3
    Reputations:
    0
    Поэтому ему приходится довольствоваться малым =))
     
    frank likes this.
  14. frank

    frank Member

    Joined:
    8 May 2015
    Messages:
    200
    Likes Received:
    96
    Reputations:
    28
    Ну или воспользоваться уже готовыми вариантами на том же PHP, открыть книжку по PHP и разбираться что и как работает.
    Вот как вариант одного из решений
    http://ajc.su/web-razrabotka/php/prostoj-sokrashhatel-ssylok-na-php/
     
    YouReTs and altblitz like this.
  15. YouReTs

    YouReTs Member

    Joined:
    20 Jul 2015
    Messages:
    11
    Likes Received:
    6
    Reputations:
    0
    Круто! Пригодится)))
     
    #15 YouReTs, 28 Jul 2015
    Last edited: 28 Jul 2015
  16. YouReTs

    YouReTs Member

    Joined:
    20 Jul 2015
    Messages:
    11
    Likes Received:
    6
    Reputations:
    0
    Есть такой код:

    PHP:
    <?

    include (
    'config.php'); # подключение
       
    mysql_connect($sqlhost$sqluser$sqlpass);
       
    mysql_query("SET NAMES `CP1251`") or die (mysql_error());
       
    mysql_select_db($sqldb);
       
    if(!empty(
    $_GET['a'])){
      
    $url=mysql_real_escape_string($_GET['a']);
      
    $query=mysql_query("SELECT * FROM `urls` where `url`='$url'");
      if(
    mysql_num_rows($query)==1){
        while(
    $row=mysql_fetch_array($query)){
          
    $url_real=$row['url_real'];
        }
        
    header("location: ".$url_real);
      } else {
        
    header("location: http://".$_SERVER['SERVER_ADDR']);
      }
    }
    ?>
    <form action="" method="post">
    Url:<input type="text" name="url">
    <button>ok</button>
    </form>
    <?
      function create_url()
      {
        $arr = array('a','b','c','d','e','f',
                     'g','h','i','j','k','l',
                     'm','n','o','p','r','s',
                     't','u','v','w','x','y',
                     'z','A','B','C','D','E',
                     'G','H','I','J','K','L',
                     'M','N','O','P','R','S',
                     'T','U','V','W','X','Y',
                     'Z','F','1','2','3','4',
                     '5','6','7','8','9','0');
        $url = "";
        for($i = 0; $i < 6; $i++)
        {
          $random = rand(0, count($arr) - 1);
          $url .= $arr[$random];
        }
        return $url;
      }
    if(isset($_POST['url'])){
      $url_real=mysql_real_escape_string(htmlspecialchars($_POST['url']));
      if(file_get_contents($url_real)){
        do {
           $url_random=create_url();
           $q=mysql_query("SELECT * FROM `url` where `url`='$url_random'");
        } 
        while(@mysql_num_rows($q)>0);
        $query=mysql_query("SELECT * FROM `urls` where `url_real`='$url_real'");
        if(mysql_num_rows($query)==0){
           mysql_query("INSERT INTO `urls`(url,url_real) VALUES('$url_random','$url_real')");
           echo 'http://'$_SERVER['SERVER_ADDR'].$url_random;
        } else {
          while($row=mysql_fetch_array($query)){
               $url=$row['url'];
          }
          echo 'http://'.$_SERVER['SERVER_ADDR'].'/'.$url;
        }
      } else {
        echo 'неверный url';
      }

    ?>
    Сама форма:
    HTML:
    <form action="" method="post">
    Введите ссылку:<input type="text" name="url">
    <button>получить</button>
    </form>
    База данных MySQL:
    id, url, url_real