High-Tech
Santé-Médecine
Droit-Finances
CodeS-SourceS
Inscription
Plan
Connexion
Rechercher un code, un tuto, une réponse
Accueil
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Tous les langages
Delphi / Pascal
Java
Python
SQL
RegEx
Flash
ASM
IRC
Graphisme
PDA
ColdFusion
Foxpro
Flex
Visual Basic / VB.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
PHP
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C/C++/C++.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Javascript
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C#/.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
ASP/ASP.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Accueil
Connexion
Déposer un code
Code
Recherche
Haut
Accueil
Forum Codes-Sources
PHP
Problème avec les ' '
Signaler
dclick07
Messages postés
43
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
26 février 2008
-
8 févr. 2008 à 22:18
dclick07
Messages postés
43
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
26 février 2008
-
14 févr. 2008 à 00:11
Salut, sur mon site quand je clique un membre qui a un ' dans son nom la page ne fonctionne pas.
Y'a t'il un moyen d'arrenger cela ?
Afficher la suite
7
réponses
Réponse 1 / 7
sbool
Messages postés
115
Date d'inscription
mercredi 27 août 2003
Statut
Membre
Dernière intervention
7 mars 2008
8 févr. 2008 à 23:08
Oui il y a moyen, pour moi 2 solutions :
1 -> Tu interdit ce caractere lors de l'inscription
2-> Tu ajoute un / devant ton ' lors de l'inscription encore une fois
N'oublie pas egalement de verifier lors de l'inscription si tu n'a pas des doublons pour les pseudos, je te passe le mien en ajax...
dans head
<script type= "text/javascript">
function writediv(texte)
{
document.getElementById('pseudobox').innerHTML = texte;
}
function verifPseudo(pseudo)
{
if(pseudo != '')
{
if(pseudo.length<4)
writediv(' '+pseudo+' : ce pseudo est trop court');
else if(pseudo.length>30)
writediv('
'+pseudo+' :
ce pseudo est trop long');
else if(texte = file('verifpseudo.php?pseudo= '+escape(pseudo)))
{
if(texte == 1)
writediv(' '+pseudo+' : ce pseudo est deja pris');
else if(texte == 2)
writediv(' '+pseudo+' : ce pseudo est libre');
else
writediv(texte);
}
}
}
function file(fichier)
{
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
xhr_object.open("GET", fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}
</script>
----
<table width="369" border="0" cellspacing="0">
----
, Créez votre compte dès maintenant >> </td>
----
Pseudo.,
,
----
Email.,
,
----
Mot de passe.,
,
----
Confirmer le mot de passe.,
,
----
Inscription à la newletter.,
,
----
,
*,
</td>
</tr>
</tbody>
</table>
& le fichier php pour controler le pseudo ....
<?php
/*
CE SCRIPT EST UN EXEMPLE DE SCRIPT PHP
POUR VERIFIER LA DISPONIBILITE D'UN PSEUDO
DANS UNE TABLE SQL
LE SCRIPT DOIT RETOURNER :
1 : SI LE SPEUDO EST DEJA PRIS
2 : SI LE PSEUDO EST LIBRE
*/
// CONNECION SQL
include "db.php";
//include "statut.php";
// VERIFICATION
$result = mysql_query("SELECT login FROM users WHERE login='".$_GET["pseudo"]."'");
if(mysql_num_rows($result)>=1)
echo "Ce pseudo est deja utilise!";
else
echo " ";
?>
Réponse 2 / 7
yoman64
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
8 févr. 2008 à 23:54
Salut,
Ton script est TRÈS dangereux, on doit TOUJOURS échapper les chaines avant de les entrés, pas du coté client, mais du coté serveur
$result = mysql_query('SELECT login FROM users WHERE login=\''. mysql_real_escape_string ($_GET["pseudo"]).'\'');
if(mysql_num_rows($result)> =1)
....
Pour en revenir au sujet, c'est soit un problème d'échappement avant la vérification, soit un problème du coté du lien html directement.
-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la :
www.e3b.org
Réponse 3 / 7
dclick07
Messages postés
43
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
26 février 2008
9 févr. 2008 à 00:06
Okay le probleme est pas si compliqué quand je clique sur le nom de la personne j'arrive au profil mais quand les actions récentes affiche leur nom la sa cause probleme.
[username] a mise à jour sa photo.
ses mon code!
Réponse 4 / 7
yoman64
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
9 févr. 2008 à 00:18
Salut,
C'est ça, un problème avec ton lien html. tu utilise des quote pour enrober l'adresse, si ya des quotes dans le pseudo forcément ça plante.
Le standard html me semble favorisé les " de toute façon.
Enfin bref la solution à ton problème est d'utiliser la fonction urlencode.
$username = urlencode($username);
Ce qui va passé de : Mon pseudo il a des ' et des "
À : Mon+pseudo+il+a+des+%27+et+des+%22
www.e3b.org
Réponse 5 / 7
dclick07
Messages postés
43
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
26 février 2008
9 févr. 2008 à 02:03
À quel endroit dois-je placé ca?
function user_account($email, $username)
{
global $database, $setting, $class_user;
if (str_replace(" ", "", $email)
"" OR str_replace(" ", "", $username)
"")
{
$this->is_error = 1;
$this->error_message = $class_user[6];
}
if (ereg('[^a-zA-Z0-9_[:space:][:punct:]]', $username))
{
$this->is_error = 1;
$this->error_message = $class_user[7];
}
$banned_usernames = explode(",", strtolower($setting[setting_banned_usernames]));
if (in_array(strtolower($username), $banned_usernames) === TRUE & str_replace(" ", "", $username) != "")
{
$this->is_error = 1;
$this->error_message = $class_user[8];
}
if (is_dir($username))
{
$this->is_error = 1;
$this->error_message = $class_user[9];
}
$banned_emails = explode(",", strtolower($setting[setting_banned_emails]));
$wildcard_ban = "*" . strstr(strtolower($email), "@");
if ((in_array(strtolower($email), $banned_emails)
TRUE | in_array(strtolower($wildcard_ban), $banned_emails)
TRUE) & str_replace(" ", "", $email) != "")
{
$this->is_error = 1;
$this->error_message = $class_user[10];
}
if (!is_email_address($email))
{
$this->is_error = 1;
$this->error_message = $class_user[11];
}
$lowercase_username = strtolower($username);
$username_query = $database->database_query("SELECT user_username FROM se_users WHERE LOWER(user_username)='$lowercase_username' LIMIT 1");
if (strtolower($this->user_info[user_username]) != $lowercase_username & $database->database_num_rows($username_query) != 0)
{
Réponse 6 / 7
dclick07
Messages postés
43
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
26 février 2008
12 févr. 2008 à 02:47
?
Réponse 7 / 7
dclick07
Messages postés
43
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
26 février 2008
14 févr. 2008 à 00:11
Personne pour m'aider ?
Votre réponse
Répondre
Posez votre question
Les tops du mois
Rendre le javascript dynamique par apport à une base de données
Affichage en tableau : afficher des données dans un tableau
Exemple de création d'un script d'authentification
Swing - Partie 2 : ActionListener, Listener, JButton
La commande "shutdown"