Banner Dinamic PHP si MySQL

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

bugboy
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Noi 26, 2013 5:24 pm

Banner Dinamic PHP si MySQL

Mesajde bugboy » Mar Noi 26, 2013 5:35 pm

Salutare tuturor, sunt nou aici pe forum si imi cer scuze de pe acum daca am gresit categoria dar aceasta mi se pare categoria cea mai adecvata.
Am vazut pe un site bannere dinamice cu informatii luate di mysql, sa ma explic mai bine, site-ul pe care am vazut este un site cu credite si au la dispozitie bannere cu un anumit fundal dar pe care scrie numele utilizatorului si numarul de credite, ei bine acest numar de credite se schimba mereu in acest banner dinamic atunci cat aduni mai multe credite, asta ma face sa cred ca datele care sunt puse pe banner sunt luate din mysql,
Ei bine intrebarea mea este cum as pute sa fac si eu un banner dinamic ?
Sa presupunem ca vreau sa fac un banner albastru pe care sa scrie numele utilizatorului si numarul sau de credite, aceste informatii fiind luate di baza de date mysql.
Cineva ar putea sa ma ajute?
P.S. am un database cu tabelul numit "users" in care sunt numele de utilizator cu respectivele credite si alte date..email si etc.
Multumesc anticipat



Avatar utilizator
iluc
Junior Member
Mesaje: 39
Membru din: Dum Mai 29, 2011 11:49 pm
Localitate: Focsani
Contact:

Re: Banner Dinamic PHP si MySQL

Mesajde iluc » Mar Noi 26, 2013 8:37 pm

Depinde pentru ce iti trebuie acel banner, eu cred ca te referi la ceia ce a introdus google pe 11 noiembrie, citeste aricolu: http://www.hit.ro/internet-securitate/noul-sistem-de-reclame-google-utilizeaza-imaginea-utilizatorilor-google

Avatar utilizator
inginerul
Average Member
Mesaje: 111
Membru din: Sâm Dec 01, 2012 11:34 pm
Contact:

Re: Banner Dinamic PHP si MySQL

Mesajde inginerul » Mar Noi 26, 2013 8:57 pm

Sau poate informatiile din baza de date sunt scrise intr-o imagine si apoi se insereaza in pagina imaginea respectiva.
Cum sa creezi o imagine cu php:
Creare imagini cu php

bugboy
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Noi 26, 2013 5:24 pm

Re: Banner Dinamic PHP si MySQL

Mesajde bugboy » Mar Noi 26, 2013 9:51 pm

Nu ma refer la chestia cu google
Sa presupunem ca am un banner jpg sau png albastru pe care sa scrie ceva de exemplu
Nume:(Aici vreau sa apara numele utilizatorului acesta fiind luat din tabelul "users" din baza de date)
Credite:(Aici sa apara creditele pe care utilizatorul le are luate tot din baza de date)

Unde am pus parantezele acolo sa apara datele luate din DB si sa apara pe banner ca fiind o singura imagine
Asta sa se repete pentru toti utilizatori cei inregistrati si cei care se vor inregistra, adica sa le fie generat un banner dinamic care sa se schimbe atunci cand valoarea din baza de date se schimba
Stiu sigur ca se poate face, am dat un search si pe google dar nimic care sa imi fie de ajutor
UPDATE:
Cu tutorialul pe care l-ai citat mai sus pentru a face o imagine cu PHP am reusit am obtinut urmatorul rezultat:
Am preluat bannerul albastru am reusit sa suprapun pe el un text si sa fie totul o singura imagine, acum intrebarea mea este:
Cum pot sa fac ca acel text sa fie username-ul utilizatorului respectiv? Asa cum este acum textul care apare peste banner este cel setat de mine in fisierul php
Multumesc anticipat

Avatar utilizator
mandix
Average Member
Mesaje: 142
Membru din: Dum Apr 01, 2012 2:04 am
Localitate: Santana, Arad
Contact:

Re: Banner Dinamic PHP si MySQL

Mesajde mandix » Mar Noi 26, 2013 11:11 pm

Ii o simpla interogare la baza de date. SELECT * FROM .... , iar la final sa ii dai un echo! Asta am facut cand am inceput sa invat php-ul. Nush ce cauti tu acolo pe google dar fa un simplu search: show data from database php mysql.

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Re: Banner Dinamic PHP si MySQL

Mesajde Birkoff » Mar Noi 26, 2013 11:14 pm

textele pe care vrei sa le afisezi le iei din baza de date sau de unde ai nevoie...

de exemplu userul va apela imaginea bannerului de forma urmatoare

<img src="banner.php?id_user=123&scor=456">

iar in banner.php preie valorile primite, faci interogarile necesare si generezi imaginea cu textul

alte tutoriale care ti-ar fi utile gasesti aici
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

bugboy
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Noi 26, 2013 5:24 pm

Re: Banner Dinamic PHP si MySQL

Mesajde bugboy » Mar Noi 26, 2013 11:55 pm

Multumesc pentru ajutor, incep sa ma aproprii de rezultatul dorit

quadmachine
Senior Member
Mesaje: 807
Membru din: Sâm Iul 10, 2010 4:58 pm
Localitate: Ploiesti
Contact:

Re: Banner Dinamic PHP si MySQL

Mesajde quadmachine » Mie Dec 04, 2013 11:06 pm

Iti las un exemplu aici,l-am facut mai demult.Acesta afiseaza si o imagine peste alta imagine, adica in banner poti afisa o imagine din db.

Cod: Selectaţi tot


$dbhost 
= 'localhost';
$dbname = 'forum';
$dbuser = 'root';
$dbpass = '';

$connect = mysql_connect($dbhost,$dbuser,$dbpass) or die (mysql_error());
$dbselect = mysql_select_db($dbname,$connect) or die (mysql_error());

/*Update
  ANTI XSS
*/
function antixss($string){
$string = str_replace("\\"," ",$string);// filtreaza ghilimelele
$string = str_replace("\\"," ",$string);// filtreaza doar o parte a ghilimelelor
$string = str_replace("<"," ",$string); // filtram < ca sa nu poata deschide tagurile
$string = str_replace(">"," ",$string);// filtram > ca san u poata inchide tagurile
$string = str_replace("#"," ",$string); // Simbol tare …
$string = str_replace("/"," ",$string);// slash
$string = str_replace("script"," ",$string); // cred ca singuri ati inteles de ce…
$string = str_replace("("," ",$string); // filtreaza parantezele
$string = str_replace(")"," ",$string); // filtreaza parantezele
$string = str_replace("%"," ",$string); // % se foloseste in adresele url si de aceea este primejdios
return $string;
}

$user = antixss(mysql_real_escape_string($_GET['user']));

/*
   Pentru a seta marimea avatarului pe care a setato userul in db faceti asa.
   $imageAV = imagecopy ($img, $imgd, 12, 10,0 , 0, 110, 70);
   inlocuiti cu
   $imageAV = imagecopy ($img, $imgd, 12, 10,0 , 0, $user['user_avatar_width'], $user['user_avatar_height']);
  Si va detecta automat dimensiunea avatarului.
*/

//mysql_real_escape_string for security reasons
$usersql = mysql_query('SELECT * FROM `phpbb_users` WHERE `username` = "'.$user.'"',$connect) or die (mysql_error());
$user = mysql_fetch_array($usersql);
header("Content-type: image/jpg");
$img = imagecreatefromjpeg('userbar.jpg');
$text = imagecolorallocate($img,0,0,0);
$text2 = imagecolorallocate($img,255,255,255);

//$user['user_avatar'] il preia din folderul images/avatars/upload unde este hashed dar accesand va arata asa
//dl/file.php?avatar=2_1326674316.png
$avatar_user = 'http://127.0.0.1/phpBB3/download/file.php?avatar='.$user['user_avatar'].'';
//Creaza o imagine din locatia pe care o dam cu imagecreatefrompng sau gif/jpeg depinde.
$imgd = imagecreatefrompng($avatar_user);
//imagecopy pentru a copia imaginea si a o transmite mai departe.
$imageAV = imagecopy ($img, $imgd, 12, 10,, 0, $user['user_avatar_width'], $user['user_avatar_height']);

//afisam imaginea peste imaginea creata $img.
imagestring($img,3,-20,14,$imageAV,$text2);

imagestring($img,3,140,14,'WA stats',$text2);

imagestring($img,2,140,31,'Nume: '.$user['username'].'',$text2);

imagestring($img,2,140,42,'Posturi: '.$user['user_posts'].'',$text2);

imagestring($img,2,140,54,'Contact: '.$user['user_email'].'',$text2);

imagejpeg($img,'',100);
 

Cod: Selectaţi tot

Nu confundati femeia de serviciu cu profesoara de Limba si Literatura Romana.

Avatar utilizator
Birkoff
Senior Member
Mesaje: 6380
Membru din: Joi Mar 18, 2004 2:34 pm
Localitate: Bucuresti
Contact:

Re: Banner Dinamic PHP si MySQL

Mesajde Birkoff » Joi Dec 05, 2013 12:05 am

ceva mai optim

Cod: Selectaţi tot

function antixss($string){
    $filtre = array(
        "\\" => " ", // filtreaza ghilimelele
        "\\" => " ", // filtreaza doar o parte a ghilimelelor
        "<" => " ",  // filtram < ca sa nu poata deschide tagurile
        ">" => " ", // filtram > ca san u poata inchide tagurile
    ); // nu le-am pus pe toate le pui tu

    foreach($filtre as $cauta => $inlocuieste) {
        $string = str_replace($cauta, $inlocuieste ,$string);
    }

    return $string;
}
1) CMS, ERP, CRM, etc... (doar pentru clienti))
2) Portofoliu, servicii, contact, blog
3) Folositi aceasta clasa sql in proiectele voastre (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.

bugboy
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Noi 26, 2013 5:24 pm

Re: Banner Dinamic PHP si MySQL

Mesajde bugboy » Joi Dec 05, 2013 6:56 pm

Acum am urmatorul cod:

Cod: Selectaţi tot

<?php
$dbhost = 'localhost';
$dbname = 'database_name';
$dbuser = 'database_user';
$dbpass = 'password';

$connect = mysql_connect($dbhost,$dbuser,$dbpass) or die (mysql_error());
$dbselect = mysql_select_db($dbname,$connect) or die (mysql_error());

$db= mysql_query('SELECT * FROM `users` WHERE `login` = "'.$user.'"',$connect) or die (mysql_error());
$user = mysql_fetch_array($db);
header("Content-Type: image/jpeg");

$im = ImageCreateFromPng("http://domain.com/img/banner.png"); 

$black = ImageColorAllocate($im, 0, 0, 0);

$start_x = 10;
$start_y = 20;

Imagettftext($im, 12, 0,$start_x, $start_y, $black, 'verdana.ttf','Username: '.$user['login'].'');

Imagejpeg($im, '', 100);



?>

Imi arata imagine setata aici -> $im = ImageCreateFromPng("http://domain.com/img/banner.png");
cu textul Username peste ea
dar tot nu reusesc sa printez numele utilizatorului langa
nu am nici-o idee :(

am deja un fisier care contine setarile pt a se conecta la mysql, fara sa mai scriu $dbhost ..etc este de ajuns sa pun include('/config.php') ?
am incercat da cand inlocuiesc cu include('system/config.php'); nu imi mai arata imaginea cu textul username


quadmachine
Senior Member
Mesaje: 807
Membru din: Sâm Iul 10, 2010 4:58 pm
Localitate: Ploiesti
Contact:

Re: Banner Dinamic PHP si MySQL

Mesajde quadmachine » Sâm Dec 14, 2013 11:04 am

Asa "merge"?

Cod: Selectaţi tot

<?php
$dbhost = 'localhost';
$dbname = 'database_name';
$dbuser = 'database_user';
$dbpass = 'password';

$connect = mysql_connect($dbhost,$dbuser,$dbpass) or die (mysql_error());
$dbselect = mysql_select_db($dbname,$connect) or die (mysql_error());

$db= mysql_query('SELECT * FROM `users` WHERE `login` = "'.$user.'"',$connect) or die (mysql_error());

//Pana aici este bine.

       $info = mysql_fetch_assoc($db); //assoc "retrage" doar o informatie pe rand din db si nu mai multe ca array.
       header("Content-Type: image/png"); // jpg cand creezi imagine din PNG? o.O odd..

       $image = ImageCreateFromPng("http://domain.com/img/banner.png");
       $white = ImageColorAllocate($image, 255,255,255);
       $black = ImageColorAllocate($image, 0,0,0);
       
       /*
       20 , 27 este pozitia textului/imaginii peste imaginea creata.
       */

       imagestring($image, 1, 20, 27, 'Username: '.$info['login'].'',$white );
       imagepng($image,'',100);
       
?>

Cod: Selectaţi tot

Nu confundati femeia de serviciu cu profesoara de Limba si Literatura Romana.

bugboy
PHPRomania Supporter
Mesaje: 8
Membru din: Mar Noi 26, 2013 5:24 pm

Re: Banner Dinamic PHP si MySQL

Mesajde bugboy » Sâm Dec 14, 2013 11:42 pm

Nu, nu imi afiseaza imaginea deloc, am schimbat din png in jpg fie bannerul fie codul si imi afiseaza bannerul cu scrisul username peste dar fara sa afiseze si numele utilizatorului


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 16 vizitatori