Erreur : You have an error in your SQL syntax; check the manual that corresponds [Résolu]

Signaler
Messages postés
41
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
9 mai 2007
-
Messages postés
67
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
13 avril 2010
-
Bonjour a tous !!!

Je suis nocice et en plein apprentissage du php5 mysql5 et j ai un probleme certainement bete mais chiant : je m explique :

J ai un espace membre et lorsque que je veux m inscrire tout se passe bien mon javascript me dit "ok" et lorsue je valide, j ai cette erreur :

Erreur : You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near '' at line 1

donc voila ma table :

CREATE TABLE `membres` (
  `id` mediumint(9) NOT NULL auto_increment,
  `session` text NOT NULL,
  `pseudo` text NOT NULL,
  `passe` text NOT NULL,
  `email` text NOT NULL,
  `typesport` text NOT NULL,
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

mon fichier index.php :

<?php
/* Script écrit par RVJ-WEB
Créé le 27 MAI 2006
Droits de reproduction autorisés */

session_start();

if(!@$_SESSION['session'])
    {
    require_once('config.php');
    $titre_page='Index';
    include_once('haut.php');
   
if(isset($_GET['erreur']))
    {
    echo'';
    $erreur=$_GET['erreur'];
    if($erreur=="pseudo")
        {
        echo'Erreur : Votre pseudo est invalide';
        }
    if($erreur=="passe")
        {
        echo'Erreur : Votre mot de passe est invalide';
        }
    if($erreur=="connexion")
        {
        echo"Erreur : Votre mot de passe ne correspond pas avec votre pseudo";
        }
    echo'';
    }
   
    ?>
   
<?php
if (isset($_GET['type'])) $type=$_GET['type'];
else $type="";
?>
<?php
if (isset($_GET['typesport'])) $type=$_GET['typesport'];
else $typesport="";
?>

<center>
Espace :
<?php
if (isset($_GET['type']))echo $_GET['type'] ;
else echo $type="";
?>
   
<form method="post" action="login.php?type=membres">

            ----
Identification,
       
        ----
<label for="pseudo">Pseudo : </label>,
        ,
        ----
<label for="mdp">Mot de passe : </label>,
       

        ,
       
   

</form>

[inscriptions.php?type=membres Pas encore inscrit ?]

<?php
if($localite != 'local')
echo'
[perdu.php?type=membres Mot de passe perdu ?]';
echo'
';
    }
else
    {
    require_once('config.php');
    require_once('verifications.php');
    $titre_page='Index membres';
    include_once('haut.php');
    echo'

   
    Bonjour et bienvenue dans votre espace membres '. $typesport .''. $pseudo .' !

   
    Votre e-mail : '. $email .'

    Votre sport : '. $typesport .'

   
   
[profil.php?type=membres Modification du profil]
   
[logout.php?type=membres Deconnexion]
';
    }
   
include_once('bas.php');
?>

mon fichier inscription.php :

<?php
/* Script écrit par RVJ-WEB
Créé le 27 MAI 2006
Droits de reproduction autorisés */

session_start();
require_once('config.php');
$titre_page='Inscription';
include_once('haut.php');
?>

<?php
if(isset ($_GET['type'])) $type=$_GET['type'];
else $type="";       
?>

<html>
    <header>
        <script language="javascript">    // FONCTION JAVASCRIPT VERIFIE GRAPHIQUEMENT LA SAISIE //
            function verif ()
            {   
                var erreur="";
                if(document.getElementById('idpseudo').value=='')
                erreur=erreur+"-titre\n";
                if(document.getElementById('idmdp').value=='')
                erreur=erreur+"-mot de passe\n";
                if(document.getElementById('idmdp2').value=='')
                erreur=erreur+"-confirmation passe\n";     
                if(document.getElementById('idemail').value=='')
                erreur=erreur+"-email\n";  
                if(document.getElementById('idtypesport').value=='')
                erreur=erreur+"-type de sport\n";
                if (erreur!="") 
                {
                alert ("Formulaire incomplet, les champs suivant sont vide :\n"+erreur);
                }
                else if    (confirm("Souhaitez-vous vraiement transmettre le formulaire ?"))
                {
                document.getElementById('monform').submit();
                }
            }           
        </script>
    </header>
   
<center>
Inscriptions :
<?php
echo $type=membres;
?>
</center>

   
            <fieldset>
                     <legend>Infos obligatoires *</legend>
          <!--DEBUT DU FORMULAIRE D INSCRIPTION-->
                                                             <form method=\"post\" action=\"verification.php\" enctype=\"multipart/form-data\" id=\"monform\">
   
                                    <table width=\"400\" border=\"0\" align=\"center\">
 
                                        ----
Inscription,
   
                                        ----
<label> *Votre Pseudo</label>,
                                        ,
   
                                        ----
<label> *Votre Mot de passe : </label>,
                                        ,
   
   
                                        ----
<label> *Confirmer votre Mot de passe : </label>,
                                        ,
           
                                        ----
<label> *Votre E-mail : </label>,
                                        ,
           
           
                                        ----
<label>*Type de sport : </label>,
                                        <select name="typesport" id="idtypesport">
                                            <option value=""></option>
                                            <option value="football">Football</option>
                                            <option value="rugby">Rugby</option>
                                            <option value="basketball">Basketball</option>
                                            <option value="volley">Volleyball</option>
                                            </select>
                                       ,
                                   
                                        ----
                                        ,
                                       
                                                                                ,
                                   
                       
                                   
   
                            <center>[index.php?type=membres Retour]</center>
                    </fieldset>
            <link rel="stylesheet" media="screen" type="text/css" title="index" href="includes.css" />
        </form>
   

</html>

<?php
    include_once('bas.php');
?>

mon fichier verfication.php :

<?php
/* Script écrit par RVJ-WEB
Créé le 27 MAI 2006
Droits de reproduction autorisés */

session_start();
require_once('config.php');
$titre_page='Inscription';
include_once('haut.php');
$pseudo=formulaires($_POST['pseudo']);
$mdp=formulaires($_POST['mdp']);
$mdp2=formulaires($_POST['mdp2']);
$email=formulaires($_POST['email']);
$typesport=formulaires ($_POST['typesport']);

//// VERIFICATION SI FORMULAIRES BIEN REMPLI ////

if(!$mdp || !$mdp2 || strlen($mdp) < 7)
    {
echo'Votre mot de passe ou sa confirmation est inexisant ou votre mot de passe fait moins de 7 carractères

    [inscription.php?type=membres Retour]';
    includ_once('bas.php');
return FALSE;
    }
if($mdp!=$mdp2)
    {
    echo'Votre mot de passe n\'est pas le meme que sa confirmation
[inscription.php?type=membres Retour]';
    include_once('bas.php');
return FALSE;
    }
if(!$pseudo || strlen($pseudo) > 15)
    {
    echo'Votre pseudo est inexisant ou fait plus de 15 carractères
[inscription.php?type=membres Retour]';
    include_once('bas.php');
return FALSE;
    }
if(!$email)
       {
    echo'Votre e-mail est innexistant.
[inscription.php?type=membres Retour]';
    include_once('bas.php');
return FALSE;
       }
if(!$typesport)
       {
    echo'Votre type de sport est innexistant.
[inscription.php?type=membres Retour]';
    include_once('bas.php');
return FALSE;
       }

//// VERIFICATIONS PARAMETRES FORMULAIRES ////

$reponse_mail=mysql_query("SELECT email FROM membres WHERE email='$email'") or die ('Erreur : '.mysql_error());    //verification si e-mail existe déjà
$count_mail=mysql_num_rows($reponse_mail);
if($count_mail == 1)
    {
    echo'Cet e-mail existe déjà.
[inscription.php?type=membres Retour]';
    include_once('bas.php');
return FALSE;
    }
$reponse_pseudo=mysql_query("SELECT pseudo FROM membres WHERE pseudo='$pseudo'") or die ('Erreur : '.mysql_error());    //verification si pseudo existe déjà
$count_pseudo=mysql_num_rows($reponse_pseudo);
if($count_pseudo == 1)
    {
    echo 'Ce pseudo existe déjà.
[inscription.php?type=membres Retour]';
    include_once('bas.php');
return FALSE;
    }
$reponse_typesport=array('football','rugby','basketball','volleyball');
    {
    if (in_array($_GET['typesport'],$reponse_typesport)==false)
        $erreur .= "La champs sport n'est pas correct
";
    }
   
    for ($ligne=0;$ligne<30;$ligne++)        //Création d'un identifiant aléatoire
        {
        @$session.=substr('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN',(rand()%(strlen('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN'))),1);
        }

        $mdp=md5($mdp);        //Codage du mot de passe
        mysql_query("INSERT INTO membres VALUES ('', '$session', '$pseudo', '$mdp', '$email','$typesport',") or die ('Erreur : '.mysql_error());    //insertion dans la bdd
echo'Merci de vous vous etre inscrit à '.$nom_du_site.'
[index.php?type=membres Identifiez vous !]';
include_once('bas.php');
?>

voili voilou j espere que mes script son assez lisible ( j essaie tous du moins)

je vous remercie de l aide par avance !!!!!!

9 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Typiquement, il s'agit ici d'une erreur MySQL: tu devrais nous faciliter la tâche en nous disant laquelle c'est...

Essaie ca:
INSERT INTO membres (session, pseudo, pass, email, typesport) VALUES ('$session', '$pseudo', '$mdp', '$email', '$typesport')

(tu as, si je ne me trompe pas, 7 valeurs pour 6 champs dans ta table)!

@++

R@f

La boîte à bouts de codes
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
41
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
9 mai 2007

c cool merci a toi mais maintenant il me donne ca :

Erreur : Unknown column 'pass' in 'field list'
Messages postés
41
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
9 mai 2007

c bon pass en faite c etait "passe" lol

merci beaucoup a toi !!!
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Lol, oui, me suis planté, ^^
Suis ca joue, accepte ma réponse, stp, comme ca le sujet passe en résolu!

@++

R@f

La boîte à bouts de codes
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
41
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
9 mai 2007

bon alors voila le truc maintenant c que lorsque je m inscrit tous ce passe bien je suis bien enregistrer dans la bdd mais lorsque je veux me loger il me dit quil ne peut faire la connexion !!

plus exactement en fait il me ressort mon erreur

"Votre mot de passe ne correspond pas avec votre pseudo"

qui se situe dans mon index.php

j ai cherche, je pense que ca vient du fait qu on a changer le codage tu passe, mais je ne vois pas la solution !!!

je suis dans le flou !!!

merrci a vous de l aide !!!
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Tu n'as pas affiché le code correspondant...

@++

R@f

La boîte à bouts de codes
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
41
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
9 mai 2007

bon alors voila mais c le meme code que plus haut :

INDEX.PHP ou se trouve mon login ainsi que mon erreur

<?php
/* Script écrit par RVJ-WEB
Créé le 27 MAI 2006
Droits de reproduction autorisés */

session_start();

if(!@$_SESSION['session'])
    {
    require_once('config.php') ;
    $titre_page='Index';
    include_once('haut.php') ;
    
        if(isset($_GET['erreur']))
        {
        echo' ';
        $erreur=$_GET['erreur'] ;
        if($erreur=="pseudo")
        {
        echo'Erreur : Votre pseudo est invalide' ;
        }
        if($erreur=="passe")
        {
        echo'Erreur : Votre mot de passe est invalide' ;
        }
        if($erreur=="connexion")
        {
        echo'Erreur : Votre mot de passe ne correspond pas avec votre pseudo' ;        // cette erreur là qui ressort //
        }
        echo'';
        }
    
    ?>

<html>
<header>
        <script language="javascript">    // FONCTION JAVASCRIPT VERIFIE GRAPHIQUEMENT LA SAISIE //
            function verif ()
            {    
                var erreur="";
                    if(document.getElementById('idpseudo').value=='')
                    erreur=erreur+"-titre\n";
                    if(document.getElementById('idmdp').value=='')
                    erreur=erreur+"-mot de passe\n";
                    if (erreur!="")  
                    {
                    alert ("Login incomplet, les champs suivant sont vide :\n"+erreur);
                    }
                    else if    (confirm("Souhaitez-vous vraiement transmettre le formulaire ?"))
                    { 
                    document.getElementById('monform').submit();
                    }
            }            
        </script>
</header>

    <form method="post" action="login.php?type=membres" id='monform'>

                    ----
Identification,
       
            ----
<label for="pseudo">Pseudo : </label>,
            ,
            ----
<label for="mdp">Mot de passe : </label>,
            <td>

        
       
   

</form>

[inscriptions.php?type=membres Pas encore inscrit ?]

</html>    
<?php 
    if($localite != 'local')
        echo'
[perdu.php?type=membres Mot de passe perdu ?]';
        echo'
';
        }
    else
        {
        require_once('config.php');
        require_once('verifications.php');
        $titre_page='Index membres';
        include_once('haut.php');
        echo'

            
            Bonjour et bienvenue dans votre espace membres '. $typesport .''. $pseudo .' !

    
            Votre e-mail : '. $email .'

            Votre sport : '. $typesport .'

    
            
[profil.php?type=membres Modification du profil]
            
[logout.php?type=membres Deconnexion]
';
        }
    
include_once('bas.php');
?>


MON LOGON.PHP

<?php
/* Script écrit par RVJ-WEB
Créé le 27 MAI 2006
Droits de reproduction autorisés */

session_start();
require_once('config.php');
//récupération des variables
$pseudo = formulaires($_POST['pseudo']);
$mdp = formulaires($_POST['mdp']);
$typesport = formulaires($_POST['typesport']);

$mdp=md5($mdp);    //Codage du mdp

if(!$pseudo)
    {
    header('Location:index.php?erreur=pseudo');
    }
if(!$mdp)
    {
    header('Location:index.php?erreur=passe');
    }
if(!$typesport)
    {
    header('Location:index.php?erreur=sport');
    }
    
$reponse_cores=mysql_query("SELECT * FROM membres WHERE passe='$mdp' AND pseudo='$pseudo' AND typesport='$typesport' ") or die ('Erreur : '.mysql_error());
$count_cores=mysql_num_rows($reponse_cores);
if($count_cores == 0 )
    {
    header('Location:index.php?erreur=connexion');        //on vérifie la correspondance
    }

else
    {
    for ($ligne=0;$ligne<30;$ligne++)        //Création d'un identifiant aléatoire
        {
        @$session.=substr('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN',(rand()%(strlen('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN'))),1);
        }
    
    mysql_query("UPDATE membres SET session='$session' WHERE passe='$mdp'AND typesport='$typesport'") or die ('Erreur : '.mysql_error());
    $_SESSION['session'] = "$session";        //création de la session
    header('Location:index.php?type=membres');            //redirection vers l'index
    }
include_once('bas.php');
?>


donc voila je pense a un probleme de session je pense mais je ne comprend pas pourquoi l inscription se passe bien et est effective dans ma bdd et lorsque je veux me logger avec le bon pseudo et mot de passe il me ressort l erreur en rouge alors que je suis sur de mes info : pseudo et mdp !!!!

merci encore !!!
Messages postés
41
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
9 mai 2007

bon g reussi c etait un probleme que j avais voulu rajouter le type de sport dans le codage du mot de passe et je l avais mal fait!!!!

merci a tous !!
Messages postés
67
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
13 avril 2010

salut a tous,
voila je c que ce topic date de 2007, mais je tente quand meme ...
voila en fait g le meme message d'erreur que ci-plus haut "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'option, image, date, txtDetails, photoDetail1, photoDetail2, photoDetail3, photo' at line 1"
et je ne trouve pas l'erreur sql ,voici mon code :
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue "", $theNotDefinedValue "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

mysql_select_db($database_ConnexionTradeslux, $ConnexionTradeslux);
$query_rstest = "SELECT * FROM annonces";
$rstest = mysql_query($query_rstest, $ConnexionTradeslux) or die(mysql_error());
$row_rstest = mysql_fetch_assoc($rstest);
$totalRows_rstest = mysql_num_rows($rstest);
//init des variables
if(!isset($_POST['reference'])) $reference=""; else $reference=$_POST['reference'];
if(!isset($_POST['modele'])) $modele=""; else $modele=$_POST['modele'];
if(!isset($_POST['type'])) $type=""; else $type=$_POST['type'];
if(!isset($_POST['energie'])) $energie=""; else $energie=$_POST['energie'];
if(!isset($_POST['couleur'])) $couleur=""; else $couleur=$_POST['couleur'];
if(!isset($_POST['kilometres'])) $kilometres=""; else $kilometres=$_POST['kilometres'];
if(!isset($_POST['annee'])) $annee=""; else $annee=$_POST['annee'];
if(!isset($_POST['prix'])) $prix=""; else $prix=$_POST['prix'];
if(!isset($_POST['option'])) $option=""; else $option=$_POST['option'];
if(!isset($_POST['date'])) $date=""; else $date=$_POST['date'];
if(!isset($_POST['txtDetails'])) $txtDetails=""; else $txtDetails=$_POST['txtDetails'];
if(!isset($_POST['ajoutAnnonce'])) $ajoutAnnonce="non"; else $ajoutAnnonce=$_POST['ajoutAnnonce'];
if(!isset($erreur_reference)) $erreur_reference=0; 
if(!isset($_POST['ajoutAnnonce'])) $ajoutAnnonce=""; else $ajoutAnnonce=$_POST['ajoutAnnonce'];
//----------------------------
?>
<?php
if ($ajoutAnnonce=="ok")
{
//sélection de la base de données
mysql_select_db($database_ConnexionTradeslux, $ConnexionTradeslux);
//vérification si la référence existe déjà dans la base
$query_rsReference "SELECT reference FROM annonces WHERE reference '$reference' ";
$rsReference = mysql_query($query_rsReference, $ConnexionTradeslux) or die(mysql_error());
$totalRows_rsReference = mysql_num_rows($rsReference);
//si la référence n'existe pas encore alors : 
if ($totalRows_rsReference==0)
{
//test si un fichier photo est sélectionné sinon c'est une photo par défaut
if ($_FILES['image']['error']==0) 
$image_name=$_FILES['image']['name']; 
else $image_name="photo0.jpg"; 
//test si un fichier photo est sélectionné sinon c'est une photo par défaut
if ($_FILES['photoDetail1']['error']==0) 
$photoDetail1_name=$_FILES['photoDetail1']['name']; 
else $photoDetail1_name="photo0.jpg"; 
//test si un fichier photo est sélectionné sinon c'est une photo par défaut
if ($_FILES['photoDetail2']['error']==0) 
$photoDetail2_name=$_FILES['photoDetail2']['name']; 
else $photoDetail2_name="photo0.jpg";
//test si un fichier photo est sélectionné sinon c'est une photo par défaut
if ($_FILES['photoDetail3']['error']==0) 
$photoDetail3_name=$_FILES['photoDetail3']['name']; 
else $photoDetail3_name="photo0.jpg";
//test si un fichier photo est sélectionné sinon c'est une photo par défaut
if ($_FILES['photoDetail4']['error']==0) 
$photoDetail4_name=$_FILES['photoDetail4']['name']; 
else $photoDetail4_name="photo0.jpg";
//enregistrement dans la base du nouveau compte client
mysql_select_db($database_ConnexionTradeslux, $ConnexionTradeslux);
$insertAnnonces = "INSERT INTO annonces ( reference, modele, type, energie, couleur, kilometres, annee, prix, option, image, date, txtDetails, photoDetail1, photoDetail2, photoDetail3, photoDetail4 ) VALUES ('$reference', '$modele', '$type', '$energie', '$couleur', '$kilometres', '$annee', '$prix', '$option', '$image_name', '$date', '$txtDetails', '$photoDetail1_name', '$photoDetail2_name', '$photoDetail3_name', '$photoDetail4_name')";
mysql_query($insertAnnonces, $ConnexionTradeslux) or die(mysql_error()); 
//----Gestion de la photo de l'article si elle a été modifiée
if ($_FILES['image']['error']==0)
{//s'il y a une photo, alors elle est copiée dans le répertoire Images
$repertoire="../imgannonces";
 move_uploaded_file($_FILES['image']['tmp_name'],$repertoire.$_FILES['image']['name' ]);
}
//----Gestion de la photo de l'article si elle a été modifiée
if ($_FILES['photoDetail1']['error']==0)
{//s'il y a une photo, alors elle est copiée dans le répertoire Images
$repertoire="../imgannonces";
 move_uploaded_file($_FILES['photoDetail1']['tmp_name'],$repertoire.$_FILES['photoDetail1']['name' ]);
}
//----Gestion de la photo de l'article si elle a été modifiée
if ($_FILES['photoDetail2']['error']==0)
{//s'il y a une photo, alors elle est copiée dans le répertoire Images
$repertoire="../imgannonces";
 move_uploaded_file($_FILES['photoDetail2']['tmp_name'],$repertoire.$_FILES['photoDetail2']['name' ]);
}
//----Gestion de la photo de l'article si elle a été modifiée
if ($_FILES['photoDetail3']['error']==0)
{//s'il y a une photo, alors elle est copiée dans le répertoire Images
$repertoire="../imgannonces";
 move_uploaded_file($_FILES['photoDetail3']['tmp_name'],$repertoire.$_FILES['photoDetail3']['name' ]);
}
//----Gestion de la photo de l'article si elle a été modifiée
if ($_FILES['photoDetail4']['error']==0)
{//s'il y a une photo, alors elle est copiée dans le répertoire Images
$repertoire="../imgannonces";
 move_uploaded_file($_FILES['photoDetail4']['tmp_name'],$repertoire.$_FILES['photoDetail4']['name' ]);
}
//redirection vers la page ArticlesGestion.php 
header("Location: gestion_annonces.php");	
}//fin du if 
//si la référence existe déjà alors active un message d'erreur
else
{
$erreur_reference=1;
}
}
?>

ceci est la partie concerné par le "prbleme" enfin je pense...

voila ,merci d'avance a ceux qui ce pencheront sur mon cas