[REGLÉ] Fonction php avec variables : débutant

Fonction php avec variables : débutant [REGLÉ] - PHP - Programmation

Marsh Posté le 17-02-2017 à 12:50:08    

Salut :hello:  
 
Je voudrais créer une fonction php contenant des variables mais je ne sais pas où doivent se situer les variables dans mon script/page.
Je débute c'est la premiere fonction que j'ecris.
 
Dans ma page j'ai 2 variables qui sont déclarées en en-tête du script :

Citation :

<?php
$ip = $_SERVER["HTTP_CF_CONNECTING_IP"]; // CLOUDFLARE
$host = gethostbyaddr($ip);  
?>


 
Ma fonction php est un log de connexion ip, j'ai donc juste en dessous  :

Citation :


function log_erreur()  
{  
    $sql = "INSERT INTO log_membre_login_error (id,ip,host) VALUES ('','$ip','$host')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    echo "$sql";
}


 
Et donc voici le code dans ma page  :  

Citation :


<?php
log_erreur();
?>


 
Dans la meme page nous avons donc :  

Citation :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
$ip = $_SERVER["HTTP_CF_CONNECTING_IP"]; // CLOUDFLARE
$host = gethostbyaddr($ip);  
 
function log_erreur()  
{  
    $sql = "INSERT INTO log_membre_login_error (id,ip,host) VALUES ('','$ip','$host')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    echo "$sql";  
}
 
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ma page</title>
</head>
 
<body>
<?php
echo "bienvenue sur ma page";
log_erreur();
?>
</body>
</html>


 
Mais le contenu rapatrié par ma fonction est vide.  

Citation :

INSERT INTO log_membre_login_error ( id, ip, host) VALUES( '', '', '')


 
Que dois je faire ?  
 
Merci d'avance pour votre aide  :jap:


Message édité par tomware le 18-02-2017 à 01:39:44
Reply

Marsh Posté le 17-02-2017 à 12:50:08   

Reply

Marsh Posté le 17-02-2017 à 15:45:37    

Salut,
 
2 possibilités :
1) tu passes tes variables en paramètre de fonction.
 
Concrètement, au lieu de "log_erreur();"
 
Tu mets :
 
Log_erreur($host, $ip); // les 2 variables définies en tête
 
Et ta fonction devient alors :
 
Function log_erreur($host, $ip) {
...
}
 
Attention: au sein même de ta fonction, ce sont des variables "locales", c.a.d. que le $ip dans ta fonction est reçu mais n'est pas la même variable qu'en dehors de ta fonction.
 
 
2) tu les passes en globales, pour avoir une portée globale. Mais... c'est pas une vraie solution...
 
Attention bis : dans ton insert il faut protéger des injections SQL tes variables.


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 17-02-2017 à 19:46:30    

salut NewsletTux  :hello:  
 
Merci pour ce petit cours  :jap:  
 
c'est bon pour moi

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed