Erreur mysql_real_escape_string()
Résolu
Zakarya93
Messages postés
984
Date d'inscription
Statut
Membre
Dernière intervention
-
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Zakarya93 Messages postés 984 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Sachant que j'utilise la dernière version de wampserveur, voici mon script register.php :
_____________________
quand je vais dans "http://localhost/rs/index.php?page=register", ils m'affichent 2 erreurs :
-Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\rs\pages\register.php on line 7
-Notice: Undefined index: situation in C:\wamp\www\rs\pages\register.php on line 13
Que faire svp ? #Débutant
Sachant que j'utilise la dernière version de wampserveur, voici mon script register.php :
<?php if(isset($_POST['submit'])) { $sexe = mysql_real_escape_string(htmlentities($_POST['sexe'])); $pseudo = mysql_real_escape_string(htmlentities($_POST['pseudo'])); $password = mysql_real_escape_string(htmlentities($_POST['password'])); $repeatpassword = mysql_real_escape_string(htmlentities($_POST['repeatpassword'])); $email = mysql_real_escape_string(htmlentities($_POST['email'])); $apropos = mysql_real_escape_string(htmlentities($_POST['apropos'])); $situation = mysql_real_escape_string(htmlentities($_POST['situation'])); if(empty($pseudo)) { $errors[] ="Veuillez saisir un pseudo"; } if (empty($password)) { $errors[] ="Veuillez saisir un password"; } if($password != $repeatpassword) { $errors[] = "Vos deux password doivent être identiques"; } if(!filter_var($email,FILTER_VALIDATE_EMAIL)) { $errors[] = "Votre adresse email n'est pas correcte"; } if(empty($apropos)) { $errors[] = "Veuillez vous décrire en quelques lignes"; } if(!empty($errors)) { foreach($errors as $error) { echo "<div class='error'>".$error."</div>"; } } } <code>?> <form method="POST" action=""> <label for='sexe'>Sexe</label> <select name="sexe"> <option value="Homme">Homme</option> <option value="Femme">Femme</option> </select><br /><br/> <label for='situation'>Situation</label> <select name="Situation"> <option value="Célibataire">Celibataire</option> <option value="En couple">En couple</option> <option value="Divorcé(e)">Divorce(e)</option> <option value="Veuf(ve)">Veuf(ve)</option> </select><br /><br/> <label for="pseudo">Votre pseudo : </label> <input type="text" name ="pseudo"><br /> <label for="password">Votre password : </label> <input type="password" name ="password"><br /> <label for="repeatpassword">Repetez votre password : </label> <input type="password" name ="repeatpassword"><br /> <label for="email">Veuillez saisir votre email : </label> <input type="text" name ="email"><br /> <label for="apropos">A propos de vous </label> <textarea rows="6" cols="30" name="apropos"></textarea><br /><br /> <input type="submit" value="S'inscrire" name="submit"> </form> <a href='index.php?page=login'>Retournez à la page de connexion</a></code>
_____________________
quand je vais dans "http://localhost/rs/index.php?page=register", ils m'affichent 2 erreurs :
-Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\rs\pages\register.php on line 7
-Notice: Undefined index: situation in C:\wamp\www\rs\pages\register.php on line 13
Que faire svp ? #Débutant
2 réponses
our le
-Notice: Undefined index: situation in C:\wamp\www\rs\pages\register.php on line 13
... cela signifie que tu essaies d'appeller une variable (contenue dans un array) qui n'existe pas.
1 - Utiliser ISSET pour récupérer le contenu de tes variables POST / GET / SESSION / COOKIE ....
de cette manière :
2 - Pour l'autre : Deprecated: mysql ... je t'invite à lire ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
(et suite à ça... passer à la PDO )
Cordialement,
Jordane
-Notice: Undefined index: situation in C:\wamp\www\rs\pages\register.php on line 13
... cela signifie que tu essaies d'appeller une variable (contenue dans un array) qui n'existe pas.
1 - Utiliser ISSET pour récupérer le contenu de tes variables POST / GET / SESSION / COOKIE ....
de cette manière :
//si $_POST['mavariable'] existe.. je récupère son contenu. (dans $toto). sinon j'attribut la valeur NULL à $toto. $toto = isset($_POST['mavariable'])?$_POST['mavariable']:NULL;
2 - Pour l'autre : Deprecated: mysql ... je t'invite à lire ceci : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
(et suite à ça... passer à la PDO )
Cordialement,
Jordane
Pour se connecter à une BDD en PDO :
Et pour faire des requêtes :
NB : Avec ça .. plus besoin de trucs du genre real_escape_string ou de htmlentities pour stocker des données en BDD .......
Voilou.. tu as toutes les billes pour avancer .
Si tu veux en apprendre plus... tu trouveras SANS PROBLEME des tonnes de tutos et exemples sur le net !
Par exemple :
https://fmaz.developpez.com/tutoriels/php/comprendre-pdo/#LII
https://php.developpez.com/faq/?page=pdo
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914293-lisez-des-donnees
.
<?php //---------------------------------------------// // Connexion à la BDD via PDO //---------------------------------------------// $host = "localhost"; $dbname = "nom_de_la_base"; $user = "root"; $pass = ""; try { $dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass,array(PDO::ATTR_PERSISTENT => true)); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { print "Erreur !: " . $e->getMessage() . "<br/>"; die(); } ?>
Et pour faire des requêtes :
$id = isset($_POST['id'])?$_POST['id']:NULL; // exemple de requête avec paramètre .... $sql = "SELECT * FROM matable WHERE id=:id "; $params = array(":id"=>$id); $req = $dbh->prepare($sql); $req->execute($params ); //Récupérer toutes les données retournées $arrAll = $req->fetchAll(); // afficher l'array contenant les valeurs issues de la requête... print_r($arrAll );
NB : Avec ça .. plus besoin de trucs du genre real_escape_string ou de htmlentities pour stocker des données en BDD .......
Voilou.. tu as toutes les billes pour avancer .
Si tu veux en apprendre plus... tu trouveras SANS PROBLEME des tonnes de tutos et exemples sur le net !
Par exemple :
https://fmaz.developpez.com/tutoriels/php/comprendre-pdo/#LII
https://php.developpez.com/faq/?page=pdo
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/914293-lisez-des-donnees
.
Je veux bien t'aider .. mais pas faire le boulot pour toi !
Donc si tu veux de l'aide :
- Où en es tu ?
- Qu'as tu commencé à coder
- Sur quoi bloques tu exactement ?
Y en a un qui nous a proposé cette combinaison :
Mais marche pas :/