Chalute,
Désolé, je devais faire quelques courses :)
Bon alors ca avance on dirait.
je te met un code complet car je suis sur mon ordi la:
alors la fontion que j'utilise pour une insertion simple dans la base de donnée:
Code PHP :
function mysql_prep( $value ) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists( "mysql_real_escape_string" ); // i.e. PHP >= v4.3.0 ,this func oli exist 4 PHP above v4.3.0
if( $new_enough_php ) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if( $magic_quotes_active ) { $value = stripslashes( $value ); }
$value = mysql_real_escape_string( $value );
} else { // before PHP v4.3.0
// if magic quotes aren't already on then add slashes manually
if( !$magic_quotes_active ) { $value = addslashes( $value ); }
// if magic quotes are active, then the slashes already exist
}
return $value;
}
C'est une fonction très portable mais peu te sembler un peu compliquer.
Voilà en gros ce qu'il fait.
Il verifie la version de ton php pour voir s'il y'a mysql_escape_string() qui est valide pour toi ou pas.
Après il check si ton magic_quotes_gpc est actif et au cas contraire addslashes() qui permet d'entrer des données on va dire safe dans le tableau.
Tu peux trouver d'autres functions plus simple n'hesite pas à prendre quelque chose que tu comprend.
alors voilà un exmple plus complet d'une page delete par exple:
Code PHP :
<?php require_once("connection.php"); ?>
<?php require_once("functions.php"); ?>
<?php
//Demande correspond au get passer dans l'url donc fait gaffe
if(intval($_GET['demande']) == 0){
redirect_to("outuveux.php");
}
$id = mysql_prep($_GET["demande"]);
if($demande = fonctionderechechedelademande($id)){
$query = "DELETE FROM demandes WHERE id = {$id}";
$result = mysql_query($query);
if(mysql_affected_rows() == 1){
//Success
redirect_to("outuveux.php");
}else{
//failure
//Mouais....
}
}
?>
<?php mysql_close($connection); ?>
Pour la fonction qui verifie ta demande si elle existe dans ta base de donnée, voilà ce que je peux te donner:
Code PHP :
function get_subject_by_id($demande_id){
if(!empty($demande_id)){
$query = "SELECT * FROM demande ";
$query .= " WHERE id = ". $demande_id . " ";
$query .= " LIMIT 1";
$result_set = mysql_query($query) or die("Mysql query
failed");
//REMEMBER
//If result_set is empty, the fetch will return false.
//To avoid that, do an if statement
if($demande = mysql_fetch_assoc($result_set)){
return $demande;
}else{
}
}
Bon j'ecris en anglais car je préfere cela :)
en gros tu te connectes a ta BDD et tu vois si ta demande existe dans ta BDD.
Si ton return t'envoie bien une demande c'est que ta demande est dans ta base de donnée donc tu peux la supprimer.
Sinon c'est pas bon.
Ce n'est pas primordial de faire ce check mais plus de sécurité est toujours bien.
cela permet de ne pas avoir un gugus qui va mettre dans ton lien:
www.demandes.php?demand=2736455463474834 alors que cet id n'existe pas.
Donc tu le redirige automatiquement vers le listing des demandes si tu veux en lui disant que cette demande n'existe pas.
Par contre a ce niveau si tu fait un redirect, tu dois mettre ton message dans un cookie et lafficher après mais bon fait simple d'abord.
Pour rediriger voici une fonction simple.
Code PHP :
function redirect_to($location){
if(!empty($location)){
header("Location:{$location}");
exit;
}
}
//Et après tu peux faire redirect_to("monindex.php")
Au plaisir et a bientôt :)
Bon courage