Langage PHP

<?php // debut du php
.
.
?> // fin du php

Alerte en PHP

echo '<script>alert("Code erronné !!!") </script>';

avec qui étant 1 variable
ex. qui = "toto";
echo '<script>alert("Bonjour " + qui) </script>';

Commentaires

// pour 1 ligne

/*
plusieurs lignes
*/

Cryptogramme dans une page (CaptChas)

Copier les lignes suivantes en tout début de la page qui contiendra le cryptogramme. Ces lignes doivent être vraiment placées au debut, avant toute balise.

<?php
$cryptinstall="./crypt/cryptographp.fct.php";
include $cryptinstall;
?>

***********************************************************************************************************************

Pour afficher le cryptogramme, copier le code suivant dans votre page, à l'endroit où vous désirez l'affichage:
<?php dsp_crypt(0,1); ?>

***********************************************************************************************************************
Formulaire de saisie
Le principe est toujours le même: le code saisi par l'utilisateur est passé à la page de vérification en même temps que toutes les autres zones de saisie du formulaire.
Dans l'exemple ci-dessous, pour simplifier, je n'ai laissé que le cryptogramme et la zone de saisie. Dans cet exemple, la page de vérification qui recevra le formulaire s'appelle verifier.php.
Il faut bien entendu adapter cet exemple à votre script. Il ne faut pas recreer un formulaire mais utiliser le formulaire que vous avez déjà en incluant le cryptogramme et la zone de saisie à l'intérieur. Dans cet exemple la zone de saisie s'appelle code mais il est possible de la nommer autrement.

<form action="verifier.php" method="post">
<table>
<tr><td><?php dsp_crypt(0,1); ?></td></tr>
<tr><td>Recopier le code:<input type="text" name="code"></td></tr>
<tr><td><input type="submit" name="submit" value="Envoyer"></td></tr>
</table>
</form>

***********************************************************************************************************************

Vérification
La page de vérification (verifier.php dans l'exemple ci-dessus) récupère la valeur de la zone saisie (code dans l'exemple ci-dessus).

Comme pour la page du formulaire, la page de vérification doit commencer (avant toute balise) par les lignes suivantes :

<?php
$cryptinstall="./crypt/cryptographp.fct.php";
include $cryptinstall;
?>

***********************************************************************************************************************

La portion de code qui vérifie l'exactitude de la saisie a été simplifiée par rapport aux versions précédentes de Cryptographp. La fonction chk_crypt renvoie la valeur true (vraie) si le code saisi et correct et False (faux) dans le cas contraire.

<?php
if (chk_crypt($_POST['code']))
echo "Bravo";
else echo "Erreur";
?>

Chaînes de caractères
Ces fonctions permettent la manipulation de chaînes de caractères. Certaines sections plus spécialisées sont disponibles dès les sections sur les expressions régulières et dans la section URL.
 
AddCSlashes — Ajoute des slashes dans une chaîne, comme en langage C.
AddSlashes — Ajoute un slash devant tous les caractères spéciaux.
bin2hex — Converti une valeur binaire en hexadécimal
Chop — Enlève les espaces de fin de chaîne.
Chr — Retourne un caractère.
chunk_split — Scinde une chaîne en plus petits morceaux.
convert_cyr_string — Converti la chaîne d’un alphabet cyrillique vers un autre.
count_chars — Retourne des informations sur les caractères utilisés dans une chaîne.
crypt — Encrypte une chaîne avec un DES.
echo — Affiche une ou plusieurs chaînes.
explode — Scinde une chaîne en morceau, grâce à un délimiteur.
get_html_translation_table — Retourne la table de traduction utilisée par htmlspecialchars() et htmlentities().
get_meta_tags — Extrait toutes les balises meta d’un fichier, et les retourne sous forme d’un tableau.
htmlentities — Converti tous les caractères spéciaux en équivalent HTML.
htmlspecialchars — Converti tous les caractères spéciaux en équivalent HTML.
implode — Regroupe tous les éléments d’un tableau dans une chaîne, avec une chaîne de jointure.
join — Regroupe tous les éléments d’un tableau dans une chaîne, avec une chaîne de jointure.
ltrim — Enlève les espaces de début de chaîne.
md5 — Calcule un md5 avec la chaîne.
Metaphone — Calcule la clé metaphone d'une chaîne.
nl2br — Converti les nouvelles lignes en HTML (<BR?).
Ord — Retourne la valeur ASCII du caractère.
parse_str — Analyse une chaîne, et en déduit des variables et leur valeur.
print — Affiche une chaîne.
printf — Affiche une chaîne formatée.
quoted_printable_decode — Décode une chaîne
QuoteMeta — Ajoute un backslash devant tous les caractères méta
rawurldecode — Décode une chaîne URL.
rawurlencode — Encode une chaîne en URL, selon la RFC1738.
setlocale — Change les informations locales.
similar_text — Calcule la similarité de deux chaînes.
soundex — Calcule la valeur soundex d’une chaîne.
sprintf — Retourne une chaîne formatée.
strcasecmp — Comparaison binaire de chaînes, insensible à la casse.
strchr — Recherche la première occurrence d’un caractère.
strcmp — Comparaison binaire de chaînes.
strcspn — Recherche la longueur du premier segment de chaîne qui ne corresponde pas au masque donné.
strip_tags — Enlève les balises HTML et PHP.
StripCSlashes — Déquote une chaîne quotée avec addcslashes
StripSlashes — Enlève les slash ajoutés par la fonction addslashes
stristr — strstr(), insensible à la casse.
strlen — Retourne la longueur de la chaîne.
strpos — Recherche la dernière occurrence d’un caractère dans une chaîne.
strrchr — Recherche la dernière occurrence d’un caractère dans une chaîne
str_repeat — Répéte une chaîne.
strrev — Inverse l'ordre des caractères d'une chaîne.
strrpos — Recherche la dernière occurrence d’un caractère dans une chaîne.
strspn — Retourne la longueur du premier segment qui vérifie le masque.
strstr — Trouve la première occurence d'une chaîne.
strtok — Morcelle une chaîne
strtolower — Met tous les caractères en minuscule.
strtoupper — Met tous les caractères en majuscule.
str_replace — Remplace toutes les occurrences d’une chaîne par une autre.
strtr — Remplace toutes les occurrences d’un caractère par un autre.
substr — Retourne une partie de la chaîne.
substr_replace — Remplace dans une sous partie de chaîne
trim — Enlève les espaces de fin et de fin de chaîne.
ucfirst — Force le premier caractère d’une chaîne en majuscule.
ucwords — Force le premier caractère de chaque mot d’une chaîne en majuscule

Concaténer

$nom = "Martin";
echo "bonjour ",$nom; = bonjour Martin
echo "Mon nom est $nom"; = Mon nom est Martin
echo 'Mon nom est $nom'; = Mon nom est $nom ???
echo 'Mon nom est '.$nom; = Mon nom est Martin

Cookies
 
<?
// Cookie ecriture
$expire = 365 * 24 * 3600; // 1 an
$contenu = "FR";
setcookie("pays_jno",$contenu,time()+$expire);
?>
 
<?
// Lire Cookie
echo $HTTP_COOKIE_VARS['pays_jno']; // crochets [ et ]
 
$toto = $HTTP_COOKIE_VARS['pays_jno'];
 
echo "<br><br>la reponse = ",$toto;
?>
 
Date et heure Calendrier
 
echo date('d/m/Y à H:i:s'); //Affichera la date sous cette forme : jj/mm/yyyy à HH:mm:ss (Exemple : 01/03/2006 à 12:10:05)
 
JDToGregorian — Converti le nombre de jours du calendrier Julien en date grégorienne.
GregorianToJD — Converti une date grégorienne en nombre de jours du calendrier julien.
JDToJulian — Converti le nombre de jours du calendrier Julien en date du calendrier Julien.
JulianToJD — Converti le nombre de jour du calendrier Julien en date du calendrier Julien.
JDToJewish — Converti le nombre de jours du calendrier julien en date du calendrier juif.
JewishToJD — Converti une date du calendrier juif en nombre de jours du calendrier julien.
JDToFrench — Converti le nombre de jours du calendrier julien en date du calendrier français républicain
FrenchToJD — Converti une date du calendrier français républicain en nombre de jours du calendrier julien.
JDMonthName — Retourne le nom du mois.
JDDayOfWeek — Retourne le numéro du jour de la semaine.
easter_date — Retourne un timestamp UNIX pour Pâques, à minuit, pour une année donnée.
easter_days — Retourne le nombre de jour entre le 21 Mars et Pâques, pour une année donnée.

Dates PHP

$date = date("d-M-Y"); // 30-12-2007 jour Mois Année sur 4 chiffres avec y (minuscule) année sur 2 chiffres
$heure = date("H:i"); // Heure Min
$heure = date("H:i:s"); // Heure Min Sec
echo "le ",$date," à ",$heure;
ou
echo ("le $date à $heure");
Si (erreur)
echo('la $date à $heure'); // Affiche le nom de variable ...

Date fichier

echo $super," Super ",date("d M Y à H:i",filemtime("../web_toto/avis.txt"));

Date avec setlocale et strftime

// -- DATE 1 --
$date = "15/10/2003";
$jour = substr($date,0,2); // on récupère le jour
$mois = substr($date,3,2); // puis le mois
$annee = substr($date,6,4); // et l'annee ...
// on transforme la date en timestamp
$timestamp = mktime(0,0,0,$mois,$jour,$annee);

// -- DATE ACTUELLE -- directement en timestamp.
$maintenant = time();

// -- CALCUL -- on calcule le nombre de secondes d'écart entre les deux dates
$ecart_secondes = $maintenant - $timestamp;
// puis on tranforme en jours (arrondi inférieur)
$ecart_jours = floor($ecart_secondes / (60*60*24));
// enfin on affiche le résultat
setlocale(LC_TIME, "fr_FR");
echo "<b>le site de Vaux en Amiènois</b><br>";
echo "Site créé le ",$date,", ",$ecart_jours," jours se sont écoulés avant ce ".strftime("%A %d %B %Y"),".<br>";
// %A jour en lettres, %d N° du jour 1 - 31, %B Mois en lettres, %Y Année sur 4 chiffres
$ans = $ecart_jours / 365;
$ansP = floor($ans); // années entieres
echo "(",$ansP," Années";
$nb_jours = 365;
$moisP = fmod($ecart_jours,$nb_jours); // le modulo
$moisP = floor($moisP / 30);
echo " et ",$moisP," mois)<br>";


Envoi Mail

<?php
$headers = "From: \"a2Ha\"<aaha@a2ha.net>\n";
$headers .= "Reply-To: aaha@a2ha.net\n";
$headers .= "Cc: j.nourtier@free.fr, j.nourtier@tiscali.fr\n";
$headers .= "Bcc: jnourtier@j-nourtier.net\n";
$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$headers .= "Content-Transfer-Encoding: 8bit";

$subject = 'Essai Un site à voir absolument !';

$message = "Salut à tous, \n\n";
$message .= "Un site super à voir absolument : \n";
$message .= "http://www.phpcodeur.net\n\n";
$message .= "A demain\n\n";
$message .= "toto";

$result = mail('jocelyn.nourtier@wanadoo.fr', $subject, $message, $headers);

if( $result == true )
{
echo 'l\'email a bien été envoyé';
}
else
{
echo 'l\'email n\'a pas pu être envoyé !';
}
?>

eMail de confirmation

<?php
//Envoi mail de confirmation a l'abonné

$email_admin="jnourtier@j-nourtier.net";
$titre="Honeywell";
$adresse = "j.nourtier@free.fr";
$signature = "Joce.";

$mess="Inscription à notre newsletter pour être informé des nouveautés du site.";

$confirmation="<b>Je vous confirme que vous avez bien été enregistré(e) à la newsletter du site a2Ha.</b><br><br> Vous recevrez donc en priorité les nouvelles du site.<br><br><b>Nous vous remercions de votre intérêt.<br><i> ",$signature,"</b>";

$codehtml= "<html><body>" . "$confirmation"."</body></html>";
mail("Hey $adresse, vous voilà inscrit à la Newsletter de $titre",$codehtml,"From: $email_admin\nReply-To: $email_admin\nContent-Type: text/html; charset=\"iso-8859-1\"\n");

?>

ElseIf

<?php
if ($a > $b)
{
print "a est plus grand que b";
}
elseif ($a == b)
{
print "a est égal à b";
}
else
{
print "a est plus petit que b";
}
?>

Fonction strftime avec SetLocale

Liste de paramètres

format

Les caractères suivants sont utilisés pour spécifier le format de la date :

Htaccess

le .htacces
le .htpassword

Le chemin réel
admin/chemin.php

mpasse.php (joce, jno1706)

Modulo

$modulo = fmod($total,$compte);
 
Tri en PHP

Pour ordonner les annonces de la plus récente à la plus ancienne, il suffit de remplacer ASC LIMIT par DESC LIMIT au début du script.
 
<?
include ("connect.inc.php3");
$requete10=mysql($database,"SELECT * FROM `annonce` ORDER BY `datesaisie` DESC LIMIT 0 , 11");
?>
 
Appel fichier extérieur

< ?php
 include(« toto.inc.php ») ;
// le inc permet de bien différencier les fichiers ext pour la maintenance
 
Ecriture dans fichier texte

< ?php
$fp = fopen(data.txt », »r+ ») ;
 ffseek($fp,0) ; // on se positionne sur la 1ère ligne du fichier
 fputs($fp,$nouveau) ; // ajout de la variable nouveau
 fclose($fp) ; // fermeture du fichier
?>
 
Lecture fichier texte (ex. data_pays.txt)

<?php
$fp = fopen("data_pays.txt","r");
$donnees = fgets($fp,255);
fclose($fp);
include ("titres_".$donnees.".php");
//echo "<br><br>";
//print "le titre : " .$titre1;
?>

Ecriture
<?php
$date = date("d M Y");
$heure = date("H:i");
$adresse = toto@titi.net";
// On alimente le fichier historiq.txt

// Historique complet des Abonnements et Désabonnements
// joce 31/12/2007

$ligne = "+ Abonnement le ".$date." à ".$heure." - ".$adresse;

if (!$fp = fopen("../historiq.txt","a"))
{
echo "Echec de l'ouverture du fichier";
exit;
}
else
{
fwrite($fp,$ligne."\n");
}
fclose($fp); // On ferme le fichier

?>

Lecture
<?php
// historiq.php Lecture fichier texte
// Historique complet des Abonnements et Désabonnements
// joce 31/12/2007

$fileLines=file("historiq.txt");
$nb_listadr = count($fileLines);
echo '<b>',$nb_listadr,' lignes<br>';
echo '<b>Historique des Abonnements / Désabonnements à la liste a2Ha</b><br>';

if (!$fp = fopen("historiq.txt","r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
while(!feof($fp)) {
// On récupère une ligne
$Ligne = fgets($fp,255);

// On affiche la ligne
echo '</b><br>',$Ligne;
}
fclose($fp); // On ferme le fichier
}
?>
 
Fichier ext en variable
 
include ("titres_".$donnees.".php");
ex. appel du fichier exter titres_FR.php aprés récupération de la variable du pays = FR dans le fichier texte associé.
 
Images

<img src="images/<?echo $nomimages[$affimage];?>" border=0 width=50 height=50 alt="Image aléatoire">
 
2 Variables
 
<?php echo "" .$titre_tarif. " = " . $p_reserve ;?></font><font color="#800000"><br>
Attention aux points

Majuscules / minuscules
 $chaine = « Toto » ;
 $maj = strtoUpper($chaine) ; --> TOTO
 $min = strtoLower($chaine) ; --> toto

 
Rappel
 
<script language="JavaScript" src="<?php echo $mosConfig_live_site; ?>urldetonfichier.js" type="text/javascript"></script>
 
Ce code à mettre entre la balise <head> et l'autre </head> !
 
en jscript
 
<SCRIPT language=JavaScript src="titres_FR.js"></SCRIPT>
 
Le code PHP data.php

(ne copier/coller pas ce code dans votre éditeur, retapez-le ou gare aux erreurs...)
 
<?
$fp = fopen("data.txt","r"); //(1)
$donnees = fgets($fp,255); //(2)
fclose($fp); //(3)
//Affichage du résultat -----------
echo'Le fichier contient : '.$donnees;
?>
 
Le code PHP de compteur.php

(ne copier/coller pas ce code dans votre éditeur, retapez-le ou gare aux erreurs...)
 
<?
$fp = fopen("compteur.txt","r+"); // 1.On ouvre le fichier en lecture/écriture
$nbvisites = fgets($fp,11); // 2.On récupère le nombre dans le fichier
$nbvisites++; // 3.On incrémente le nombre de visites(+1)
fseek($fp,0); // 4.On se place en début de fichier
fputs($fp,$nbvisites); // 5.On écrit dans le fichier le nouveau nb
fclose($fp); // 6.On ferme le fichier
print("$nbvisites visiteurs"); // 7.On affiche le compteur à l'écran
?>
  
Il vous suffit de placer ce code dans la page un index.php de votre site. Ici la fonction fseek() permet de se replacer où l'on veut en l'occurrence "0" , donc au début, ensuite avec fputs() on écrit dans le fichier à l'endroit spécifié.
Pour finir avec les fichiers, n'oubliez pas que votre fichier texte qui se trouve sur votre FTP doit avoir avoir tous les droits (chmode 777) pour que le script puisse y écrire.

Retour automatique sur 1 page PHP

echo '<script>
window.setTimeout("location.replace(\'../index_jno.htm\')",5000)
</script>';

Transmission variable PHP

<a href = "index.php?nom=<?=$nom;?>"></a>

dans index.php

$_GET['nom'];

Session PHP

<?
$variable = "tortue";
session_start();
session_register("variable");
?>

Lecture et récupération
<?
session_start();
echo "La variable est ".$_SESSION[variable];
....

Variables

echo '<input type="hidden" name="toto" value="'.variable.'">' A vérifier

Verif mail PHP avec 1 regex (regular expression)

function VerifierAdresseMail($adresse)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
if(preg_match($Syntaxe,$adresse))
return true;
else
return false;
}

Après avoir récupéré le champ "adresse" d'un formulaire :

$adresse=htmlentities($_POST['adresse']);
if(VerifierAdresseMail($adresse))
echo '<p>Votre adresse est valide.</p>';
else
echo '<p>Votre adresse e-mail n\'est pas valide.</p>';

Explications
Les dièses sont les délimiteurs de la regex.
Le signe ^ indique que la chaine doit commencer par ce qui suit, et le signe $ indique qu'elle doit se terminer par ce qui précède.
\w est une classe abrégée qui correspond a A-Za-z0-9_. soit aux 26 lettres de l'alphabet en majuscules ou minuscules, les dix chiffres et un underscore.

Ce que fait le code
^[\w.-]+@ Commence (^) par au moins un caractère correspondant à la classe abrégée, ou un tiret, puis est suivi par un@.
[\w.-]+ un ou plus de caractères correspondant à la classe abrégée ou un tiret (c'est le nom de domaine)
\.[a-zA-Z]{2,5}$ un point, puis deux à cinq lettres, qui finissent la chaine (c'est la tld du nom de domaine).