• 0

Dynamic Signatures


Question

How would I make a signature that allows users to put a piece of text into my signature? I know you can use PHP, but I don't have the slightest clue about PHP

(Apart from Cutenews stuff)

Could someone make me a saple signature, very plain, and show me how to allow users to imput text into it thru my website?

Edited by TimRogers
Link to comment
https://www.neowin.net/forum/topic/301987-dynamic-signatures/
Share on other sites

Recommended Posts

  • 0

Hey,

I just went through a whole learning process about this.

The result are my two signature images.

One conjurs up data output by an iTunes plugin, and the other is a random quotes.

I will post the sourece for the latter:

<?php

// tell the user's browser that it is an image
header("Content-type: image/png");

// load the background
$image = imagecreatefrompng("quote.png");

// define the color black (the colour of the text)
$clr_black = imagecolorallocate($image, 0, 0, 0);
$clr_white = imagecolorallocate($image, 255, 255, 255);

// Now let's add the text

// define the font, x_position
// how much the y_position changes (increments)
$line_number = 1;

//Get a random number
$num = rand(1,3);

//Start the switch function
switch ($num) {
//First Quote
case 1:
$quote = "Nothing strengthens authority so much as silence.";
$author = "Leonardo Da Vinci";
break;
//Second Quote
case 2:
$quote = "My life is one long curve, full of turning points.";
$author = "Pierre Elliott Trudeau";
break;
case 3:
$quote = "It\'s amazing what you can accomplish if you do not care who gets the credit. This is a test";
$author = "Leonardo Da Vinci";
break;
}
//Add text to image (img, size, angle, x,y, colour, .ttf, text)
ImageTTFText($image, 8, 0, 10, 50, $clr_black, "verdanai.TTF", stripslashes($author));
ImageTTFText($image, 9, 0, 10, 15, $clr_black, "verdana.TTF", wordwrap(stripslashes($quote), 80));

// and now... we display the image
imagepng($image);
imagedestroy($image);
?>

If your understanding PHP is average, you should be able to pick this apart, and use what you need.

If you need more detailed instructions on how to use this, reply accordingly and I will post a description of the script.

-Ax

  • 0

Try these:

Random Banner:

<script LANGUAGE="Javascript"><!--

// ***********************************************
// AUTHOR: WWW.CGISCRIPT.NET, LLC
// URL: http://www.cgiscript.net
// Use the script, just leave this message intact.
// Download your FREE CGI/Perl Scripts today!
// ( http://www.cgiscript.net/scripts.htm )
// ***********************************************

function banner() {
};

banner = new banner();
number = 0;

// bannerArray
banner[number++] = "<a href='http://www.url1.com' target='_blank'><img src='images/banner-1.gif' border='0'></a>"
banner[number++] = "<a href='http://www.url2.com' target='_blank'><img src='images/banner-2.gif' border='0'></a>"
banner[number++] = "<a href='http://www.url3.com' target='_blank'><img src='images/banner-3.gif' border='0'></a>"
banner[number++] = "<a href='http://www.url4.com' target='_blank'><img src='images/banner-4.gif' border='0'></a>"
banner[number++] = "<a href='http://www.url5.com' target='_blank'><img src='images/banner-5.gif' border='0'></a>"
// keep adding items here...

increment = Math.floor(Math.random() * number);

document.write(banner[increment]);

//--></SCRIPT>

Random Avatar:

<?php
header('Content-type: image/jpeg');

//URL of the folder where the avatar images are
//The avatar images and php file can be in different places
$url = "http://homepage.ntlworld.com/frank.cox/damon/images/avatars/";

//List of filenames you wish to randomize, currently only jpegs are supported
//Note the last filename does not need a comma after it
$avatar = array (
"phpone.jpg",
"phptwo.jpg",
"phpthree.jpg"
);

//Select a random image from the list
$size = (count($avatar) - 1);
if (!isset($id) || ($size < 0) || ($id > $size)) {
$id = rand (0, ($size - 1));
}

//Output the image
$img = imagecreatefromjpeg($url . $avatar[$id]);
imagejpeg($img);
imagedestroy($img);
?> 

For that, you might want to try Tim Dorr: http://home.timdorr.com/scripts/sig/

If you get the script for that - see if you can post it here?

Hope they help,

Pete

  • 0

It's pretty easy :-

1. Make a page with a form, a textbox and a button on. Make this script submit to something like action.php

2. In action.php make it check to see if something was entered (also badwords, if you feel so inclined). If everything checks out allright then write the text to a .txt file.

3. In your image script use file_get_contents to get the data from inside the textfile and load it to a variable. Write this variable to the image using imagettftext or whatever you're using.

Done !

  • 0

Alright, I'll take a couple mins to fire this one out!

1. We'll be using two files for this. form.html and genimg.php (generate image).

form.html will simply have the form that a user can fill out to have the image display.

genimg.php will then take that information and using it to build the image you want!

Here's the form you can put on your site:

<form action="genimg.php" method="post" name="genimg">
<input type="text" name="text"><br>
<input type="submit" value="Make Image!">
</form>

And here's GenImg.php

<?php

if(isset($_POST['text'])) {
	//generate image
	header("Content-type: image/png");

	$image = imagecreatefrompng("image.png");

	//Colour Black
	$clr_black = imagecolorallocate($image, 0, 0, 0);

	//Add the text! REMEMBER TO ADJUST the number 90 at the end of this line for the length of your image.
	//Simply keep changing it till it works well for your site. (It makes the text not spill off the image).
	ImageTTFText($image, 9, 0, 5, 14, $clr_black, "arial.TTF", wordwrap(stripslashes($_POST['text']), 90));

	imagepng($image);
	imagedestroy($image);
} else {
	?>
	Sorry, you forgot to fill out the form!<br>
	<form action="genimg.php" method="post" name="genimg">
	<input type="text" name="text"><br>
	<input type="submit" value="Make Image!">
	</form>
	<?php

}
?>

This is a VERY basic code. I thought making it complicated would just confuse you :p.

You'll also need to put arial.TTF in the same directory as this file (You can find this file in: C:\Windows\Fonts\) and you'll also need an existing image named image.png.

The command:

ImageTTFText($image, 9, 0, 5, 14, $clr_black, "arial.TTF", wordwrap(stripslashes($_POST['text']), 90));

Has to be modified to make the text fit where you want it on your image. you can do this by adjusting the numbers 5 and 14. 5 sets the VERTICAL adjustment (up and down) and 14 adjusts the HORIZONTAL adjustment (LEFT and RIGHT). the number 9 is the font size, and the 0 is the angle.

I'd be glad to answer any questions.

EDIT**

Crud, I just relized you are wanting something a little different... You want people on your site to be able to Adjust YOUR signature image. Never mind this script then, it's not what you're looking for...

-Ax

  • 0

Ok, sorry totally forgot about this thread :rolleyes: ..

This is all in one block, this is the really old one..

<?php

/* Kings mooodi's PHP-GD powered Signature for use on forums
Orginaly made for my personal use on http://forums.ithium.net
Hope you enjoy : simple config bellow easy, simple, clear and commented.
note: thread name is currently supported by IPB only.

Now heres the crappy part:
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


*/

$commentfile = "comments.dat"; //Must be Chmod'd 777
$thisfile = "neowin.jpg"; //this file

//End of Config

if($go == "") {

header ("Content-type: image/png");


// Various Color and image creation Stuff
$im = imagecreate(400, 130);    	// Create Image
$white = imagecolorallocate ($im, 255, 255, 255); // Colours 
$black = imagecolorallocate ($im, 0, 0, 0);
$grey = imagecolorallocate ($im, 226, 215, 215);
imagerectangle ($im, 1, 1, 399, 129, $black);  // Border

//Find and read the comment
$commentopen = fopen($commentfile, "r"); //Open file
$comments = fread($commentopen, filesize($commentfile)); // Read file
$showcomments = explode(":", $comments); //separate comments
fclose($commentopen); //clost file

// Final stage, Print everything on to the image

imagettftext($im, 10, 0, 5, 25, $black, "./trebuc.ttf",  '-> IP : ' .$strIP);                    // Viewer IP
imagettftext($im, 10, 0, 5, 40, $black, "./trebuc.ttf",  '-> Date : ' .$strTIME);           // Date
imagettftext($im, 10, 0, 5, 55, $black, "./trebuc.ttf",  '-> Uptime : ' .$strUP);           // Server Uptime
imagettftext($im, 10, 0, 5, 70, $black, "./trebuc.ttf",  '-> Exec. in : ' .$strGEN);       // Generated in...     
imagettftext($im, 10, 0, 5, 85, $black, "./trebuc.ttf",  '-> Script Update: ' .$strMOD);   // Modified time
imagettftext($im, 10, 0, 20, 115, $black,"./trebuc.ttf",  '' .$showcomments[0]);           // Quote

imagettftext($im, 25, 0, 287, 32, $black, "./bord.ttf",  "mooodi");    // Name
imagestring ($im, 1, 375, 120,  ''.$strVER, $black);                       // Print Script Version


imagepng ($im);
imagedestroy ($im);


}elseif($go == "change") {
//Add comments..//
echo "<body><center>";
echo "<h1>Change Comment</h1>";
echo "<form action=$thisfile><input type=hidden name=go value=gochange>";
echo "New message: <input type=text name=newcomment maxlength=150><br>";
echo "<input type=submit value=\"Update commentwall\">";
echo "<br><br><a href=?go=list>Show Archives</a>";
echo "</center></form></html>";
} elseif($go == "list") {
if(!$commentflag) { $commentflag = "a"; }
// You can edit the archives page here. //
echo "<body><center>";
echo "<table width=70%>";
$commentopen = fopen($commentfile, "r");
$comments = fread($commentopen, filesize($commentfile));
$showcomments = explode(":", $comments);
foreach($showcomments as $s) {
	if($commentflag == "a") {
  echo "<tr><td bgcolor=#F1F3E5>";
  echo "$s<br>";
  echo "</td></tr>";
  $commentflag = "b";
	} elseif($commentflag == "b") {
  echo "<tr><td bgcolor=lightgrey>";
  echo "$s<br>";
  echo "</td></tr>";
  $commentflag = "a";
}
}
fclose($commentopen);
echo "</table></body></html>";
} elseif($go == "gochange") {
if(!$newcomment) {
echo "no comment";
die();
} else {
$newcomment = str_replace("<", "[html] ", $newcomment);
$newcomment = str_replace(">", " [!html]", $newcomment);
$newcomment = str_replace(":", " - ", $newcomment);

$newcommentz = stripslashes("$newcomment");
$commentopen = fopen($commentfile, "r");
$rottencomments = fread($commentopen, filesize($commentfile));
fclose($commentopen);
$commentwrite = fopen($commentfile, "w+");
	if(!fwrite($commentwrite, "$newcommentz:$rottencomments"))
	{ echo "File Write error"; }	
	fclose($commentwrite);
	echo "Comment added, done.";
}
} else {
echo "crap! invalid page...";
die();
}

?>

Notes:

Don't just copy paste the whole thing because its more than likely that you don't have fonts named trhe way I named them.

Make sure you have comments.dat (or whatever you specified your comments file to be) chomd'd to 777.

This is quite old so it is'nt the neatest work ever, and the pages are NOT what my usual stuff looks like.

The code above isn't the whole thing I cut out as much as possible (whilst keeping it error free) so that the comment thing is as clear as possible.

Pages :

filename.ext?go=list : will show all the comments.

filename.ext?go=change : will bring up the add comment change.

Preview :

This is what the above code should output.

neowin.jpg

Test: Add Comment and Archives.

Hope this is what you wanted ;) and umm sorry for the delay.. :rofl: ,

mooodi

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • AI is the beginning, wait until real robots replace more jobs, specifically jobs that require physical work.
    • AI is indeed eliminating jobs, and Oracle just proved it by Hamid Ganji There’s no question that AI has become the hottest trend in workplaces, and every company is trying to adopt AI-driven solutions across its operations. While some industry leaders repeatedly say AI won’t lead to massive layoffs, recent data suggest that AI is actually one of the main reasons some companies are reducing their workforce. According to Oracle’s annual regulatory filing, the company has laid off about 21,000 employees, or 13% of its workforce, amid increasing AI adoption. “The adoption and deployment of AI technologies across our operations have resulted, and may continue to result, in reductions to our workforce,” Oracle said in the filing. The software giant now has approximately 141,000 full-time employees, a notable decrease from 162,000 during the same period last year. Restructuring expenses, including severance payments, cost Oracle $1.84 billion in fiscal 2026. Additionally, around 49,000 Oracle employees were based in the U.S., while approximately 92,000 were employed internationally. Like many other companies, Oracle has fully embraced AI and concentrated much of its efforts on the technology. The company is also a key participant in the United States’ $500 billion Stargate Project, which aims to build multiple AI data centers across the country. When it comes to AI adoption and its impact on the workforce, opinions remain divided. NVIDIA CEO Jensen Huang, whose company has been one of the biggest beneficiaries of the AI boom, recently said in an interview that attributing job cuts to AI is a “lazy” narrative. “The narrative that connects AI to job loss, for many of the CEOs that are doing it – it is just too lazy. AI has just arrived, how is it possible they're already losing jobs?” Huang said. However, statistics and recent reports tell a different story. According to Layoffs.fyi, 196 tech companies have laid off about 119,800 employees so far this year. Reducing staff and replacing roles with AI agents could become one of the most significant trends in the job market in the years ahead.
    • Zoom Workplace 7.1.0.41345 by Razvan Serea Zoom Workplace for Windows is a reliable video conferencing tool that makes it easy to connect and collaborate. With features like messaging, file sharing, and app integrations, it’s designed to streamline teamwork. You’ll get high-quality audio and video, strong security with end-to-end encryption, and an intuitive interface—all of which help remote teams and businesses stay productive and connected. Zoom Workplace key features: High-Definition Video & Audio: Provides clear, reliable communication for virtual meetings. End-to-End Encryption: Ensures secure communication with strong data protection. Multi-Factor Authentication: Adds an extra layer of security for user accounts. Integration with Productivity Apps: Supports seamless integration with Microsoft Office, Google Workspace, and more. File Sharing: Easily share files during meetings for efficient collaboration. Real-Time Messaging: Enables team chat for ongoing communication. Collaborative Whiteboarding: Allows teams to brainstorm and collaborate visually. Webinar Support: Host large webinars with interactive features. Administrative Controls: Manage user permissions, meeting settings, and security features. Cloud Storage: Automatically stores meetings and files in the cloud for easy access. Cross-Platform Support: Available on Windows, macOS, and mobile devices. Meeting features: Virtual Backgrounds: Customize your background for meetings to maintain privacy or enhance professionalism. Touch Up My Appearance: Automatically smoothens skin tone for a more polished video appearance. Breakout Rooms: Divide meetings into smaller sessions for group discussions or workshops. Live Transcription: Automatically generate real-time captions during meetings for accessibility. Zoom Apps: Integrate third-party applications directly into Zoom for enhanced functionality. Meeting Reactions: Participants can use emojis for quick, non-verbal feedback during meetings. Polling: Conduct live polls during meetings to gather instant feedback from participants. Attention Tracking: Monitors participant attention during meetings to ensure engagement. Closed Captioning: Enable manual or automatic captions for a more inclusive experience. Webinar Replay: Record and share webinars with analytics for audience engagement. Download: Zoom 64-bit | 145.0 MB (Free, paid upgrade available) Links: Zoom Website | Zoom ARM64 | Zoom Installers | Release Notes Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • UK funds £60M AI labs to challenge US tech dominance with open-source models by Paul Hill The UK government has awarded £60 million to Oxford University and University College London to help keep the country in the AI race by focusing on open-source, low-hardware alternatives. This is in stark contrast to the expensive, closed-source, and high-hardware-requirement models being created in the United States and elsewhere. The money will be shared among two new academic research labs over six years to help them redesign the fundamental mathematics and architectures of AI to help the UK reduce its reliance on a handful of US tech firms. Commenting on the development, AI Minister Kanishka Narayan said: Initially, the government planned to fund just one lab with a £40 million investment, but with this update, two labs will now get access to a larger pool of funds. The labs are expected to invest in the top AI researchers at every career stage, with £2 million per lab being set aside for hiring at least ten doctoral students. The government hopes that this will grow the UK’s talent in the field of AI. The labs are also expected to work closely with the leaders in British AI research, such as the Alan Turing Institute and UKRI’s AI research hubs. This will allow the various teams to collaborate and create new solutions faster than they could alone. This development is pretty interesting for a number of reasons, chiefly that it could create a long-term challenge for US tech firms if these labs successfully scale these open-source architectures that bypass the proprietary ecosystems. It could also give British businesses and public sector organizations access to AI features without paying high licensing fees to foreign providers or needing to invest in specialized server infrastructure.
  • Recent Achievements

    • One Month Later
      nates earned a badge
      One Month Later
    • Week One Done
      Almohandis earned a badge
      Week One Done
    • Rookie
      dorf went up a rank
      Rookie
    • First Post
      mike_rumble earned a badge
      First Post
    • Dedicated
      tuben earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      464
    2. 2
      +Edouard
      182
    3. 3
      PsYcHoKiLLa
      97
    4. 4
      Michael Scrip
      89
    5. 5
      neufuse
      70
  • Tell a friend

    Love Neowin? Tell a friend!