Ik ben bezig met een scriptje maar ik kom er niet helemaal uit.
Ik heb een database met een aantal telefoon nummers,
als ik via de url de waarde van de telefoon nummer mee geef, wil ik controleren of dit nummer in de database voor komt, zo ja dan echo 'true' zo nee dan echo 'false'.

de url komt er zo uit te zien http://localhost/caller?callerid?=1234567890

als het nummer voorkomt in de database dan wil ik dus true zien en anders false.

Zo ziet mijn script er nu uit, ik ben geen kenner van php maar een hobbie-ist.
Ik hoop dat iemand mij kan helpen. Ik krijg dus niet constant de waarde true of false.

<?php
// uitlezen van de database

$link = mysql_connect('localhost','root','pasword');
mysql_select_db('asterisk-cdr',$link);



$id=$GET_["callerid"];

$sql = 'SELECT nummer
FROM blokkeer
WHERE nummer = "$id"';
$res = mysql_query($sql,$link);
if ($res && mysql_num_rows($res) == "$id")
{
echo 'true';
} else {
echo 'false';
}

?>
Haal effe je PW uit je post


<?php 

	if($_SERVER['REQUEST_METHOD'] == 'GET') {
	
		$link = mysql_connect('localhost','root','password');
		
		if(!$link) {
		
			exit('Connect error: '.mysql_error());
			
		}
		
		mysql_select_db('asterisk-cdr',$link);



		$id = $GET_["callerid"];  // VALIDATIE!?!?!

		$sql = 'SELECT nummer 
				FROM blokkeer 
				WHERE nummer = "'.$id.'"';
				
        $res = mysql_query($sql);
		if(!$res) {
		
			exit('Query error: '.mysql_error());
			
		}
		
		if (mysql_num_rows($res) == 0)
		{
		
			echo 'False';
			
		} else {
		
			echo 'True';
			
		}

	}

?> 


Niet getest!
Bedankt voor de reactie, ja mijn pw heb ik weggehaald, was ik vergeten.
Heb nu jouw script gebruikt maar dat werkt ook (nog) niet, ik krijg alleen maar false als output.

ik ga er nog eens mee stoeien.

Het lijkt er op dat hij zijn waarde (callerid) niet ophaald van zijn url aangezien ik alleen maar false als resultaat krijg!?
Ik denk dat ik het probleem gevonden heb.
Ik heb
$id = $GET_["callerid"];

veranderd in

$id=$_GET["callerid"];

nu werkt het wel!
oh ja, typ foutje! xD
Dan is het eigenlijk nog niet goed ;)

Het moet met enkele quotes.
Dus: $_GET['callerid'] .

En waarom zou je er onveilige dubbele variabelen van maken?

Beter is:

<?php

$sql = " SELECT
nummer
FROM
blokkeer
WHERE
nummer = '".mysql_real_escape_string($_GET['callerid'])."'
";
?>

EDIT Even een quote goed gezet... Deze is wel goed.
OK bedankt, ik heb het aangepast.
Het werkt naar behoren
-> nummer = '".mysql_real_escape_string($_GET['callerid'])."'

Nummer is een cijfer neem ik aan?

Gebruik dan intval($_GET['callerid'] / (int)$_GET['callerid'] i.p.v mysql_real_escape_string

Reageren