Fonction php avec variables : débutant [REGLÉ] - PHP - Programmation
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.
Marsh Posté le 17-02-2017 à 19:46:30
salut NewsletTux
Merci pour ce petit cours
c'est bon pour moi
Marsh Posté le 17-02-2017 à 12:50:08
Salut
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 :
<?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 :
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 :
<?php
log_erreur();
?>
Dans la meme page nous avons donc :
<!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.
INSERT INTO log_membre_login_error ( id, ip, host) VALUES( '', '', '')
Que dois je faire ?
Merci d'avance pour votre aide
Message édité par tomware le 18-02-2017 à 01:39:44