nadz Posted May 26, 2007 Share Posted May 26, 2007 Id like my invite script to check if a user is registered by cross referencing the email addresses before inviting that person. Any help would be appreciated. Import.php: <?php $db_host = "mysql.******.co.uk"; $db_user = "nextman"; $db_pwd = "*****"; $db_name = "users"; mysql_connect($db_host, $db_user, $db_pwd); mysql_select_db($db_name); include_once("settings.php"); if (!$_POST) { include("form.php"); } else if(!$_POST['formname'] || $_POST['formname'] != "invite") { include_once($scripts[$iscript]['filename']); $login = $_POST['username']; $password = $_POST['password']; $name = $_POST['name']; $resultarray = get_contacts($login, $password); #if contacts were retreived successfully: if(is_array($resultarray)) { #the first array_shift of the result will give you the names in an array $names = array_shift($resultarray); #the second array_shift of the result will give you the emails $emails = array_shift($resultarray); if (!eregi("@", $login)) { $login = $login . "@" . strtolower($iscript) . ".com"; } echo '<div align="center" style="padding:5; width:350;">'; echo '<form method="POST" action="'.$formaction .'" name="inviteform" id="inviteform"><table style="background-color:white; border:black solid thin;">'; echo '<SCRIPT LANGUAGE="JavaScript">' ."\n" .' function togglechecked(){ ' . "\n" .' for (var i = 0; i < document.inviteform.elements.length; i++) {' . "\n" .' var e = document.inviteform.elements[i];' . "\n" ." if ((e.disabled == false) && (e.name != 'allbox') && (e.type == 'checkbox')) {" ."\n" .' e.checked = document.inviteform.allbox.checked;' . "\n" .' }' . "\n" .' }' . "\n" .' }' . "\n" .' function toggleselect(){ ' . "\n" .' document.inviteform.allbox.checked = !document.inviteform.allbox.checked;' . "\n" .' togglechecked();}' . "\n" .' </SCRIPT>' . "\n"; echo "<tr bgcolor=\"#FFFFFF\"><td colspan=\"3\" align=\"center\"><h1 align=\"center\">Invite Contacts</h1>$logo</td></tr>"; echo "<tr bgcolor=\"#CCCCCC\"><td>" . "<input type=\"checkbox\" name=\"allbox\" id=\"allbox\" value=\"nothing\" onClick=\"togglechecked()\" checked>" . '</td><td><b>Name</b></td><td><b>Email</b></td></tr>'; echo '<input type="hidden" name="formname" value="invite">'; echo "<input type=\"hidden\" name=\"sender\" value=\"$login\">"; echo "<input type=\"hidden\" name=\"name\" value=\"$name\">"; $maxin = count($names); for ($i=0; $i<$maxin; ++$i) { $emails[$i] = trim($emails[$i]); if ($emails[$i]!="" && eregi("@", $emails[$i])) { $emails[$i] = strtolower($emails[$i]); echo "<tr><td>" . "<input type=\"checkbox\" name=\"addresses[]\" value=\"$emails[$i]\" checked>" . "</td><td>$names[$i]</td><td>$emails[$i]</td></tr>"; } } echo <<< _end_this <tr> <tr><td><input type="checkbox" name="allbox2" value="nothing" onClick="toggleselect()" checked></td><td><a href="javascript:toggleselect()">Select/Deselect All</a></td><td></td></tr> <td colspan="3" style="padding:4"><input name="submit" type="submit" value="Invite Selected" style="width:100%"></td> </tr> </table></form> </div> _end_this; } else #else print out the form with the error message { switch ($resultarray) { case 1: #invalid login $formdisclaimer = "<br><b style=\"color:red\">Invalid Login</b><br>"; break; case 2: #empty username or password $formdisclaimer = "<br><b style=\"color:red\">Enter Your Username and Password</b><br>"; break; } include("form.php"); } } else if ($_POST['formname'] == "invite") { $message = file_get_contents($basedir . $slash . "email.html"); $subject = file_get_contents($basedir . $slash . "emailsubject.txt"); $addressesStr = implode(",", $_POST['addresses']); $headers = ""; if ($fromfield && $fromfield!="") { $from = $fromfield; } else { $from = trim($_POST['name']) . " <" . trim($_POST['sender']) . ">"; $headers .= "From: $from\r\n"; } $headers .= "Bcc: $addressesStr" . "\r\n"; $message = str_replace("[[[sender]]]", $_POST['name'], $message); $subject = str_replace("[[[sender]]]", $_POST['name'], $subject); $headers .= "MIME-Version: 1.0\r\n" . "Content-Type: text/html;\r\n"; if(mail ($tofield, $subject, "\r\n". $message, $headers)) $msg = "Done!"; else $msg = "Error occured"; echo <<< _end_sent <style type="text/css"> <!-- .formheading { color:black; font-size:24px; font-family:Arial, sans-serif; font-weight:bolder; } .scriptlinks a { color:blue; text-decoration:none; } --> </style> <div style="padding:5; background-color: #EEEEEE; width:350;"> <div style="width:340; border: black thin solid; background-color:white;" align="center"><h1>$msg</h1> <p>Your friends have been invited. <a href="/">Click here</a> to login </p><br><br><br></div> </div> _end_sent; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/53099-check-if-user-is-registered-before-inviting/ Share on other sites More sharing options...
bubblegum.anarchy Posted May 27, 2007 Share Posted May 27, 2007 <?php $result = mysql_query($query = "SELECT id FROM email WHERE address = '{$address}'") or trigger_error(mysql_error()."<PRE>".$query."</PRE>", E_USER_ERROR); if (mysql_num_rows($result)) { ; // email address registered } else { ; // email address IS NOT registered } ?> Quote Link to comment https://forums.phpfreaks.com/topic/53099-check-if-user-is-registered-before-inviting/#findComment-262348 Share on other sites More sharing options...
nadz Posted May 27, 2007 Author Share Posted May 27, 2007 thanks for your help bubblegum Now ive added the code, but when i test the script it just imports the contacts as usual and includes the registered email addresses in the list it outputs. The email addresses are in: db: "users" table: "members" field: "email" there is a second field in the table called "username" this is what my code looks like now: <?php $db_host = "mysql.******.co.uk"; $db_user = "nextman"; $db_pwd = "******"; $db_name = "users"; mysql_connect($db_host, $db_user, $db_pwd); mysql_select_db($db_name); include_once("settings.php"); if (!$_POST) { include("form.php"); } else if(!$_POST['formname'] || $_POST['formname'] != "invite") { include_once($scripts[$iscript]['filename']); $login = $_POST['username']; $password = $_POST['password']; $name = $_POST['name']; $resultarray = get_contacts($login, $password); #if contacts were retreived successfully: if(is_array($resultarray)) { #the first array_shift of the result will give you the names in an array $names = array_shift($resultarray); #the second array_shift of the result will give you the emails $emails = array_shift($resultarray); $result = mysql_query($query = "SELECT email FROM members WHERE email = '{$emails}'") or trigger_error(mysql_error()."<PRE>".$query."</PRE>", E_USER_ERROR); if (mysql_num_rows($result)) { echo 'User already registered'; // email address registered } else { if (!eregi("@", $login)) { $login = $login . "@" . strtolower($iscript) . ".com"; } echo '<div align="center" style="padding:5; width:350;">'; echo '<form method="POST" action="'.$formaction .'" name="inviteform" id="inviteform"><table style="background-color:white; border:black solid thin;">'; echo '<SCRIPT LANGUAGE="JavaScript">' ."\n" .' function togglechecked(){ ' . "\n" .' for (var i = 0; i < document.inviteform.elements.length; i++) {' . "\n" .' var e = document.inviteform.elements[i];' . "\n" ." if ((e.disabled == false) && (e.name != 'allbox') && (e.type == 'checkbox')) {" ."\n" .' e.checked = document.inviteform.allbox.checked;' . "\n" .' }' . "\n" .' }' . "\n" .' }' . "\n" .' function toggleselect(){ ' . "\n" .' document.inviteform.allbox.checked = !document.inviteform.allbox.checked;' . "\n" .' togglechecked();}' . "\n" .' </SCRIPT>' . "\n"; echo "<tr bgcolor=\"#FFFFFF\"><td colspan=\"3\" align=\"center\"><h1 align=\"center\">Invite Contacts</h1>$logo</td></tr>"; echo "<tr bgcolor=\"#CCCCCC\"><td>" . "<input type=\"checkbox\" name=\"allbox\" id=\"allbox\" value=\"nothing\" onClick=\"togglechecked()\" checked>" . '</td><td><b>Name</b></td><td><b>Email</b></td></tr>'; echo '<input type="hidden" name="formname" value="invite">'; echo "<input type=\"hidden\" name=\"sender\" value=\"$login\">"; echo "<input type=\"hidden\" name=\"name\" value=\"$name\">"; $maxin = count($names); for ($i=0; $i<$maxin; ++$i) { $emails[$i] = trim($emails[$i]); if ($emails[$i]!="" && eregi("@", $emails[$i])) { $emails[$i] = strtolower($emails[$i]); echo "<tr><td>" . "<input type=\"checkbox\" name=\"addresses[]\" value=\"$emails[$i]\" checked>" . "</td><td>$names[$i]</td><td>$emails[$i]</td></tr>"; } } echo <<< _end_this <tr> <tr><td><input type="checkbox" name="allbox2" value="nothing" onClick="toggleselect()" checked></td><td><a href="javascript:toggleselect()">Select/Deselect All</a></td><td></td></tr> <td colspan="3" style="padding:4"><input name="submit" type="submit" value="Invite Selected" style="width:100%"></td> </tr> </table></form> </div> _end_this; } } else #else print out the form with the error message { switch ($resultarray) { case 1: #invalid login $formdisclaimer = "<br><b style=\"color:red\">Invalid Login</b><br>"; break; case 2: #empty username or password $formdisclaimer = "<br><b style=\"color:red\">Enter Your Username and Password</b><br>"; break; } include("form.php"); } } else if ($_POST['formname'] == "invite") { $message = file_get_contents($basedir . $slash . "email.html"); $subject = file_get_contents($basedir . $slash . "emailsubject.txt"); $addressesStr = implode(",", $_POST['addresses']); $headers = ""; if ($fromfield && $fromfield!="") { $from = $fromfield; } else { $from = trim($_POST['name']) . " <" . trim($_POST['sender']) . ">"; $headers .= "From: $from\r\n"; } $headers .= "Bcc: $addressesStr" . "\r\n"; $message = str_replace("[[[sender]]]", $_POST['name'], $message); $subject = str_replace("[[[sender]]]", $_POST['name'], $subject); $headers .= "MIME-Version: 1.0\r\n" . "Content-Type: text/html;\r\n"; if(mail ($tofield, $subject, "\r\n". $message, $headers)) $msg = "Done!"; else $msg = "Error occured"; echo <<< _end_sent <style type="text/css"> <!-- .formheading { color:black; font-size:24px; font-family:Arial, sans-serif; font-weight:bolder; } .scriptlinks a { color:blue; text-decoration:none; } --> </style> <div style="padding:5; background-color: #EEEEEE; width:350;"> <div style="width:340; border: black thin solid; background-color:white;" align="center"><h1>$msg</h1> <p>Your friends have been invited. <a href="/">Click here</a> to login </p><br><br><br></div> </div> _end_sent; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/53099-check-if-user-is-registered-before-inviting/#findComment-262909 Share on other sites More sharing options...
bubblegum.anarchy Posted May 28, 2007 Share Posted May 28, 2007 Where is the value for $emails coming from? Quote Link to comment https://forums.phpfreaks.com/topic/53099-check-if-user-is-registered-before-inviting/#findComment-262985 Share on other sites More sharing options...
nadz Posted May 28, 2007 Author Share Posted May 28, 2007 the script grabs contacts from the users address book so it comes from one of 5 files in the /scripts directory: gmail.php hotmail.php aol.php msn.php yahoo.php if you look on line 17: include_once($scripts[$iscript]['filename']); is including the appropriate file. thanks again for your help. Quote Link to comment https://forums.phpfreaks.com/topic/53099-check-if-user-is-registered-before-inviting/#findComment-263165 Share on other sites More sharing options...
bubblegum.anarchy Posted May 28, 2007 Share Posted May 28, 2007 Place: print $query just after the call to mysql_query() and post the results - this is not a mysql issue if there is nothing unusual about the results. Quote Link to comment https://forums.phpfreaks.com/topic/53099-check-if-user-is-registered-before-inviting/#findComment-263214 Share on other sites More sharing options...
nadz Posted May 31, 2007 Author Share Posted May 31, 2007 hmm, i tried that it prints the query fine, maybe i have to delete the regged emails from the array? Quote Link to comment https://forums.phpfreaks.com/topic/53099-check-if-user-is-registered-before-inviting/#findComment-265293 Share on other sites More sharing options...
bubblegum.anarchy Posted May 31, 2007 Share Posted May 31, 2007 What is a regged email and what does the array have to do with anything if the query output is fine? Quote Link to comment https://forums.phpfreaks.com/topic/53099-check-if-user-is-registered-before-inviting/#findComment-265389 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.