 |
Smarty
The discussions here are for Smarty, a template engine for the PHP programming language. Dedicated server web hosting provided by Guru-host.eu. |
| View previous topic :: View next topic |
| Author |
Message |
winracer Smarty Rookie

Joined: 15 Dec 2009 Posts: 12
|
Posted: Fri Mar 23, 2012 4:51 pm Post subject: help with user.php and user.tpl array |
|
|
can I ask a question about smarty ..... I am adding spam checker from http://www.stopforumspam.com
in admin user.php and user.tpl I am trying to look at the IP address of the user and if in stopforumspam database user is a spammer and if not user is not a spammer. but I am getting same IP for every user in my code..
user.php around line 30 is what I am adding // Start spam checker http://www.stopforumspam.com
| Code: |
<?php
/*
********************
- Admin Users
********************
*/
/* List Users */
/* Grab Results from DB */
$userquery = sprintf("SELECT SQL_CALC_FOUND_ROWS * FROM phpdir_users ORDER BY id DESC LIMIT %d,%d", SmartyPaginate::getCurrentIndex(), SmartyPaginate::getLimit());
$userresult = mysql_query($userquery) or die("MySql Error: ".mysql_error());
/* Display via Array */
$userdata = array();
$data = array($userrow['ip']);
$i=0;
/* Create While to make array */
while ($userrow = mysql_fetch_array($userresult)) {
$usertmp = array(
"id" => $userrow['id'],
"username" => $userrow['username'],
"email" => $userrow['email'],
"ip" => $userrow['ip'],
"registerdate" => $userrow['registerdate'],
"website" => $userrow['website'],
"admin" => $userrow['admin'],
"isbanned" => $userrow['isbanned'],
);
// Start spam checker http://www.stopforumspam.com
$addr = $userrow['ip'];
$response = file_get_contents('http://www.stopforumspam.com/api?ip='.$addr);
$pattern = '/<appears>yes<\/appears>/';
$pattern1 = '/<appears>no<\/appears>/';
if (preg_match($pattern, $response)) {
//require_once( './stopspammer.html' );
//exit();
$spam = "$addr<br> Spammer";
$smarty->assign('spam', $spam);
}
if (preg_match($pattern1, $response)) {
//require_once( './stopspammer.html' );
//exit();
$spam = "$addr<br> NO-Spammer";
$smarty->assign('spam', $spam);
}
// end spam checker http://www.stopforumspam.com
/* Tell Data is equal to Temp */
$userdata[$i++] = $usertmp;
}
/* Set Smarty URL */
SmartyPaginate::setURL('index.php?id=users');
/* Calculate Total Rows */
$usertotalquery = mysql_query("SELECT COUNT(*) FROM phpdir_users");
$usertotal = mysql_fetch_array($usertotalquery);
SmartyPaginate::setTotal($usertotal[0]);
/* Assign Var */
$smarty->assign('userdata', $userdata);
/* Delete User */
if(isset($_GET['userdelete'])){
$query = "DELETE FROM phpdir_users WHERE id='".$_GET['userdelete']."'";
if(!mysql_query($query)){
echo mysql_error();
}
echo '<meta http-equiv="Refresh" content="0; url=index.php?id=users" />';
}
/* User Update */
if(isset($_GET['userupdate'])) {
/* Find URL Value */
$id = $_GET['userupdate'];
/* Grab Results from DB */
$query = "Select * FROM phpdir_users WHERE ID = $id";
$result = mysql_query($query);
/* Display Results */
$user = mysql_fetch_array($result);
/* Assign Values to Smarty */
$smarty->assign('user_id', $user['id']);
$smarty->assign('user_username', $user['username']);
$smarty->assign('user_email', $user['email']);
$smarty->assign('user_ip', $user['ip']);
$smarty->assign('user_website', $user['website']);
$smarty->assign('user_admin', $user['admin']);
if(isset($_POST['done'])) {
$userid = $_GET['userupdate'];
$username1 = $_POST['username'];
$email = $_POST['email'];
$ip = $_POST['ip'];
$website = $_POST['website'];
$admin = $_POST['admin'];
// update data in mysql database
$sql = "UPDATE phpdir_users SET username='$username1', email='$email', admin='$admin' , ip='$ip', website='$website' WHERE id='$userid'";
$result = mysql_query($sql);
if(isset($result)){
/* Find URL Value */
$id = $_GET['userupdate'];
/* Grab Results from DB */
$query = "Select * FROM phpdir_users WHERE ID = $id";
$result = mysql_query($query);
/* Display Results */
$user = mysql_fetch_array($result);
/* Assign Values to Smarty */
$smarty->assign('user_id', $user['id']);
$smarty->assign('user_username', $user['username']);
$smarty->assign('user_email', $user['email']);
$smarty->assign('user_ip', $user['ip']);
$smarty->assign('user_website', $user['website']);
$smarty->assign('user_admin', $user['admin']);
$smarty->assign('notice', '<div class="notice good">User Updated!<br /><a href="index.php?id=users">Go back</a></div>');
} else {
//Error
$smarty->assign('notice', '<div class="notice bad">Error! Please try again.</div>');
}
} else {
$smarty->assign('notice', '<div class="notice info">Please Fill in the above to update the user\'s info.</div>');
}
}
/* Ban or Unban User */
if(isset($_GET['ban'])){
$userid = $_GET['ban'];
$stat = $_GET['status'];
if($_GET['status'] == "banned"){
$query="UPDATE phpdir_users SET isbanned='No' WHERE id='".$_GET['ban']."'";
if(!mysql_query($query)){
echo mysql_error();
}
}
if($_GET['status'] == "notbanned"){
$query="UPDATE phpdir_users SET isbanned='Yes' WHERE id='".$_GET['ban']."'";
if(!mysql_query($query)){
echo mysql_error();
}
}
echo '<meta http-equiv="Refresh" content="0; url=index.php?id=users" />';
}
/* Create User */
if(isset($_GET['create'])) {
if(isset($_GET['action'])) {
$status = $_GET['action'];
} else {
$status = null;
}
if(isset($_POST['submituser'])) {
if(!empty($_POST["register_user_username"])) {
/* Safe MySql Insert */
$register_user_username = mysql_real_escape_string($_POST["register_user_username"]);
/* Check for same username */
$usernamecheckquery = mysql_query("SELECT * FROM phpdir_users WHERE username='$register_user_username'");
$usernamecheckcount = mysql_num_rows($usernamecheckquery);
/* Finish Check */
if($usernamecheckcount != 0) {
$error['1'] = "Username already exist";
} else {
$register_user_username = $_POST["register_user_username"];
}
} else {
$error['1'] = "Username";
}
if(!empty($_POST["register_user_email"])) {
$register_user_email = $_POST["register_user_email"];
} else {
$error['2'] = "E-Mail";
}
if(!empty($_POST["register_user_password1"]) && !empty($_POST["register_user_password2"])) {
if($_POST["register_user_password1"] == $_POST["register_user_password2"]) {
$register_user_password = $_POST["register_user_password1"];
} else {
$error['4'] = "Passwords do not match.";
}
} else {
$error['3'] = "Password can not be empty.";
}
if(isset($_POST["register_user_admin"])) {
$register_user_admin = $_POST["register_user_admin"];
} else {
$register_user_admin = '0';
}
if(empty($error)) {
$register_user_username = mysql_real_escape_string($register_user_username);
$register_user_password = mysql_real_escape_string($register_user_password);
$register_user_email = mysql_real_escape_string($register_user_email);
$register_user_admin = mysql_real_escape_string($register_user_admin);
mysql_query("INSERT INTO phpdir_users(username, password, email, registerdate, admin, active) VALUES ('$register_user_username', '".md5($register_user_password)."', '$register_user_email', CURDATE(), '$register_user_admin', '1')") or die(mysql_error());
$smarty->assign('notice', '<div class="notice good">User was create!<br /><a href="index.php?id=users">Go back</a></div>');
} else {
if(isset($error['1'])) { $smarty->assign('notice_username', '<div class="notice bad">' . $error['1'] . '</div>'); }
if(isset($error['2'])) { $smarty->assign('notice_email', '<div class="notice bad">' . $error['2'] . '</div>'); }
if(isset($error['3'])) { $smarty->assign('notice_passempty', '<div class="notice bad">' . $error['3'] . '</div>'); }
if(isset($error['4'])) { $smarty->assign('notice_passmatch', '<div class="notice bad">' . $error['4'] . '</div>'); }
}
/* Field After Submit */
} else {
/* Standered Field */
$smarty->assign('notice', '<div class="notice info">Please fill in the above info.</div>');
}
}
/* Display Template */
$smarty->display('users.tpl');
?>
|
user.tpl line 118 {{$spam}}
| Code: |
{{include file="header.tpl" title=Users}}
<h1>Users</h1>
<ul class="user-manage">
<li><a href="index.php?id=users" class="button">User List</a></li>
<li><a href="index.php?id=users&create" class="button">Create User</a></li>
</ul>
<div class="clearer"> </div>
{{if isset($smarty.get.userupdate)}}
<form name="form1" method="post" action="index.php?id=users&userupdate={{$user_id}}&status=done">
<table>
<tr>
<td>Userame: </td>
<td><input name="username" type="text" id="username" size="50" value="{{$user_username}}" /></td>
</tr>
<tr>
<td>E-Mail: </td>
<td><input name="email" type="text" id="email" size="50" value="{{$user_email}}" /></td>
</tr>
<tr>
<td>IP: </td>
<td><input name="ip" type="text" id="ip" size="50" value="{{$user_ip}}" /></td>
</tr>
<tr>
<td>Website: </td>
<td><input name="website" type="text" id="website" size="50" value="{{$user_website}}" /></td>
</tr>
<tr>
<td>Member Status: </td>
<td>
<select name="admin">
<option value="0"{{if $user_admin == "0"}} selected="selected"{{else}}{{/if}}>Member</option>
<option value="1"{{if $user_admin == "1"}} selected="selected"{{else}}{{/if}}>Admin</option>
</select>
</td>
</tr>
</table>
<!--input name="id" type="hidden" id="id" value="{{$user_id}}" /-->
<input name="done" type="hidden" id="done" value="done" />
<input type="submit" name="Submit" value="Submit" />
</form>
{{$notice}}
{{elseif isset($smarty.get.create)}}
<form name="submituser" action="index.php?id=users&create" method="post" >
<table>
<tr>
<td><label>Username</label></td>
<td>{{if isset($smarty.post.register_user_username)}}
<input name="register_user_username" type="text" id="register_user_username" value="{{$smarty.post.register_user_username}}" />
{{else}}
<input name="register_user_username" type="text" id="register_user_username" />
{{/if}}</td>
</tr>
<tr>
<td><label>E-Mail</label></td>
<td>{{if isset($smarty.post.register_user_email)}}
<input name="register_user_email" type="text" id="register_user_email" value="{{$smarty.post.register_user_email}}" />
{{else}}
<input name="register_user_email" type="text" id="register_user_email" />
{{/if}}</td>
</tr>
<tr>
<td><label>Password</label></td>
<td><input name="register_user_password1" type="password" /></td>
</tr>
<tr>
<td><label>Password Again</label></td>
<td><input name="register_user_password2" type="password" /></td>
</tr>
<tr>
<td><label>Admin Access</label></td>
<td>{{if isset($smarty.post.register_user_admin)}}
<input type="checkbox" name="register_user_admin" value="1" checked="checked" />
{{else}}
<input type="checkbox" name="register_user_admin" value="1" />
{{/if}}</td>
</tr>
</table>
<input name="submituser" type="hidden" />
<input name="submit" type="submit" value="Register" />
</form>
<div class="clearer"> </div>
{{$notice}}
{{$notice_username}}
{{$notice_email}}
{{$notice_passempty}}
{{$notice_passmatch}}
{{else}}
<div class="media_paginate_prev">{{paginate_prev}}</div> <div class="media_paginate_middle">{{paginate_middle}}</div> <div class="media_paginate_next">{{paginate_next}}</div>
<div class="clearer"> </div>
<table class="userdata">
<tr>
<th>ID</th>
<th>Report Spammer</th>
<th>Username</th>
<th>E-Mail</th>
<th>IP</th>
<th>Register Date</th>
<th>Website</th>
<th>Status</th>
<th>Update</th>
<th>Delete</th>
<th>Ban Status</th>
</tr>
{{section name=userdata loop=$userdata}}
<tr>
<td>{{$userdata[userdata].id}}</td>
<td><A HREF="http://www.stopforumspam.com/add.php?username={{$userdata[userdata].username}}&ip_addr={{$userdata[userdata].ip}}&email={{$userdata[userdata].email}}&api_key=&apikey">
<img src="{{$url}}/assets/templates/default/admin/images/sfs.png"><b><font color=red> Report to StopForumSpam </font></b> </A>
{{$spam}}
</td>
<td>{{$userdata[userdata].username}}</td>
<td><pre style='width: 180px;'>{{$userdata[userdata].email}}</pre></td>
<td>{{$userdata[userdata].ip}}</td>
<td>{{$userdata[userdata].registerdate}}</td>
<td><pre style='width: 180px;'>{{$userdata[userdata].website}}</pre></td>
<td>{{if $userdata[userdata].admin == "0"}}Member{{elseif $userdata[userdata].admin == "1"}}Admin{{else}}Undefined{{/if}}</td>
<td><a href="index.php?id=users&userupdate={{$userdata[userdata].id}}">Update</a></td>
<td><a href="index.php?id=users&userdelete={{$userdata[userdata].id}}" onclick="return confirm('Are you sure you want to delete delete the user {{$userdata[userdata].username}}?')">Delete</a></td>
<td>
{{if $userdata[userdata].isbanned == "Yes"}}
Banned <a href="index.php?id=users&ban={{$userdata[userdata].id}}&status=banned">[Unban user]</a>
{{elseif $userdata[userdata].isbanned == "No"}}
Not Banned <a href="index.php?id=users&ban={{$userdata[userdata].id}}&status=notbanned">[Ban user]</a>
{{else}}
Undefined
{{/if}}
</td>
</tr>
{{sectionelse}}
<tr>
<td colspan="7">No Media Results</td>
</tr>
{{/section}}
</table>
<div class="clearer"> </div>
<div class="media_paginate_prev">{{paginate_prev}}</div> <div class="media_paginate_middle">{{paginate_middle}}</div> <div class="media_paginate_next">{{paginate_next}}</div>
{{/if}}
{{include file="footer.tpl"}}
|
thanks for any help _________________ winracer
http://helpmewithperl.com
http://myfunnypets.com |
|
| Back to top |
|
mohrt Administrator
Joined: 16 Apr 2003 Posts: 7036 Location: Lincoln Nebraska, USA
|
Posted: Sat Mar 24, 2012 5:27 pm Post subject: |
|
|
You can get the remote address with $_SERVER['REMOTE_ADDR'] so instead of:
$addr = $userrow['ip'];
use:
$addr = $_SERVER['REMOTE_ADDR']; |
|
| Back to top |
|
winracer Smarty Rookie

Joined: 15 Dec 2009 Posts: 12
|
Posted: Sun Mar 25, 2012 1:10 am Post subject: |
|
|
| mohrt wrote: | You can get the remote address with $_SERVER['REMOTE_ADDR'] so instead of:
$addr = $userrow['ip'];
use:
$addr = $_SERVER['REMOTE_ADDR']; |
thanks but I need the $addr = $userrow['ip'];
because I want to pull address from the sql database.
this will be used if a user gets past the register part and I do use the $addr = $_SERVER['REMOTE_ADDR']; in that part.
if a use does get past the regiater then I can find out if they are a spammer if so I can submit them to the database. also I can view they has been tag as a spammer.
do you know how I can fix my code to make this work, I need the $addr = $userrow['ip']; to be in the array or the $spam part to be in the array after the php check for spammer or not? I hope this makes sense. please let me know if you need more detail.
again thanks for your help _________________ winracer
http://helpmewithperl.com
http://myfunnypets.com |
|
| Back to top |
|
mohrt Administrator
Joined: 16 Apr 2003 Posts: 7036 Location: Lincoln Nebraska, USA
|
Posted: Mon Mar 26, 2012 2:18 pm Post subject: |
|
|
| If you are getting the same IP address for every user, then there is something wrong with $userrow['ip'], or how you query for it. I'd start there. That is why I suggested $_SERVER['REMOTE_ADDR'], that will always be the current client ip address. |
|
| Back to top |
|
winracer Smarty Rookie

Joined: 15 Dec 2009 Posts: 12
|
Posted: Mon Mar 26, 2012 4:35 pm Post subject: |
|
|
| mohrt wrote: | | If you are getting the same IP address for every user, then there is something wrong with $userrow['ip'], or how you query for it. I'd start there. That is why I suggested $_SERVER['REMOTE_ADDR'], that will always be the current client ip address. |
I am getting the same IP address for {{SPAM}}
{{$userdata[userdata].ip}} it is right, it show the IP address right.
can you use {{$userdata[userdata].ip}} inside the tpl using {{php}} {{/php}}
I tried but can't get it to work.
the problem is here some where
| Code: |
/* List Users */
/* Grab Results from DB */
$userquery = sprintf("SELECT SQL_CALC_FOUND_ROWS * FROM phpdir_users ORDER BY id DESC LIMIT %d,%d", SmartyPaginate::getCurrentIndex(), SmartyPaginate::getLimit());
$userresult = mysql_query($userquery) or die("MySql Error: ".mysql_error());
/* Display via Array */
$userdata = array();
$data = array($userrow['ip']);
$i=0;
/* Create While to make array */
while ($userrow = mysql_fetch_array($userresult)) {
$usertmp = array(
"id" => $userrow['id'],
"username" => $userrow['username'],
"email" => $userrow['email'],
"ip" => $userrow['ip'],
"registerdate" => $userrow['registerdate'],
"website" => $userrow['website'],
"admin" => $userrow['admin'],
"isbanned" => $userrow['isbanned'],
);
// Start spam checker http://www.stopforumspam.com
$addr = $userrow['ip'];
$response = file_get_contents('http://www.stopforumspam.com/api?ip='.$addr);
$pattern = '/<appears>yes<\/appears>/';
$pattern1 = '/<appears>no<\/appears>/';
if (preg_match($pattern, $response)) {
//require_once( './stopspammer.html' );
//exit();
$spam = "$addr<br> Spammer";
$smarty->assign('spam', $spam);
}
if (preg_match($pattern1, $response)) {
//require_once( './stopspammer.html' );
//exit();
$spam = "$addr<br> NO-Spammer";
$smarty->assign('spam', $spam);
}
// end spam checker http://www.stopforumspam.com
/* Tell Data is equal to Temp */
$userdata[$i++] = $usertmp;
}
/* Set Smarty URL */
SmartyPaginate::setURL('index.php?id=users');
/* Calculate Total Rows */
$usertotalquery = mysql_query("SELECT COUNT(*) FROM phpdir_users");
$usertotal = mysql_fetch_array($usertotalquery);
SmartyPaginate::setTotal($usertotal[0]);
/* Assign Var */
$smarty->assign('userdata', $userdata);
|
some how I need to make $spam part of the array like {{$userdata[userdata].spam}}
but can't find out how to do it.
again thanks for your help. _________________ winracer
http://helpmewithperl.com
http://myfunnypets.com |
|
| Back to top |
|
winracer Smarty Rookie

Joined: 15 Dec 2009 Posts: 12
|
Posted: Wed Mar 28, 2012 5:40 pm Post subject: |
|
|
Thanks mohrt for your help
working great!
I used below in php
| Code: |
// Start spam checker http://www.stopforumspam.com
$addr = $userrow['ip'];
$response = file_get_contents('http://www.stopforumspam.com/api?ip='.$addr);
$pattern = '/<appears>yes<\/appears>/';
$pattern1 = '/<appears>no<\/appears>/';
if (preg_match($pattern, $response)) {
$spam = "$addr<br> Spammer";
$usertmp['spam'] = $spam;
}
if (preg_match($pattern1, $response)) {
$spam = "$addr<br> NO-Spammer";
$usertmp['spam'] = $spam;
}
|
and below in tpl
{{$userdata[userdata].spam}} _________________ winracer
http://helpmewithperl.com
http://myfunnypets.com |
|
| Back to top |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|