Problème avec fonction personnalisé en php
RésoluAccessvision -
Bonjour,
J'ai un VPS avec un serveur web que j'ai installé moi même en récoltant des infos un peu partout pour l'installation dun serveur web sous linux.
J'ai un script php où j'ai créé une fonction que j'utilise plusieurs fois, mais le problème est que php n'arrive pas à l'effectuer.
Elle est bien écrite, les logs sont vides mais ça fonctionne pas.
J'ai essayé avec plusieurs autres fonctions que je crée, et pareil, elle ne s'exécute pas, alors qu'avec les fonctions natives à php il n'y a aucun problème.
Aurait-il quelque chose à modifier dans php.ini? Ou autre chose?
Merci d'avance pour vos réponses.
- Script '/var/www/html/index.php' not found or unable to stat
- Fonction si et - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Story personnalisé facebook c'est quoi - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction miroir - Guide
9 réponses
Apache ou Nginx ou autre ?
As-tu un message d'erreur ?
Apache -> /var/log/apache2/error.log (sauf si définit autrement sur le vhost)
Nginx -> /var/log/nginx/error.log (même remarque)
Bonjour,
J'utilise apache2, dans le fichier d'erreur, il y en a une mais qui je pense n'a rien à voir, la voici:
[Sat Sep 24 17:28:28.374559 2022] [php7:error] [pid 6029] [client 90.151.171.106:7006] script '/var/www/html/ip.php' not found or unable to stat, referer: https://www.google.com/
Sinon il n'y a rien de spécial.
Bonjour,
Quel est le code php de cette fonction ?
Quel est le nom du fichier qui la contient ? Où as tu placé ce fichier ?
Comment y fais tu appel ? As tu inclus le fichier qui la contient dans le fichier où tu veux l'utiliser ?
Le message d'erreur parle d'un fichier ip.php .. c'est celui la ? Il se nomme bien comme ça ( y compris le respect des majuscules/minuscules dans le nom du fichier ) ?
Quels sont les droits sur ce fichier ? as tu bien autorisé son exécution ?
Bonsoir,
Je vais vous coller le code de mon fichier.
Le fichier s'appelle test_edt.php, il est placé dans /var/www/perso/.
Je fais appel à ce fichier directement par l'url et les droits sont en 777.
In'y a pas d'inclusion de fichier à part au début pour la bdd.
Voici le code et je précise encore que le fichier mentionné dans l'erreur n'est pas du tout un fichier utilisé dans ce script:
<?php include("bdd.php");
$nombre = date('W');
if($nombre%2 != 0)
{$semaine = 'a';}
else {$semaine = 'b';}
function edt($jour,$s)
{$req=$bdd->prepare('SELECT * FROM edt WHERE jour=? AND (semaine=? OR semaine=c)');
$req->execute(array($jour,$s));
while ($donnees = $req->fetch())
{echo $donnees['heure'].' '.$donnees['matière'].'<br/>';
}
} ?>
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8"/>
<title>Emploi du temps</title>
</head>
<body>
<h1>Emploi du temps</h1>
<p>Nous sommes en semaine <?php echo $semaine; ?>.</p>
<h2>Lundi</h2>
<p><?php edt('lundi',$semaine); ?></p>
<h2>Mardi</h2>
<?php edt('mardi',$s); ?></p>
<h2>Mercredi</h2>
<p><?php edt('mercredi',$semaine); ?></p>
<h2>Jeudi</h2>
<p><?php edt('jeudi',$semaine); ?></p>
<h2>Vendredi</h2>
<p><?php edt('vendredi',$semaine); ?></p>
</body>
</html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionC'est donc bel et bien un souci de connaissances sur l'écriture du code php ...
Donc, en gros, ton code devrais ressembler à ça
<?php //-----------------------------------------// //Affichage des éventuelles erreurs PHP : //( à lire : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code ) //-----------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-----------------------------------------// //connexion à la bdd // visiblement, tu as un fichier contenant la connexion en PDO // Merci d'appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs //-----------------------------------------// require_once "bdd.php"; $nombre = date('W'); $semaine = $nombre%2 != 0 ? 'a' : 'b'; // ecriture en "ternaire" de ton if/else function edt($jour,$s) { global $bdd; // on rend la variable $bdd accessible dans la fonction try{ $req=$bdd->prepare('SELECT * FROM edt WHERE jour=? AND (semaine=? OR semaine=c)'); $req->execute(array($jour,$s)); while ($donnees = $req->fetch()){ echo $donnees['heure'].' '.$donnees['matière'].'<br/>'; // Attention à ne pas utiliser de caractères accentués dans le nom des champs de tes tables ou de tes tables elles mêmes !! } }catch(Exception $e){ echo "Erreur sql " . $e->getMessage(); } } ?> <!doctype html> <html lang="fr"> <head> <meta charset="utf-8"/> <title>Emploi du temps</title> </head> <body> <h1>Emploi du temps</h1> <p>Nous sommes en semaine <?php echo $semaine; ?>.</p> <h2>Lundi</h2> <p><?php edt('lundi',$semaine); ?></p> <h2>Mardi</h2> <?php edt('mardi',$semaine); ?></p> <h2>Mercredi</h2> <p><?php edt('mercredi',$semaine); ?></p> <h2>Jeudi</h2> <p><?php edt('jeudi',$semaine); ?></p> <h2>Vendredi</h2> <p><?php edt('vendredi',$semaine); ?></p> </body> </html>
Bonjour,
Merci beaucoup pour votre code.
Maintenant, mes jours de la semaine en html, s'affiche tous contrairement à avant, mais ma fonction ne fonctionne toujours pas, sans erreur sur la page ni dans les logs de php ou d'apache2
Merci pour votre aide, je ne comprends pas pourquoi ça ne marche pas.
Effectivement j'avais oublié une partie du code de l'article que vous m'avez envoyé.
Désolé, voici l'erreur:
Erreur sql SQLSTATE[42S22]: Column not found: 1054 Unknown column 'c' in 'where clause'