Έλεγχος ψηφίων σε integer

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Έλεγχος ψηφίων σε integer

Δημοσίευση από oikonomou » 01 Ιούλ 2006 14:18

Εχω ενα πεδιο με ονομα tel που παιρνει την τιμη ενος τηλεφωνου. Θελω να ελεγχω εαν ειναι 10ψηφιος αυτος ο αριθμος.
Αρχικα τον ελεγχο τον κανω με την if (is_int($tel)) {do.....}.

Μετα για τα 10 ψηφια σκεφτηκα να το κανω με την explode σε 10 κομματια και να ελεγχω εαν αυτα υπαρχουν η αν ειναι κενα. Ειναι λιγο μεγαλος ομως.

Μετα ειπα να το κανω με την ereg
if (ereg("[0-9]",$tel)) { do.....} Αλλα δεν μπορω να βρω πως.

Μηπως υπαρχει καποιος καλυτερος τροπος; Καμια συναρτηση της PHP που να το ελεγχει; Εγω παντως δεν βρηκα καμια.
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

zeppos
Δημοσιεύσεις: 431
Εγγραφή: 26 Μαρ 2006 10:43
Τοποθεσία: Kyklades
Επικοινωνία:

Έλεγχος ψηφίων σε integer

Δημοσίευση από zeppos » 01 Ιούλ 2006 15:28

Νομίζω η strlen..
Αν κατάλαβα δηλαδή ..το παρακάτω μετράει το μήκος του str..

<?php
$num="10";
$str = '1234567890';
if($num==strlen($str)){
echo "OK";
}
else {
echo "NO";
}
?>

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Έλεγχος ψηφίων σε integer

Δημοσίευση από oikonomou » 02 Ιούλ 2006 17:09

Ευχαριστω φιλε μου..θα το δοκιμασω αμεσως.
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Έλεγχος ψηφίων σε integer

Δημοσίευση από oikonomou » 02 Ιούλ 2006 17:42

Τώρα έχω άλλο πρόβλημα με την Is_int

Κώδικας: Επιλογή όλων

if &#40;$tel1&#41; &#123; 
	$tel1=trim&#40;$tel1&#41;;
	if &#40;is_int&#40;$tel1&#41; &#41; 			&#123;
	$num10="10";
	if&#40;$num10==strlen&#40;$tel1&#41;&#41;	&#123; 
	if &#40;$where==ok&#41; &#123;
		$query.=" AND tel='$tel1'"; &#125; else
	&#123; $query.=" WHERE tel='$tel1'"; 
	  $where=ok; &#125;
				&#125; 
					&#125;
	&#125;
ότι και να βάζω -και δεκαψήφιο αριθμό- μου βγάζει ότι δεν έχω εισάγει τίποτα ενώ δεν βρίσκω κάτι λάθος. Γρκρρρρρρρ
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Έλεγχος ψηφίων σε integer

Δημοσίευση από fafos » 02 Ιούλ 2006 19:03

Dokimase to parakato (ypothetoume oti sto pedio tou thlefonou exoume dosei value=your_phone):

Κώδικας: Επιλογή όλων

<?
function check_field1&#40;$field_name_1&#41;&#123;
if&#40;strlen&#40;$field_name_1&#41; == 10&#41; return TRUE;
else return FALSE;
&#125;

function check_field2&#40;$field_name_2&#41;&#123;
if&#40;!preg_match&#40;"/&#91;^0-9\ &#93;+$/",$field_name_2&#41;&#41; return TRUE;
else return FALSE;
&#125;

$error=0; 

if&#40;!check_field1&#40;$your_phone&#41;&#41;&#123;
echo "Ο αριθμός τηλεφώνου πρέπει να είναι 10ψήφιος χωρίς κενά<br>";
$error++;
&#125;

if&#40;!check_field2&#40;$your_phone&#41;&#41;&#123;
echo "Ο αριθμός τηλεφώνου πρέπει να αποτελείται μόνο από ψηφία<br>";
$error++;
&#125;

if&#40;$error == "1"&#41;&#123;
$errorsnum = "λάθος";&#125;
else&#123;
$errorsnum = "λάθη";&#125;
if&#40;$error == "0"&#41;&#123;
echo "
Τα δεδομένα είναι σωστά!<p>
Τηλέφωνο&#58; $your_phone<br>";
&#125;else&#123;
echo "Βρέθηκαν $error $errorsnum!";
&#125;
?>

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Έλεγχος ψηφίων σε integer

Δημοσίευση από oikonomou » 03 Ιούλ 2006 01:49

Αυτό δούλεψε

Κώδικας: Επιλογή όλων

if&#40;!preg_match&#40;"/&#91;^0-9\ &#93;+$/",$field_name_2&#41;&#41; 
ευχαριστώ @fafos
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

Έλεγχος ψηφίων σε integer

Δημοσίευση από cpulse » 04 Ιούλ 2006 19:04

Τα regular expressions είναι τα καλύτερα για τέτοιους ελέγχους. Yπάρχουν όμως και οι εντολές ctype_xxx(). πχ: ctype_digit().

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης