isset werkt niet zoals bedoeld
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
if(isset($_POST['url'])){
$url = $_POST['url'];
$link = '<a href=\"".$_POST['url']."\" unfocus=\"this.blur()\"><i class=\"fab fa-globe\"></i></a>';
}
else{
$url = '';
$link = '';
}
Het probleem is dat als 'url' niet is ingevuld toch de link wordt doorgegeven die onder de 'if' voorwaarde staat.
$url = $_POST['url'];
$link = '<a href=\"".$_POST['url']."\" unfocus=\"this.blur()\"><i class=\"fab fa-globe\"></i></a>';
}
else{
$url = '';
$link = '';
}
Het probleem is dat als 'url' niet is ingevuld toch de link wordt doorgegeven die onder de 'if' voorwaarde staat.
Anders kun je ook:
Dan geldt de if alleen als de "url" er in zit *en* niet leeg is.
Gewijzigd op 11/07/2020 11:35:04 door Rob Doemaarwat
Mogelijk kun je dit dus ook anders ontwerpen.
Ik weet niet precies hoe je $url en $link verder gebruikt? Wat probeer je precies te bereiken met het bovenstaande stuk code?
En ja, wat @Rob zegt dus. Als in je if-statement de verkeerde afslag wordt genomen dan is je POST data mogelijk (niet) leeg wanneer je dit wel zou verwachten of andersom.
Gewijzigd op 12/07/2020 00:25:19 door Thomas van den Heuvel
Met var_dump krijg ik: 'string(0)'
Ik heb het nu zo opgelost: if($_POST['url'] || isset($_POST['url']))
en dat werkt.
@Thomas van den Heuvel
Het formulier wordt verzonden naar een email en wordt dus niet direct weergegeven op een webpagina.
Gebruik anders empty()? Die voert beide controles in één keer uit. En als je dan de delen in het if- en else-blok omdraait heb je niet eens een negatie (!) nodig. Of gebruik de aanpak van @Rob.
Idealiter produceert de verwerking van het formulier verder geen enkele (zichtbare) output (op het scherm) en verwijs je de gebruiker na afloop direct door met een Location-header zodat je het POST/redirect/GET-patroon volgt.
Code (php)
zo valideer je ook nog eens dat het echt om een url gaat.
Er klopt trouwens niets van de quotes en backslashes...
Toevoeging op 13/07/2020 10:28:24:
wat is unfocus trouwens?
Gewijzigd op 13/07/2020 10:27:04 door Ivo P
'onfocus' bedoelt de topicstarter blijkbaar?