how can i stop a PHP script from auto-populating a form field?

Hi, i have a directory script (active onlne) which is pretty old.
It was created before the world started to shift from mere http:// to https://

So, the submission form auto-populates any submitted url with
http:// - unfortunately it adds that also when someone submits a secure site (hence it turns the url into http://https://somesite.com).
In my admin area i can edit the first http out, but as soon aas i save the changes it will put it back in there.

I have looked through all PHP and JS files and could only find 2 spots in one file that refer to http:// at all, this PHP function looks like this:

" [php] function ParseURL($url) {
$url = trim($url);

  //if (strpos($url, '.')<1) { return false;  }
  
  // check if empty 
  $len = strlen($url);
  if ($len<3) { return false;  }
  
  if (strcmp("http://", substr($url, 0, 7)) !== 0) {
      $url = "http://" . $url;
  }

  $url_stuff = parse_url($url);
  if (!isset($url_stuff["path"])) {  $url = $url . "/";  }

  return $url;
}"

[/php]
Now, i have no PHP skills other than maybe this or that simple thing to edit in an existing file, but this bit of code i do not really understand so i would like to ask in this forum here

  • how can i simply stop this http:// to auto-populate the URL form field??
    (I anyway prefer if people copy and paste their URL’s from the browser bars to ensure there is no typo, so, no need for any auto-populating anything).

The logic is wrong anyway. You need to see if the url starts with http, whether secure or not is immaterial.

You can go a few ways, but the easiest is probably something like stripos().

Example:

$url = [
    'http://www.google.com',
    'https://www.google.com',
    'www.google.com'
];

for ($i = 0; $i < count($url); $i ++) {
    if (stripos($url[$i], 'http') !== 0) {
        $url[$i] = 'http://' . $url[$i];
    }
}

echo '<pre>';
print_r($url);
echo '</pre>';

Correct, wrong way. What i really should try is to STOP the script to populate the URL form field from entering anything automatically! This way people can simply copy and paste their full URL into the text box, no matter if it is http or https.
But what exactly do i change in this segment
" if (strcmp(“http://”, substr($url, 0, 7)) !== 0) {
$url = “http://” . $url;
}"
to make it stop doing the auto populating??
Something like this
" if (strcmp("", substr($url, 0, 7)) !== 0) {
$url = “” . $url;
}"
??
Would probably be to simple and easy, right??

Your given sample is correct, but I would advise you to just remove the whole if statement as the only function is, is to prepend the url with http

Hope this helps you :slight_smile:

Except, you don’t want to prepend the http if it already exists; which is the purpose of the if statement.

You didn’t look at my example, huh?

As I understood the response of @useroo , he simply wants to remove the prepending of http:// to the giv en url. Removing the if statement etc should be enough. My bad if I misunderstood it ^^

Sponsor our Newsletter | Privacy Policy | Terms of Service