Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding HTTP / HTTPS Automatically when not Added #132

Open
mrlufus opened this issue Mar 13, 2024 · 2 comments
Open

Adding HTTP / HTTPS Automatically when not Added #132

mrlufus opened this issue Mar 13, 2024 · 2 comments

Comments

@mrlufus
Copy link

mrlufus commented Mar 13, 2024

I would like to Add HTTP to the entered URL if not done by the User.

This Code from Geek For Geeks could solve this issue.
https://www.geeksforgeeks.org/how-to-add-http-if-it-doesnt-exists-in-the-url-in-php/

Unfortunately I wasn't able to add this in a working state to the index.php file.
I thought adding it after Code line 51, could do the work.

Maybe some of you have an Idea?

@mrlufus
Copy link
Author

mrlufus commented Mar 13, 2024

I've also tried this here (plugin.php - line 15)

// Part to be executed if FORM has been submitted
if ( isset( $_REQUEST['url'] ) && $_REQUEST['url'] != 'http://' ) {
    // Check if "https://" is missing in the URL
    if (!preg_match("~^(?:f|ht)tps?://~i", $_REQUEST['url'])) {
        $_REQUEST['url'] = "https://" . $_REQUEST['url'];
    }
    if (enableRecaptcha) {
        // Use reCAPTCHA
        $token = $_POST['token'];
        $action = $_POST['action'];
        
        // call curl to POST request
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,"https://www.google.com/recaptcha/api/siteverify");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('secret' => recaptchaV3SecretKey, 'response' => $token)));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        curl_close($ch);
        $arrResponse = json_decode($response, true);
        
        // verify the response
        if($arrResponse["success"] == '1' && $arrResponse["action"] == $action && $arrResponse["score"] >= 0.5) {
            // reCAPTCHA succeeded
            shorten();
        } else {
            // reCAPTCHA failed
            $message = "reCAPTCHA failed";
        }
    } else {
        // Don't use reCAPTCHA
        shorten();
    }
}

@mrlufus
Copy link
Author

mrlufus commented Mar 13, 2024

This also didn't work (plugin.php - line 46)

function shorten() {
    // Get parameters -- they will all be sanitized in yourls_add_new_link()
    $url     = $_REQUEST['url'];
    $keyword = isset( $_REQUEST['keyword'] ) ? $_REQUEST['keyword'] : '' ;
    $title   = isset( $_REQUEST['title'] ) ?  $_REQUEST['title'] : '' ;
    $text    = isset( $_REQUEST['text'] ) ?  $_REQUEST['text'] : '' ;

    // Prepend "https://" if not already provided in the URL
    if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
        $url = "https://" . $url;
    }

    // Create short URL, receive array $return with various information
    $return  = yourls_add_new_link( $url, $keyword, $title );
    
    // Make visible to UI
    global $shorturl, $message, $status, $title;

    $shorturl = isset( $return['shorturl'] ) ? $return['shorturl'] : '';
    $message  = isset( $return['message'] ) ? $return['message'] : '';
    $title    = isset( $return['title'] ) ? $return['title'] : '';
    $status   = isset( $return['status'] ) ? $return['status'] : '';
    
    // Stop here if bookmarklet with a JSON callback function ("instant" bookmarklets)
    if( isset( $_GET['jsonp'] ) && $_GET['jsonp'] == 'yourls' ) {
        $short = $return['shorturl'] ? $return['shorturl'] : '';
        $message = "Short URL (Ctrl+C to copy)";
        header('Content-type: application/json');
        echo yourls_apply_filter( 'bookmarklet_jsonp', "yourls_callback({'short_url':'$short','message':'$message'});" );
        die();
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant